Konfigurieren der Objektreplikation für Blockblobs
Artikel
12 Minuten Lesedauer
Die Objektreplikation kopiert Blockblobs asynchron zwischen einem Quellspeicherkonto und einem Zielkonto. Wenn Sie die Objektreplikation konfigurieren, erstellen Sie eine Replikationsrichtlinie, in der das Quellspeicherkonto und das Zielkonto angegeben werden. Eine Replikationsrichtlinie enthält mindestens eine Regel, die einen Quellcontainer und einen Zielcontainer angibt sowie anzeigt, welche Blockblobs im Quellcontainer repliziert werden. Weitere Informationen zur Objektreplikation finden Sie unter Objektreplikation für Blockblobs.
In diesem Artikel wird beschrieben, wie Sie eine Objektreplikationsrichtlinie über das Azure-Portal, PowerShell oder die Azure CLI konfigurieren. Sie können auch eine der Azure Storage-Ressourcenanbieter-Clientbibliotheken verwenden, um die Objektreplikation zu konfigurieren.
Voraussetzungen
Bevor Sie die Objektreplikation konfigurieren, erstellen Sie die Quell- und Zielspeicherkonten, wenn diese noch nicht vorhanden sind. Bei den Quell- und Zielkonten kann es sich entweder um Speicherkonten vom Typ „Allgemein v2“ oder um Premium-Blockblobkonten handeln. Weitere Informationen finden Sie unter Erstellen eines Azure Storage-Kontos.
Für die Objektreplikation muss die Blobversionsverwaltung sowohl für das Quell- als auch für das Zielkonto aktiviert sein. Darüber hinaus muss für das Quellkonto der Blobänderungsfeed aktiviert sein. Informationen zur Blobversionsverwaltung finden Sie unter Blobversionsverwaltung. Weitere Informationen zum Änderungsfeed finden Sie unter Unterstützung für den Änderungsfeed in Azure Blob Storage. Beachten Sie, dass die Aktivierung dieser Features zu zusätzlichen Kosten führen kann.
Zum Konfigurieren einer Richtlinie für die Objektreplikation für ein Speicherkonto muss Ihnen die Azure Resource Manager-Rolle Mitwirkender zugewiesen sein, die auf Ebene des Speicherkontos oder höher gilt. Weitere Informationen finden Sie in der Dokumentation zur rollenbasierten Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC) unter In Azure integrierte Rollen.
Konfigurieren der Objektreplikation mit Zugriff auf beide Speicherkonten
Wenn Sie Zugriff auf das Quell- und das Zielspeicherkonto haben, können Sie die Richtlinie für die Objektreplikation für beide Konten konfigurieren. Die folgenden Beispiele zeigen, wie die Objektreplikation mit dem Azure-Portal, mit PowerShell oder mit der Azure CLI konfiguriert wird.
Wenn Sie die Objektreplikation im Azure-Portal konfigurieren, müssen Sie nur die Richtlinie für das Quellkonto konfigurieren. Das Azure-Portal erstellt die Richtlinie für das Zielkonto automatisch, nachdem Sie sie für das Quellkonto konfiguriert haben.
Führen Sie die folgenden Schritte aus, um eine Replikationsrichtlinie im Azure-Portal zu erstellen:
Navigieren Sie im Azure-Portal zum Quellspeicherkonto.
Wählen Sie unter Datenverwaltung die Option Objektreplikation aus.
Wählen Sie Replikationsregeln einrichten aus.
Wählen Sie das Zielabonnement und das Zielspeicherkonto aus.
Wählen Sie im Abschnitt Containerpaare einen Quellcontainer aus dem Quellkonto und einen Zielcontainer aus dem Zielkonto aus. Sie können im Azure-Portal bis zu 10 Containerpaare pro Replikationsrichtlinie erstellen. Informationen zum Konfigurieren von mehr als 10 Containerpaaren (bis zu 1000) finden Sie unter Konfigurieren der Objektreplikation mithilfe einer JSON-Datei.
Die folgende Abbildung zeigt einen Satz von Replikationsregeln.
Wenn gewünscht, geben Sie einen oder mehrere Filter an, um nur Blobs zu kopieren, die einem Präfixmuster entsprechen. Wenn Sie z. B. das Präfix b angeben, werden nur Blobs repliziert, deren Name mit diesem Buchstaben beginnt. Sie können ein virtuelles Verzeichnis als Teil des Präfixes angeben. Sie können maximal fünf Präfix-Übereinstimmungen hinzufügen. Die Präfixzeichenfolge unterstützt keine Platzhalterzeichen.
Die folgende Abbildung zeigt Filter, die einschränken, welche Blobs als Teil einer Replikationsregel kopiert werden.
Standardmäßig wird der Kopierumfang so festgelegt, dass nur neue Objekte kopiert werden. Um alle Objekte im Container oder Objekte ab einem benutzerdefinierten Datum und Zeitpunkt zu kopieren, wählen Sie den Link Ändern aus, und konfigurieren Sie den Kopierumfang für das Containerpaar.
Die folgende Abbildung zeigt einen benutzerdefinierten Kopierbereich, mit dem Objekte ab einem bestimmten Datum und einer bestimmten Uhrzeit kopiert werden.
Wählen Sie Speichern und anwenden aus, um die Replikationsrichtlinie zu erstellen und mit der Replikation von Daten zu beginnen.
Nachdem Sie die Objektreplikation konfiguriert haben, werden die Replikationsrichtlinie und die Regeln im Azure-Portal angezeigt, wie in der folgenden Abbildung dargestellt.
Um eine Replikationsrichtlinie mit PowerShell zu erstellen, installieren Sie zunächst Version 2.5.0 oder höher des PowerShell-Moduls „Az.Storage“. Weitere Informationen zum Installieren von Azure PowerShell finden Sie unter Installieren von Azure PowerShell mit PowerShellGet.
Im folgenden Beispiel wird gezeigt, wie Sie eine Replikationsrichtlinie zuerst für das Zielkonto und dann für das Quellkonto erstellen. Denken Sie daran, die Werte in eckigen Klammern durch Ihre eigenen Werte zu ersetzen:
# Sign in to your Azure account.
Connect-AzAccount
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$srcContainerName1 = "source-container1"
$destContainerName1 = "dest-container1"
$srcContainerName2 = "source-container2"
$destContainerName2 = "dest-container2"
# Enable blob versioning and change feed on the source account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-EnableChangeFeed $true `
-IsVersioningEnabled $true
# Enable blob versioning on the destination account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-IsVersioningEnabled $true
# List the service properties for both accounts.
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
# Create containers in the source and destination accounts.
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName2
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName2
# Define replication rules for each container.
$rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName1 `
-DestinationContainer $destContainerName1 `
-PrefixMatch b
$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName2 `
-DestinationContainer $destContainerName2 `
-MinCreationTime 2021-09-01T00:00:00Z
# Create the replication policy on the destination account.
$destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcAccountName `
-Rule $rule1,$rule2
# Create the same policy on the source account.
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
Installieren Sie zum Erstellen einer Replikationsrichtlinie über die Azure-Befehlszeilenschnittstelle zunächst mindestens Version 2.11.1 der Azure CLI. Weitere Informationen finden Sie unter Erste Schritte mit der Azure-Befehlszeilenschnittstelle.
Aktivieren Sie als Nächstes die Blobversionsverwaltung für das Quell- und Zielspeicherkonto sowie für das Quellkonto auch den Änderungsfeed, indem Sie den Befehl az storage account blob-service-properties update aufrufen. Denken Sie daran, die Werte in eckigen Klammern durch Ihre eigenen Werte zu ersetzen:
az login
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--enable-versioning \
--enable-change-feed
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--enable-versioning
Erstellen Sie die Quell- und Zielcontainer in ihren jeweiligen Speicherkonten.
Erstellen Sie eine neue Replikationsrichtlinie und eine zugehörige Regel für das Zielkonto, indem Sie den Befehl az storage account or-policy create aufrufen.
Azure Storage legt die Richtlinien-ID für die neue Richtlinie fest, wenn diese erstellt wird. Um der Richtlinie zusätzliche Regeln hinzuzufügen, rufen Sie az storage account or-policy rule add auf und geben dabei die Richtlinien-ID an.
Erstellen Sie als Nächstes die Richtlinie für das Quellkonto mithilfe der Richtlinien-ID.
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> |
az storage account or-policy create --resource-group <resource-group> \
--account-name <source-storage-account> \
--policy "@-"
Konfigurieren von Objektreplikation mithilfe einer JSON-Datei
Wenn Sie keine Berechtigungen für das Quellspeicherkonto haben oder mehr als 10 Containerpaare verwenden möchten, können Sie die Objektreplikation für das Zielkonto konfigurieren und eine JSON-Datei mit der Richtliniendefinition bereitstellen, damit ein anderer Benutzer die gleiche Richtlinie für das Quellkonto erstellen kann. Wenn sich das Quellkonto z. B. in einem anderen Azure AD-Mandanten als das Zielkonto befindet, können Sie mit diesem Ansatz die Objektreplikation konfigurieren.
Hinweis
Die mandantenübergreifende Objektreplikation ist für ein Speicherkonto standardmäßig zulässig. Um die Mandantenreplikation zu verhindern, können Sie die Eigenschaft AllowCrossTenantReplication (Vorschau) so festlegen, dass die mandantenübergreifende Objektreplikation für Ihre Speicherkonten nicht zugelassen wird. Weitere Informationen finden Sie unter Verhindern der Objektreplikation zwischen Azure Active Directory-Mandanten.
Die Beispiele in diesem Abschnitt zeigen, wie Sie die Objektreplikationsrichtlinie für das Zielkonto konfigurieren und dann die JSON-Datei für diese Richtlinie abrufen, die ein anderer Benutzer zum Konfigurieren der Richtlinie für das Quellkonto verwenden kann.
Führen Sie die folgenden Schritte aus, um die Objektreplikation für das Zielkonto mit einer JSON-Datei im Azure-Portal zu konfigurieren:
Erstellen Sie eine lokale JSON-Datei, die die Replikationsrichtlinie für das Zielkonto definiert. Legen Sie das Feld policyId auf default fest, damit Azure Storage die Richtlinien-ID definiert.
Eine einfache Möglichkeit, eine JSON-Datei zu erstellen, die eine Replikationsrichtlinie definiert, besteht darin, zuerst im Azure-Portal eine Testreplikationsrichtlinie zwischen zwei Speicherkonten zu erstellen. Anschließend können Sie die Replikationsregeln herunterladen und die JSON-Datei nach Bedarf ändern.
Navigieren Sie im Azure-Portal zu den Einstellungen für die Objektreplikation für das Zielkonto.
Wählen Sie Replikationsregeln hochladen aus.
Laden Sie die JSON-Datei hoch. Im Azure-Portal werden die Richtlinie und die Regeln angezeigt, die erstellt werden, wie in der folgenden Abbildung dargestellt.
Wählen Sie Hochladen aus, um die Replikationsrichtlinie für das Zielkonto zu erstellen.
Sie können dann eine JSON-Datei mit der Richtliniendefinition herunterladen, die Sie einem anderen Benutzer geben können, damit dieser das Quellkonto konfiguriert. Führen Sie die folgenden Schritte aus, um diese JSON-Datei herunterzuladen:
Navigieren Sie im Azure-Portal zu den Einstellungen für die Objektreplikation für das Zielkonto.
Wählen Sie neben der Richtlinie, die Sie herunterladen möchten, die Schaltfläche Mehr und dann Regeln herunterladen aus, wie in der folgenden Abbildung dargestellt.
Speichern Sie die JSON-Datei auf Ihrem lokalen Computer, um sie für andere Benutzer freizugeben, die die Richtlinie für das Quellkonto konfigurieren.
Die heruntergeladene JSON-Datei enthält die Richtlinien-ID, die Azure Storage für die Richtlinie für das Zielkonto erstellt hat. Sie müssen dieselbe Richtlinien-ID verwenden, um die Objektreplikation für das Quellkonto zu konfigurieren.
Beachten Sie, dass beim Hochladen einer JSON-Datei zum Erstellen einer Replikationsrichtlinie für das Zielkonto über das Azure-Portal nicht automatisch dieselbe Richtlinie im Quellkonto erstellt wird. Ein anderer Benutzer muss die Richtlinie für das Quellkonto erstellen, bevor Azure Storage mit der Replikation von Objekten beginnt.
Zum Herunterladen einer JSON-Datei, die die Definition der Replikationsrichtlinien für das Zielkonto enthält, mit PowerShell wenden Sie den Befehl Get-AzStorageObjectReplicationPolicy an, um die Richtlinie zurückzugeben. Konvertieren Sie anschließend die Richtlinie in der JSON-Datei, und speichern Sie diese als lokale Datei, wie im folgenden Beispiel gezeigt. Denken Sie daran, die Werte in eckigen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen:
Wenn Sie die JSON-Datei verwenden möchten, um die Replikationsrichtlinie für das Quellkonto mit PowerShell zu definieren, müssen Sie die lokale Datei abrufen und aus JSON in ein Objekt konvertieren. Rufen Sie dann den Befehl Set-AzStorageObjectReplicationPolicy auf, um die Richtlinie für das Quellkonto zu konfigurieren, wie im folgenden Beispiel gezeigt.
Stellen Sie beim Ausführen des Beispiels sicher, dass Sie den Parameter -ResourceGroupName auf die Ressourcengruppe für das Quellkonto und den Parameter -StorageAccountName auf den Namen des Quellkontos festlegen. Denken Sie außerdem daran, die Werte in eckigen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen:
Um die Definition der Replikationsrichtlinien für das Zielkonto über die Azure-Befehlszeilenschnittstelle in eine JSON-Datei zu schreiben, rufen Sie den Befehl az storage account or-policy show auf und leiten die Ausgabe in eine Datei um.
Im folgenden Beispiel wird die Richtliniendefinition in eine JSON-Datei mit dem Namen policy.json geschrieben. Denken Sie daran, die Werte in eckigen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Wenn Sie die JSON-Datei verwenden möchten, um die Replikationsrichtlinie für das Quellkonto mithilfe der Azure-Befehlszeilenschnittstelle zu konfigurieren, rufen Sie den Befehl az storage account or-policy create auf, und verweisen Sie auf die Datei policy.json. Denken Sie daran, die Werte in eckigen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen:
Sie können den Replikationsstatus für ein Blob im Quellkonto über das Azure-Portal, PowerShell oder die Azure CLI überprüfen. Objektreplikationseigenschaften werden erst mit Werten aufgefüllt, wenn die Replikation entweder abgeschlossen oder fehlgeschlagen ist.
Führen Sie die folgenden Schritte aus, um den Replikationsstatus für ein Blob im Quellkonto im Azure-Portal zu überprüfen:
Navigieren Sie im Azure-Portal zum Quellkonto.
Suchen Sie den Container, der das Quellblob enthält.
Wählen Sie das Blob aus, um seine Eigenschaften anzuzeigen. Wenn das Blob erfolgreich repliziert wurde, sehen Sie im Abschnitt Objektreplikation, dass der Status auf Vollständig festgelegt ist. Die ID der Replikationsrichtlinie und die ID der Regel, die die Objektreplikation für diesen Container regelt, sind ebenfalls aufgeführt.
Um den Replikationsstatus für ein Blob im Quellkonto mit PowerShell zu prüfen, rufen Sie den Wert der ReplicationStatus-Eigenschaft der Objektreplikation ab, wie im folgenden Beispiel gezeigt. Denken Sie daran, die Werte in eckigen Klammern durch Ihre eigenen Werte zu ersetzen:
Um den Replikationsstatus für ein Blob im Quellkonto mit der Azure CLI zu prüfen, rufen Sie den Wert der status-Eigenschaft der Objektreplikation ab, wie im folgenden Beispiel gezeigt:
Führen Sie die folgenden Schritte aus, um eine Replikationsrichtlinie im Azure-Portal zu entfernen:
Navigieren Sie im Azure-Portal zum Quellspeicherkonto.
Wählen Sie unter Einstellungen die Option Objektreplikation aus.
Wählen Sie die Schaltfläche Mehr neben dem Richtliniennamen aus.
Wählen Sie Regeln löschen aus.
Um eine Replikationsrichtlinie zu entfernen, löschen Sie die Richtlinie sowohl im Quell- als auch im Zielkonto. Wenn Sie die Richtlinie löschen, werden auch alle Regeln gelöscht, die ihr zugeordnet sind.
# Remove the policy from the destination account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $destPolicy.PolicyId
# Remove the policy from the source account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $destPolicy.PolicyId
Um eine Replikationsrichtlinie zu entfernen, löschen Sie die Richtlinie sowohl im Quell- als auch im Zielkonto. Wenn Sie die Richtlinie löschen, werden auch alle Regeln gelöscht, die ihr zugeordnet sind.