Die Objektreplikation kopiert asynchron Block-Blobs zwischen einem Quellspeicherkonto und einem Zielkonto. Wenn Sie die Objektreplikation konfigurieren, erstellen Sie eine Replikationsrichtlinie, die das Quellspeicherkonto und das Zielkonto angibt. 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 mithilfe der Azure portal, PowerShell oder 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 Ziel-storage Konten, sofern sie noch nicht vorhanden sind. Die Quell- und Zielkonten können entweder allgemeine v2-Speicherkonten oder Premium-Blockblobkonten sein. Weitere Informationen finden Sie unter Create an Azure Storage account.
Für die Objektreplikation muss die Blob-Versionsverwaltung sowohl für das Quell- als auch das Zielkonto aktiviert sein, und der Blob-Änderungsfeed muss für das Quellkonto aktiviert sein. Weitere Informationen zur Blobversionsverwaltung finden Sie unter Blob-Versionsverwaltung. Weitere Informationen zum Änderungsfeed finden Sie unter Change feed support in Azure Blob Storage. Beachten Sie, dass die Aktivierung dieser Features zu zusätzlichen Kosten führen kann. Zum Aktivieren der Voraussetzungen für die Objektreplikation (Blob-Versionierung und Änderungsfeed) ist die Berechtigung Microsoft.Storage/storageAccounts/blobServices/write erforderlich. Um mehr über Berechtigungen zu erfahren, siehe Azure-Berechtigungen für Speicher. Sobald eine Objekt-Replikationsrichtlinie erstellt wurde, werden Datenreplikationsoperationen von der Quelle zum Ziel erwartet. Die Erteilung dieser Erlaubnis sollte daher auch als Erlaubnis verstanden werden, Daten zwischen Quell- und Zielkonten zu kopieren.
Um eine Objektreplikationsrichtlinie für ein Speicherkonto zu konfigurieren, müssen Sie die Azure Resource Manager Contributor-Rolle zugewiesen bekommen haben, die auf die Ebene des Speicherkontos oder höher festgelegt ist. Weitere Informationen finden Sie in der Dokumentation zur rollenbasierten Zugriffssteuerung von Azure (Azure Role-Based Access Control, Azure RBAC) unter In Azure integrierte Rollen.
Die Objektreplikation wird in Konten mit aktiviertem hierarchischen Namespace noch nicht unterstützt.
Wenn Sie Zugriff auf sowohl die Quell- als auch die Zielspeicherkonten haben, können Sie die Objektreplikationsrichtlinie für beide Konten konfigurieren. Die folgenden Beispiele zeigen, wie Sie die Objektreplikation mit dem Azure portal, PowerShell oder Azure CLI konfigurieren.
Wenn Sie die Objektreplikation im Azure portal konfigurieren, müssen Sie die Richtlinie nur für das Quellkonto konfigurieren. Die Azure portal erstellt die Richtlinie automatisch für das Zielkonto, 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 zum Quellspeicherkonto im Azure-Portal.
Wählen Sie unter Data managementObjektreplikation aus.
Wählen Sie "Replikationsregeln erstellen" aus.
Wählen Sie das Zielabonnement und das Speicherkonto aus.
Wählen Sie im Abschnitt "Containerpaardetails " einen Quellcontainer aus dem Quellkonto und einen Zielcontainer aus dem Zielkonto aus. Sie können bis zu 10 Containerpaare pro Replikationsrichtlinie aus dem Azure portal 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 eine Reihe von Replikationsregeln.
Geben Sie bei Bedarf einen oder mehrere Filter an, um nur Blobs zu kopieren, die einem Präfixmuster entsprechen. Wenn Sie beispielsweise ein Präfix bangeben, werden nur Blobs, deren Name mit diesem Buchstaben beginnt, repliziert. 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 Wildcardzeichen.
Die folgende Abbildung zeigt Filter, die einschränken, welche Blobs als Teil einer Replikationsregel kopiert werden.
Standardmäßig ist der Kopierbereich so festgelegt, dass nur neue Objekte kopiert werden. Wenn Sie alle Objekte im Container kopieren oder Objekte ab einem benutzerdefinierten Datum und einer benutzerdefinierten Uhrzeit kopieren möchten, wählen Sie den Änderungslink aus, und konfigurieren Sie den Kopierbereich für das Containerpaar.
Die folgende Abbildung zeigt einen benutzerdefinierten Kopierbereich, der Objekte ab einem bestimmten Datum und einer bestimmten Uhrzeit kopiert.
Wählen Sie "Speichern" aus, und wenden Sie sie an, um die Replikationsrichtlinie zu erstellen und mit der Replikation von Daten zu beginnen.
Nachdem Sie die Objektreplikation konfiguriert haben, zeigt die Azure portal die Replikationsrichtlinie und -regeln an, wie in der folgenden Abbildung dargestellt.
Um eine Replikationsrichtlinie mit PowerShell zu erstellen, installieren Sie zuerst version 2.5.0 oder höher des Az.Storage PowerShell-Moduls. Weitere Informationen zum Installieren von Azure PowerShell finden Sie unter Install Azure PowerShell mit PowerShellGet.
Das folgende Beispiel zeigt, wie Sie zuerst eine Replikationsrichtlinie 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
Um eine Replikationsrichtlinie mit Azure CLI zu erstellen, installieren Sie zuerst Azure CLI Version 2.11.1 oder höher. Weitere Informationen finden Sie unter Get started mit Azure CLI.
Aktivieren Sie als Nächstes die Blob-Versionierung für die Quell- und Ziel-Speicherkonten und aktivieren Sie den Änderungsfeed für das Quellkonto, 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.
az storage container create \
--account-name <source-storage-account> \
--name source-container-1 \
--auth-mode login
az storage container create \
--account-name <source-storage-account> \
--name source-container-2 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-1 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-2 \
--auth-mode login
Erstellen Sie eine neue Replikationsrichtlinie und eine zugehörige Regel für das Zielkonto, indem Sie "az storage account or-policy create" aufrufen.
az storage account or-policy create \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--source-container source-container-1 \
--destination-container dest-container-1 \
--min-creation-time '2021-09-01T00:00:00Z' \
--prefix-match a
Azure Storage legt die Richtlinien-ID für die neue Richtlinie fest, wenn sie 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.
az storage account or-policy rule add \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-container source-container-2 \
--destination-container dest-container-2 \
--policy-id <policy-id> \
--prefix-match b
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 "@-"
Wenn Sie nicht über Berechtigungen für das Quell-storage-Konto verfügen oder mehr als 10 Containerpaare verwenden möchten, können Sie die Objektreplikation für das Zielkonto konfigurieren und eine JSON-Datei bereitstellen, die die Richtliniendefinition für einen anderen Benutzer enthält, um dieselbe Richtlinie für das Quellkonto zu erstellen. Wenn sich das Quellkonto beispielsweise in einem anderen Microsoft Entra-Mandanten als dem Zielkonto befindet, können Sie diesen Ansatz verwenden, um die Objektreplikation zu konfigurieren.
Informationen zum Erstellen einer JSON-Datei, die die Richtliniendefinition enthält, finden Sie in der Richtliniendefinitionsdatei.
Hinweis
Die mandantenübergreifende Objektreplikation ist standardmäßig für ein Speicherkonto zulässig. Um die Replikation über Mandanten hinweg zu verhindern, können Sie die AllowCrossTenantReplication-Eigenschaft festlegen, um die mandantenübergreifende Objektreplikation für Ihre storage-Konten zu verbieten. Weitere Informationen finden Sie unter Verhindern der Objektreplikation übergreifend auf Microsoft Entra-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, sodass Azure Storage die Richtlinien-ID definiert.
Eine einfache Möglichkeit zum Erstellen einer JSON-Datei, die eine Replikationsrichtlinie definiert, besteht darin, zuerst eine Testreplikationsrichtlinie zwischen zwei storage Konten in der Azure portal zu erstellen. Anschließend können Sie die Replikationsregeln herunterladen und die JSON-Datei nach Bedarf ändern.
Navigieren Sie zu den Objektreplikation-Einstellungen für das Zielkonto im Azure-Portal.
Wählen Sie "Upload-Replikationsregeln" aus.
Laden Sie die JSON-Datei hoch. Die Azure portal zeigt die Richtlinie und Regeln an, die erstellt werden, wie in der folgenden Abbildung dargestellt.
Wählen Sie "Hochladen" aus, um die Replikationsrichtlinie für das Zielkonto zu erstellen.
Anschließend können Sie eine JSON-Datei herunterladen, die die Richtliniendefinition enthält, die Sie einem anderen Benutzer zum Konfigurieren des Quellkontos bereitstellen können. Führen Sie die folgenden Schritte aus, um diese JSON-Datei herunterzuladen:
Navigieren Sie zu den Objektreplikation-Einstellungen für das Zielkonto im Azure-Portal.
Wählen Sie die Schaltfläche "Weitere " neben der Richtlinie aus, die Sie herunterladen möchten, und wählen Sie dann "Regeln herunterladen" aus, wie in der folgenden Abbildung dargestellt.
Speichern Sie die JSON-Datei auf Ihrem lokalen Computer, um sie für einen anderen Benutzer freizugeben, um die Richtlinie für das Quellkonto zu konfigurieren.
Die heruntergeladene JSON-Datei enthält die Richtlinien-ID, die Azure Storage für die Richtlinie auf dem Zielkonto erstellt hat. Sie müssen dieselbe Richtlinien-ID verwenden, um die Objektreplikation für das Quellkonto zu konfigurieren.
Beachten Sie, dass das Hochladen einer JSON-Datei zum Erstellen einer Replikationsrichtlinie für das Zielkonto über die Azure portal nicht automatisch dieselbe Richtlinie im Quellkonto erstellt. Ein anderer Benutzer muss die Richtlinie für das Quellkonto erstellen, bevor Azure Storage mit der Replikation von Objekten beginnt.
Rufen Sie zum Herunterladen einer JSON-Datei, die die Replikationsrichtliniendefinition für das Zielkonto aus PowerShell enthält, den Befehl Get-AzStorageObjectReplicationPolicy auf, um die Richtlinie zurückzugeben. Konvertieren Sie dann die Richtlinie in JSON, und speichern Sie sie als lokale Datei, wie im folgenden Beispiel gezeigt. Denken Sie daran, Werte in spitzen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen.
$rgName = "<resource-group>"
$destAccountName = "<destination-storage-account>"
$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
$destPolicy | ConvertTo-Json -Depth 5 > c:\temp\json.txt
Um die JSON-Datei zum Definieren der Replikationsrichtlinie für das Quellkonto mit PowerShell zu verwenden, rufen Sie die lokale Datei ab und konvertieren sie aus JSON in ein Objekt. Rufen Sie dann den Befehl Set-AzStorageObjectReplicationPolicy auf, um die Richtlinie für das Quellkonto zu konfigurieren, wie im folgenden Beispiel gezeigt.
Achten Sie beim Ausführen des Beispiels darauf, den -ResourceGroupName Parameter auf die Ressourcengruppe für das Quellkonto und den -StorageAccountName Parameter auf den Namen des Quellkontos festzulegen. Denken Sie auch daran, die Werte in spitzen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen.
$object = Get-Content -Path C:\temp\json.txt | ConvertFrom-Json
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $object.PolicyId `
-SourceAccount $object.SourceAccount `
-DestinationAccount $object.DestinationAccount `
-Rule $object.Rules
Um die Replikationsrichtliniendefinition für das Zielkonto in eine JSON-Datei aus der Azure CLI zu schreiben, rufen Sie den Befehl az storage account or-policy show auf und leiten Sie die Ausgabe in eine Datei um.
Im folgenden Beispiel wird die Richtliniendefinition in eine JSON-Datei mit dem Namen policy.jsongeschrieben. Denken Sie daran, Werte in spitzen 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
Um die JSON-Datei zum Konfigurieren der Replikationsrichtlinie für das Quellkonto mit Azure CLI zu verwenden, rufen Sie den Befehl az storage account or-policy create auf und verweisen Sie auf die Datei policy.json. Denken Sie daran, Werte in spitzen Klammern und den Dateipfad durch Ihre eigenen Werte zu ersetzen.
az storage account or-policy create \
-resource-group <resource-group> \
--source-account <source-account-name> \
--policy @policy.json
Die Objektreplikation unterstützt jetzt das Kopieren von Indextags aus Quell-Blobs in Ziel-Blobs. Sie können diese Funktion als Teil einer neuen oder vorhandenen Replikationsregel konfigurieren.
Von Bedeutung
Die Tagreplikation befindet sich derzeit in der VORSCHAU.
Lesen Sie die Supplemental-Nutzungsbedingungen für Microsoft Azure Previews für rechtliche Bedingungen, die für Azure Features gelten, die in der Betaversion, der Vorschau oder auf andere Weise noch nicht in die allgemeine Verfügbarkeit veröffentlicht werden.
Voraussetzungen
Das Speicherkonto der Quelle muss für die Vorschaufunktion "EnableObjectReplicationTags" registriert sein, bevor die Tag-Replikation aktiviert werden kann. Registrieren Sie das Vorschaufeature im Azure portal, indem Sie die Schritte in der Dokumentation Azure Resource Manager Vorschaufeatures ausführen.
Die Tagsreplikation kann sowohl für neue als auch für vorhandene Objektreplikationsrichtlinien aktiviert werden. Jede Änderung an einem Quell-Blob oder seinen Index-Tags löst die Replikation von Tags aus.
Aktivieren Sie die Tagreplikation über das Blatt „Objektreplikation“, wenn Sie eine Regel erstellen oder vorhandene Regeln mithilfe der Spalte „Tagreplikation“ aktualisieren.
Führen Sie die folgenden Schritte aus, um replizierbare BLOB-Indextags beim Erstellen einer neuen Regel zu konfigurieren:
- Navigieren Sie zum Quellspeicherkonto im Azure-Portal.
- Wählen Sie unter Data managementObjektreplikation aus.
- Wählen Sie "Replikationsregeln erstellen" aus.
- Wählen Sie "Tags-Replikation aktivieren" aus, und wählen Sie schließlich "Speichern und anwenden" aus, um die Replikation von BLOB-Indextags zu konfigurieren.
Führen Sie die folgenden Schritte aus, um replizierende Blob-Indextags für bestehende Regeln zu konfigurieren:
- Navigieren Sie zur Registerkarte "Ihre Konten" auf der Seite 'Objektreplikation'
- Wählen Sie die Option "Aktivieren" unter der Spalte "Tags-Replikation" in der Tabelle "Objekte, die aus diesem Konto kopiert wurden" und wählen Sie "OK" aus.
- Der Status der Spalte Replikation von Tags für eine Regel zeigt jetzt Aktiviert.
Führen Sie die folgenden Schritte aus, um die Replikation von BLOB-Indextags für bestehende Regeln zu deaktivieren:
- Navigieren Sie zur Registerkarte "Ihre Konten" auf der Seite 'Objektreplikation'
- Wählen Sie eine exsitierende Regel aus, und wählen Sie " Regeln bearbeiten " aus dem "..." aus. Menü
- Deaktivieren Sie die Option " Tagsreplikation aktivieren ", und wählen Sie schließlich " Speichern" und "Übernehmen" aus, um replizierbare BLOB-Indextags zu deaktivieren.
Weitere Informationen zum Installieren von Azure PowerShell finden Sie unter Install Azure PowerShell mit PowerShellGet.
Replikation von Tags für eine neue Richtlinie aktivieren: Das folgende Beispiel zeigt, wie man eine Replikationsrichtlinie erstellt, bei der die Replikation von Blob-Index-Tags aktiviert ist, zuerst im Zielkonto und dann im Quellkonto. Denken Sie daran, Werte in Winkelklammern durch Ihre eigenen zu ersetzen.
# Sign in to your Azure account.
Connect-AzAccount
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$srcContainerName = "source-container"
$destContainerName = "dest-container"
# Build full resource IDs for the source and destination accounts.
$subId = (Get-AzContext).Subscription.Id
$srcId = "/subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Storage/storageAccounts/$srcAccountName"
$destId = "/subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Storage/storageAccounts/$destAccountName"
# Define the replication rule for the container pair.
$rule = New-AzStorageObjectReplicationPolicyRule `
-SourceContainer $srcContainerName `
-DestinationContainer $destContainerName
# Create the policy on the destination account with tags replication enabled.
$destPolicy = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcId `
-DestinationAccount $destId `
-Rule $rule `
-EnableTagsReplication $true
# Apply the same policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
Tags-Replikation auf einer bestehenden Policy aktivieren Das folgende Beispiel zeigt, wie Tags-Replikation auf einer bereits bestehenden Policy aktiviert werden kann. Es ruft die Richtlinie vom Zielkonto ab, wendet sie mit aktivierter Tag-Replikation erneut an und wendet dann die aktualisierte Richtlinie auf das Quellkonto an.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$policyId = "<policy-id>"
# Get the existing policy from the destination account.
# Its SourceAccount and DestinationAccount properties are returned as resource IDs.
$existing = Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $policyId
# Re-apply the policy on the destination account with tags replication enabled.
$updated = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $existing.PolicyId `
-SourceAccount $existing.SourceAccount `
-DestinationAccount $existing.DestinationAccount `
-Rule $existing.Rules `
-EnableTagsReplication $true
# Apply the updated policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $updated
Überprüfen Sie, dass die Tag-Replikation aktiviert ist
Das folgende Beispiel liefert den Tag-Replikationsstatus einer Richtlinie zurück. Die Eigenschaft Enabled gibt True zurück, wenn die Tag-Replikation aktiviert ist.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$policyId = "<policy-id>"
# Get the tags replication status from the source account.
(Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $policyId).TagsReplication
Tag-Replikation deaktivieren
Das folgende Beispiel zeigt, wie man die Tag-Replikation auf einer bestehenden Richtlinie deaktiviert, indem man sie mit -EnableTagsReplication $falseneu anwendet.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$policyId = "<policy-id>"
# Get the existing policy from the destination account.
$existing = Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $policyId
# Re-apply the policy on the destination account with tags replication disabled.
$updated = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $existing.PolicyId `
-SourceAccount $existing.SourceAccount `
-DestinationAccount $existing.DestinationAccount `
-Rule $existing.Rules `
-EnableTagsReplication $false
# Apply the updated policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $updated
Weitere Informationen finden Sie in der CLI-Dokumentation
Tags-Replikation auf einer neuen Richtlinie aktivieren: Füge den Parameter --tags-replication true hinzu, wenn du die Policy auf dem Zielkonto erstellst, und kopiere dann die Policy-Definition ins Quellkonto.
az storage account or-policy create \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--source-container <source-container> \
--destination-container <dest-container> \
--tags-replication true
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 "@-"
Tag-Replikation auf einer bestehenden Richtlinie aktivieren: Verwenden Sie die gemeinsame Richtlinien-ID, um das Flag auf beiden Konten zu aktualisieren.
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication true
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication true
Überprüfen Sie, ob die Tag-Replikation aktiviert ist: Rufen Sie die tagsReplication.enabled Eigenschaft jedes Kontos ab. Ein Rückgabewert von true bestätigt, dass es aktiv ist.
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--query "tagsReplication.enabled" \
--output tsv
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--query "tagsReplication.enabled" \
--output tsv
Tag-Replikation deaktivieren: Setzen Sie --tags-replication false sowohl auf dem Quell- als auch auf dem Zielkonto unter Verwendung der gemeinsamen Richtlinien-ID.
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication false
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication false
Benutzer können vorhandene REST-APIs verwenden: Objektreplikationsrichtlinien – Erstellen oder Aktualisieren – REST-API zum Konfigurieren von Richtlinien für replizierbare Tags, die für blobs festgelegt sind.
Fügen Sie beim Erstellen oder Aktualisieren der Replikationsregeln für das Quellkonto die folgende Zeile “tagsReplication”: { “enabled”: true } hinzu.
Die Tagsreplikation wird ab API-Version 2022-05-01 und höher unterstützt. Sie können das neue tagsReplication-Feld zur Replikationsrichtlinie hinzufügen.
Beispiel:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"tagsReplication":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Aktivieren von Replikationsmetriken
Sie können Replikationsmetriken für neue und vorhandene Objektreplikationsrichtlinien aktivieren. Es kann einige Minuten dauern, bis die Metriken angezeigt werden.
Sie können Metriken auf dem Blatt Objektreplikation in der neuen Spalte Metriken aktivieren, oder indem Sie den Abschnitt Regeln bearbeiten einer Richtlinie über die Auslassungspunkte (...) in der Zeile der OR-Richtlinie bearbeiten.
Das Aktivieren von Metriken wird in API Version 2021-08-01 und höher unterstützt. Sie können das neue Metrikfeld der Replikationsrichtlinie hinzufügen. Beispiel:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"metrics":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Wenn Sie Metriken für eine Richtlinie aktivieren, die so konfiguriert ist, dass sie vorhandene Daten kopiert, können Sie eine Zunahme der Metriken zu Beginn beobachten, während die Richtlinie die erste Phase des Auflistens durchläuft. Sobald dies abgeschlossen ist, wird die Replikation gestartet.
Anzeigen von Replikationsmetriken
Sie können auf den Link "Ansicht" in der Spalte "Metriken" klicken, um Überwachungsmetriken anzuzeigen.
Wenn Sie Metriken in Azure Monitor weiter anzeigen möchten, klicken Sie auf ein Diagramm einer Metrik. Dadurch gelangen Sie zu Azure Ansicht "Metriken überwachen" mit weiteren Filterfunktionen.
Überprüfen des Replikationsstatus eines Blobs
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 aufgefüllt, wenn die Replikation 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 zum Quellkonto im Azure portal.
- Suchen Sie den Container, der das Quell-BLOB enthält.
- Wählen Sie das Blob aus, um dessen Eigenschaften anzuzeigen. Wenn das Blob erfolgreich repliziert wurde, sehen Sie im Abschnitt "Objektreplikation ", dass der Status auf "Abgeschlossen" festgelegt ist. Die Replikationsrichtlinien-ID und die ID für die Regel zur Objektreplikation für diesen Container werden ebenfalls aufgeführt.
Um den Replikationsstatus für ein Blob im Quellkonto mit PowerShell zu überprüfen, rufen Sie den Wert der Objektreplikationsreplikationsstatus-Eigenschaft ab, wie im folgenden Beispiel gezeigt. Denken Sie daran, die Werte in eckigen Klammern durch Ihre eigenen Werte zu ersetzen:
$ctxSrc = (Get-AzStorageAccount -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName).Context
$blobSrc = Get-AzStorageBlob -Container $srcContainerName1 `
-Context $ctxSrc `
-Blob <blob-name>
$blobSrc.BlobProperties.ObjectReplicationSourceProperties[0].Rules[0].ReplicationStatus
Um den Replikationsstatus für ein Blob im Quellkonto mit Azure CLI zu überprüfen, rufen Sie den Wert der Objektreplikation statuseigenschaft ab, wie im folgenden Beispiel gezeigt:
az storage blob show \
--account-name <source-account-name> \
--container-name <source-container-name> \
--name <source-blob-name> \
--query 'objectReplicationSourceProperties[].rules[].status' \
--output tsv \
--auth-mode login
Wenn der Replikationsstatus für ein Blob im Quellkonto auf einen Fehler hinweist, untersuchen Sie die folgenden möglichen Ursachen:
- Stellen Sie sicher, dass die Objektreplikationsrichtlinie im Zielkonto konfiguriert ist.
- Überprüfen Sie, ob der Zielcontainer noch vorhanden ist.
- Wenn das Quellblob im Rahmen eines Schreibvorgangs mit einem vom Kunden bereitgestellten Schlüssel verschlüsselt wurde, tritt bei der Objektreplikation ein Fehler auf. Weitere Informationen zu vom Kunden bereitgestellten Schlüsseln finden Sie unter Verschlüsselungsschlüssel für eine Anfrage an den Blob-Speicher bereitstellen.
Entfernen einer Replikationsrichtlinie
Um eine Replikationsrichtlinie und die zugehörigen Regeln zu entfernen, verwenden Sie Azure portal, PowerShell oder CLI.
Führen Sie die folgenden Schritte aus, um eine Replikationsrichtlinie im Azure portal zu entfernen:
- Navigieren Sie zum Quellspeicherkonto im Azure-Portal.
- Wählen Sie unter "Einstellungen" die Option "Objektreplikation" aus.
- Wählen Sie die Schaltfläche "Weitere " neben dem Richtliniennamen aus.
- Wählen Sie "Regeln löschen" aus.
Um eine Replikationsrichtlinie zu entfernen, löschen Sie die Richtlinie sowohl aus dem Quellkonto als auch aus dem Zielkonto. Durch das Löschen der Richtlinie werden auch alle damit verbundenen Regeln gelöscht.
# 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 aus dem Quellkonto als auch aus dem Zielkonto. Durch das Löschen der Richtlinie werden auch alle damit verbundenen Regeln gelöscht.
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <source-storage-account> \
--resource-group <resource-group>
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <dest-storage-account> \
--resource-group <resource-group>
Verhalten beim erneuten Erstellen einer Objektreplikationsrichtlinie
Wenn eine Objektreplikationsrichtlinie gelöscht und in demselben Quell- und Zielcontainerpaar neu erstellt wird, behandelt Azure die neue Richtlinie als völlig separate Replikationsbeziehung. Das folgende Verhalten gilt:
Für die neu erstellte Richtlinie wird eine neue Richtlinien-ID generiert.
Alle Replikationsaufgaben, die der vorherigen Richtlinie zugeordnet sind, werden beendet.
Dem Zielcontainer wird eine neue Replikationssperre zugewiesen, die mit der neuen Richtlinien-ID verknüpft ist.
Der Replikationsstatus aus der vorherigen Richtlinie wird nicht wiederverwendet.
Replikationsverhalten nach dem erneuten Erstellen einer Objektreplikationsrichtlinie
Nachdem die Richtlinie neu erstellt wurde, versucht Azure erneut die Replikation für berechtigte Blobs, und das Ergebnis hängt von der Verfügbarkeit des Blob-Versionsverlaufs für das Quellkonto ab:
Wenn ein Quellblob keine früheren Versionen am Zielort hat: Azure bestimmt, dass der Blob bereits unter einer vorherigen Richtlinie kopiert wurde. Die erneute Replikation dieses Blobs ist nicht erfolgreich. Nur neue Blob-Schreibvorgänge (oder neue Versionen, die nach der erneuten Erstellung der Richtlinie erstellt wurden) werden erfolgreich repliziert.
Wenn für ein Quellblob frühere Versionen am Zielort verfügbar sind, kann Azure den Blob erneut replizieren. Das Blob wird erneut als neue Version in das Ziel kopiert. Dies ermöglicht eine erfolgreiche erneute Replikation vorhandener Blobs ohne Dateninkonsistenz.
Nächste Schritte