Objectreplicatie kopieert asynchroon blok-blobs tussen een bronopslagaccount en een doelaccount. Wanneer u objectreplicatie configureert, maakt u een replicatiebeleid dat het bronopslagaccount en het doelaccount aangeeft. Een replicatiebeleid bevat een of meer regels die een broncontainer en een doelcontainer opgeven en aangeven welke blok-blobs in de broncontainer worden gerepliceerd. Zie Objectreplicatie voor blok-blobs voor meer informatie over objectreplicatie.
In dit artikel wordt beschreven hoe u een objectreplicatiebeleid configureert met behulp van Azure Portal, PowerShell of Azure CLI. U kunt ook een van de clientbibliotheken van de Azure Storage-resourceprovider gebruiken om objectreplicatie te configureren.
Vereisten
Voordat u objectreplicatie configureert, maakt u de bron- en doelopslagaccounts als deze nog niet bestaan. De bron- en doelaccounts kunnen algemeen v2-opslagaccounts of premium blok-blobaccounts zijn. Zie Een Azure Storage-account maken voor meer informatie.
Als u een objectreplicatiebeleid voor een opslagaccount wilt configureren, moet u de rol Azure Resource Manager-inzender toewijzen, die is afgestemd op het niveau van het opslagaccount of hoger. Zie de ingebouwde Azure-rollen in de documentatie voor op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) voor meer informatie.
Objectreplicatie wordt nog niet ondersteund in accounts waarvoor een hiërarchische naamruimte is ingeschakeld.
Objectreplicatie configureren met toegang tot beide opslagaccounts
Als u toegang hebt tot zowel de bron- als doelopslagaccounts, kunt u het objectreplicatiebeleid voor beide accounts configureren. In de volgende voorbeelden ziet u hoe u objectreplicatie configureert met Azure Portal, PowerShell of Azure CLI.
Wanneer u objectreplicatie configureert in Azure Portal, hoeft u alleen het beleid voor het bronaccount te configureren. Azure Portal maakt automatisch het beleid voor het doelaccount nadat u het voor het bronaccount hebt geconfigureerd.
Voer de volgende stappen uit om een replicatiebeleid te maken in Azure Portal:
Navigeer naar het bronopslagaccount in Azure Portal.
Selecteer objectreplicatie onder Gegevensbeheer.
Selecteer Replicatieregels maken.
Selecteer het doelabonnement en het opslagaccount.
Selecteer in de sectie Details van containerpaar een broncontainer uit het bronaccount en een doelcontainer uit het doelaccount. U kunt maximaal 10 containerparen per replicatiebeleid maken vanuit Azure Portal. Zie Objectreplicatie configureren met behulp van een JSON-bestand als u meer dan 10 containerparen (maximaal 1000) wilt configureren.
In de volgende afbeelding ziet u een set replicatieregels.
Geef desgewenst een of meer filters op om alleen blobs te kopiëren die overeenkomen met een voorvoegselpatroon. Als u bijvoorbeeld een voorvoegsel bopgeeft, worden alleen blobs waarvan de naam begint met die letter gerepliceerd. U kunt een virtuele map opgeven als onderdeel van het voorvoegsel. U kunt maximaal vijf voorvoegselovereenkomsten toevoegen. De tekenreeks voor het voorvoegsel biedt geen ondersteuning voor jokertekens.
In de volgende afbeelding ziet u filters waarmee wordt beperkt welke blobs worden gekopieerd als onderdeel van een replicatieregel.
Standaard is het kopieerbereik ingesteld om alleen nieuwe objecten te kopiëren. Als u alle objecten in de container wilt kopiëren of objecten wilt kopiëren vanaf een aangepaste datum en tijd, selecteert u de koppeling wijzigen en configureert u het kopieerbereik voor het containerpaar.
In de volgende afbeelding ziet u een aangepast kopieerbereik waarmee objecten vanaf een opgegeven datum en tijd worden gekopieerd.
Selecteer Opslaan en toepassen om het replicatiebeleid te maken en begin met het repliceren van gegevens.
Nadat u objectreplicatie hebt geconfigureerd, worden in Azure Portal het replicatiebeleid en de regels weergegeven, zoals wordt weergegeven in de volgende afbeelding.
Als u een replicatiebeleid wilt maken met PowerShell, installeert u eerst versie 2.5.0 of hoger van de Az.Storage PowerShell-module. Zie Azure PowerShell installeren met PowerShellGet voor meer informatie over het installeren van Azure PowerShell.
In het volgende voorbeeld ziet u hoe u eerst een replicatiebeleid maakt voor het doelaccount en vervolgens op het bronaccount. Vergeet niet om waarden tussen punthaken te vervangen door uw eigen waarden:
# 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
Als u een replicatiebeleid wilt maken met Azure CLI, installeert u eerst Azure CLI versie 2.11.1 of hoger. Zie Aan de slag met Azure CLI voor meer informatie.
Schakel vervolgens blobversiebeheer in voor de bron- en doelopslagaccounts en schakel de wijzigingenfeed in voor het bronaccount door de opdracht az storage account blob-service-properties update aan te roepen. Vergeet niet om waarden tussen punthaken te vervangen door uw eigen waarden:
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
Maak de bron- en doelcontainers in hun respectieve opslagaccounts.
Azure Storage stelt de beleids-id voor het nieuwe beleid in wanneer het wordt gemaakt. Als u extra regels aan het beleid wilt toevoegen, roept u de regel az storage account of-policy rule aan en geeft u de beleids-id op.
Maak vervolgens het beleid voor het bronaccount met behulp van de beleids-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 "@-"
Objectreplicatie configureren met behulp van een JSON-bestand
Als u geen machtigingen hebt voor het bronopslagaccount of als u meer dan 10 containerparen wilt gebruiken, kunt u objectreplicatie voor het doelaccount configureren en een JSON-bestand opgeven dat de beleidsdefinitie bevat aan een andere gebruiker om hetzelfde beleid voor het bronaccount te maken. Als het bronaccount zich bijvoorbeeld in een andere Microsoft Entra-tenant bevindt dan het doelaccount, kunt u deze methode gebruiken om objectreplicatie te configureren.
Zie Het bestand met beleidsdefinities voor informatie over het ontwerpen van een JSON-bestand dat de beleidsdefinitie bevat.
Notitie
Replicatie van meerdere tenantobjecten is standaard toegestaan voor een opslagaccount. Als u replicatie tussen tenants wilt voorkomen, kunt u de eigenschap AllowCrossTenantReplication instellen om replicatie van meerdere tenantobjecten voor uw opslagaccounts niet toe te staan. Zie Objectreplicatie voorkomen in Microsoft Entra-tenants voor meer informatie.
In de voorbeelden in deze sectie ziet u hoe u het objectreplicatiebeleid voor het doelaccount configureert en vervolgens het JSON-bestand voor dat beleid opkrijgt dat een andere gebruiker kan gebruiken om het beleid voor het bronaccount te configureren.
Als u objectreplicatie wilt configureren voor het doelaccount met een JSON-bestand in Azure Portal, voert u de volgende stappen uit:
Maak een lokaal JSON-bestand dat het replicatiebeleid definieert voor het doelaccount. Stel het veld policyId in op de standaardinstelling , zodat Azure Storage de beleids-id definieert.
Een eenvoudige manier om een JSON-bestand te maken dat een replicatiebeleid definieert, is om eerst een testreplicatiebeleid te maken tussen twee opslagaccounts in Azure Portal. Vervolgens kunt u de replicatieregels downloaden en zo nodig het JSON-bestand wijzigen.
Navigeer naar de instellingen voor objectreplicatie voor het doelaccount in Azure Portal.
Selecteer Replicatieregels uploaden.
Upload het JSON-bestand. In Azure Portal worden het beleid en de regels weergegeven die worden gemaakt, zoals wordt weergegeven in de volgende afbeelding.
Selecteer Uploaden om het replicatiebeleid voor het doelaccount te maken.
Vervolgens kunt u een JSON-bestand met de beleidsdefinitie downloaden dat u aan een andere gebruiker kunt opgeven om het bronaccount te configureren. Volg deze stappen om dit JSON-bestand te downloaden:
Navigeer naar de instellingen voor objectreplicatie voor het doelaccount in Azure Portal.
Selecteer de knop Meer naast het beleid dat u wilt downloaden en selecteer vervolgens Downloadregels, zoals wordt weergegeven in de volgende afbeelding.
Sla het JSON-bestand op uw lokale computer op om te delen met een andere gebruiker om het beleid voor het bronaccount te configureren.
Het gedownloade JSON-bestand bevat de beleids-id die Azure Storage heeft gemaakt voor het beleid in het doelaccount. U moet dezelfde beleids-id gebruiken om objectreplicatie voor het bronaccount te configureren.
Houd er rekening mee dat het uploaden van een JSON-bestand om een replicatiebeleid voor het doelaccount te maken via Azure Portal niet automatisch hetzelfde beleid in het bronaccount maakt. Een andere gebruiker moet het beleid voor het bronaccount maken voordat Azure Storage begint met het repliceren van objecten.
Als u een JSON-bestand wilt downloaden dat de replicatiebeleidsdefinitie voor het doelaccount van PowerShell bevat, roept u de opdracht Get-AzStorageObjectReplicationPolicy aan om het beleid te retourneren. Converteer het beleid vervolgens naar JSON en sla het op als een lokaal bestand, zoals wordt weergegeven in het volgende voorbeeld. Vergeet niet om waarden tussen punthaken en het bestandspad te vervangen door uw eigen waarden:
Als u het JSON-bestand wilt gebruiken om het replicatiebeleid voor het bronaccount met PowerShell te definiëren, haalt u het lokale bestand op en converteert u van JSON naar een object. Roep vervolgens de opdracht Set-AzStorageObjectReplicationPolicy aan om het beleid voor het bronaccount te configureren, zoals wordt weergegeven in het volgende voorbeeld.
Wanneer u het voorbeeld uitvoert, moet u de -ResourceGroupName parameter instellen op de resourcegroep voor het bronaccount en de -StorageAccountName parameter op de naam van het bronaccount. Vergeet ook niet om waarden tussen punthaken en het bestandspad te vervangen door uw eigen waarden:
Als u de definitie van het replicatiebeleid voor het doelaccount wilt schrijven naar een JSON-bestand vanuit Azure CLI, roept u de opdracht az storage-account of-policy show aan en voert u uitvoer uit naar een bestand.
In het volgende voorbeeld wordt de beleidsdefinitie naar een JSON-bestand met de naam policy.json geschreven. Vergeet niet om waarden tussen punthaken en het bestandspad te vervangen door uw eigen waarden:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Als u het JSON-bestand wilt gebruiken om het replicatiebeleid voor het bronaccount met Azure CLI te configureren, roept u de opdracht az storage account or-policy create aan en verwijst u naar het bestand policy.json . Vergeet niet om waarden tussen punthaken en het bestandspad te vervangen door uw eigen waarden:
U kunt de replicatiestatus voor een blob in het bronaccount controleren met behulp van Azure Portal, PowerShell of Azure CLI. Eigenschappen van objectreplicatie worden pas ingevuld als de replicatie is voltooid of mislukt.
Voer de volgende stappen uit om de replicatiestatus voor een blob in het bronaccount in Azure Portal te controleren:
Navigeer naar het bronaccount in Azure Portal.
Zoek de container met de bron-blob.
Selecteer de blob om de eigenschappen ervan weer te geven. Als de blob is gerepliceerd, ziet u in de sectie Objectreplicatie dat de status is ingesteld op Voltooien. De replicatiebeleids-id en de id voor de regel voor objectreplicatie voor deze container worden ook vermeld.
Als u de replicatiestatus voor een blob in het bronaccount met PowerShell wilt controleren, haalt u de waarde op van de eigenschap ReplicationStatus van het object, zoals wordt weergegeven in het volgende voorbeeld. Vergeet niet om waarden tussen punthaken te vervangen door uw eigen waarden:
Als u de replicatiestatus voor een blob in het bronaccount met Azure CLI wilt controleren, haalt u de waarde op van de eigenschap van de objectreplicatiestatus, zoals wordt weergegeven in het volgende voorbeeld:
Als de replicatiestatus voor een blob in het bronaccount een fout aangeeft, onderzoekt u de volgende mogelijke oorzaken:
Zorg ervoor dat het objectreplicatiebeleid is geconfigureerd voor het doelaccount.
Controleer of de doelcontainer nog bestaat.
Als de bron-blob is versleuteld met een door de klant geleverde sleutel als onderdeel van een schrijfbewerking, mislukt de objectreplicatie. Zie Een versleutelingssleutel opgeven voor een aanvraag bij Blob Storage voor meer informatie over door de klant verstrekte sleutels.
Een replicatiebeleid verwijderen
Als u een replicatiebeleid en de bijbehorende regels wilt verwijderen, gebruikt u Azure Portal, PowerShell of CLI.
Als u een replicatiebeleid wilt verwijderen in Azure Portal, voert u de volgende stappen uit:
Navigeer naar het bronopslagaccount in Azure Portal.
Selecteer objectreplicatie onder Instellingen.
Selecteer de knop Meer naast de beleidsnaam.
Selecteer Regels verwijderen.
Als u een replicatiebeleid wilt verwijderen, verwijdert u het beleid uit zowel het bronaccount als het doelaccount. Als u het beleid verwijdert, worden ook alle bijbehorende regels verwijderd.
# 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
Als u een replicatiebeleid wilt verwijderen, verwijdert u het beleid uit zowel het bronaccount als het doelaccount. Als u het beleid verwijdert, worden ook alle bijbehorende regels verwijderd.