Objektreplikering kopierar asynkront blockblobar mellan ett källlagringskonto och ett målkonto. När du konfigurerar objektreplikering skapar du en replikeringsprincip som anger källlagringskontot och målkontot. En replikeringsprincip innehåller en eller flera regler som anger en källcontainer och en målcontainer och anger vilka blockblobar i källcontainern som ska replikeras. Mer information om objektreplikering finns i Objektreplikering för blockblobar.
Den här artikeln beskriver hur du konfigurerar en princip för objektreplikering med hjälp av Azure-portalen, PowerShell eller Azure CLI. Du kan också använda ett av klientbiblioteken för Azure Storage-resursprovidern för att konfigurera objektreplikering.
Förutsättningar
Innan du konfigurerar objektreplikering skapar du käll- och mållagringskontona om de inte redan finns. Käll- och målkontona kan vara antingen allmänna v2-lagringskonton eller Premium-blockblobkonton. Mer information finns i Skapa ett Azure Storage-konto.
Objektreplikering kräver att blobversionshantering är aktiverat för både käll- och målkontot och att blobändringsflödet är aktiverat för källkontot. Mer information om versionshantering av blobar finns i Blob-versionshantering. Mer information om ändringsflöde finns i Stöd för ändringsflöde i Azure Blob Storage. Tänk på att aktivering av dessa funktioner kan leda till extra kostnader.
Om du vill konfigurera en princip för objektreplikering för ett lagringskonto måste du tilldelas rollen Azure Resource Manager-deltagare, som är begränsad till lagringskontots nivå eller högre. Mer information finns i Inbyggda Azure-roller i dokumentationen om rollbaserad åtkomstkontroll i Azure (Azure RBAC).
Objektreplikering stöds ännu inte i konton som har ett hierarkiskt namnområde aktiverat.
Konfigurera objektreplikering med åtkomst till båda lagringskontona
Om du har åtkomst till både käll- och mållagringskontona kan du konfigurera principen för objektreplikering på båda kontona. I följande exempel visas hur du konfigurerar objektreplikering med Azure-portalen, PowerShell eller Azure CLI.
När du konfigurerar objektreplikering i Azure-portalen behöver du bara konfigurera principen för källkontot. Azure-portalen skapar automatiskt principen för målkontot när du har konfigurerat den för källkontot.
Följ dessa steg för att skapa en replikeringsprincip i Azure-portalen:
Gå till källlagringskontot i Azure-portalen.
Under Datahantering väljer du Objektreplikering.
Välj Skapa replikeringsregler.
Välj målprenumeration och lagringskonto.
I avsnittet Information om containerpar väljer du en källcontainer från källkontot och en målcontainer från målkontot. Du kan skapa upp till 10 containerpar per replikeringsprincip från Azure-portalen. Information om hur du konfigurerar fler än 10 containerpar (upp till 1 000) finns i Konfigurera objektreplikering med en JSON-fil.
Följande bild visar en uppsättning replikeringsregler.
Om du vill kan du ange ett eller flera filter för att endast kopiera blobar som matchar ett prefixmönster. Om du till exempel anger ett prefix breplikeras endast blobbar vars namn börjar med bokstaven. Du kan ange en virtuell katalog som en del av prefixet. Du kan lägga till högst fem prefixmatchningar. Prefixsträngen stöder inte jokertecken.
Följande bild visar filter som begränsar vilka blobar som kopieras som en del av en replikeringsregel.
Som standard är kopieringsomfånget inställt på att endast kopiera nya objekt. Om du vill kopiera alla objekt i containern eller kopiera objekt från ett anpassat datum och en anpassad tid väljer du ändringslänken och konfigurerar kopieringsomfånget för containerparet.
Följande bild visar ett anpassat kopieringsomfång som kopierar objekt från ett angivet datum och en angiven tid och framåt.
Välj Spara och tillämpa för att skapa replikeringsprincipen och börja replikera data.
När du har konfigurerat objektreplikering visar Azure-portalen replikeringsprincipen och reglerna, enligt följande bild.
Om du vill skapa en replikeringsprincip med PowerShell installerar du först version 2.5.0 eller senare av Az.Storage PowerShell-modulen. Mer information om hur du installerar Azure PowerShell finns i Installera Azure PowerShell med PowerShellGet.
I följande exempel visas hur du skapar en replikeringsprincip först på målkontot och sedan på källkontot. Kom ihåg att ersätta värden inom vinkelparenteser med dina egna värden:
# 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
Om du vill skapa en replikeringsprincip med Azure CLI installerar du först Azure CLI version 2.11.1 eller senare. Mer information finns i Komma igång med Azure CLI.
Aktivera sedan blobversionshantering på käll- och mållagringskontona och aktivera ändringsflöde för källkontot genom att anropa kommandot az storage account blob-service-properties update . Kom ihåg att ersätta värden inom vinkelparenteser med dina egna värden:
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
Skapa käll- och målcontainrarna i sina respektive lagringskonton.
Azure Storage anger princip-ID för den nya principen när den skapas. Om du vill lägga till ytterligare regler i principen anropar du regeln az storage account or-policy add och anger princip-ID: t.
Skapa sedan principen för källkontot med hjälp av princip-ID:t.
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 "@-"
Konfigurera objektreplikering med hjälp av en JSON-fil
Om du inte har behörighet till källlagringskontot eller om du vill använda fler än 10 containerpar kan du konfigurera objektreplikering på målkontot och ange en JSON-fil som innehåller principdefinitionen till en annan användare för att skapa samma princip för källkontot. Om källkontot till exempel finns i en annan Microsoft Entra-klient från målkontot kan du använda den här metoden för att konfigurera objektreplikering.
Information om hur du skapar en JSON-fil som innehåller principdefinitionen finns i Principdefinitionsfil.
Kommentar
Replikering av objekt mellan klientorganisationer tillåts som standard för ett lagringskonto. För att förhindra replikering mellan klienter kan du ange egenskapen AllowCrossTenantReplication så att objektreplikering mellan klientorganisationer inte tillåts för dina lagringskonton. Mer information finns i Förhindra objektreplikering mellan Microsoft Entra-klienter.
Exemplen i det här avsnittet visar hur du konfigurerar principen för objektreplikering på målkontot och sedan hämtar JSON-filen för den principen som en annan användare kan använda för att konfigurera principen för källkontot.
Så här konfigurerar du objektreplikering på målkontot med en JSON-fil i Azure-portalen:
Skapa en lokal JSON-fil som definierar replikeringsprincipen för målkontot. Ange fältet policyId som standard så att Azure Storage definierar princip-ID:t.
Ett enkelt sätt att skapa en JSON-fil som definierar en replikeringsprincip är att först skapa en testreplikeringsprincip mellan två lagringskonton i Azure-portalen. Du kan sedan ladda ned replikeringsreglerna och ändra JSON-filen efter behov.
Gå till objektreplikeringsinställningarna för målkontot i Azure-portalen.
Välj Ladda upp replikeringsregler.
Ladda upp JSON-filen. Azure-portalen visar den princip och de regler som ska skapas, enligt följande bild.
Välj Ladda upp för att skapa replikeringsprincipen för målkontot.
Du kan sedan ladda ned en JSON-fil som innehåller den principdefinition som du kan ange för en annan användare för att konfigurera källkontot. Följ dessa steg för att ladda ned den här JSON-filen:
Gå till objektreplikeringsinställningarna för målkontot i Azure-portalen.
Välj knappen Mer bredvid den princip som du vill ladda ned och välj sedan Ladda ned regler enligt följande bild.
Spara JSON-filen på den lokala datorn för att dela med en annan användare för att konfigurera principen för källkontot.
Den nedladdade JSON-filen innehåller det princip-ID som Azure Storage skapade för principen på målkontot. Du måste använda samma princip-ID för att konfigurera objektreplikering på källkontot.
Tänk på att överföring av en JSON-fil för att skapa en replikeringsprincip för målkontot via Azure-portalen inte automatiskt skapar samma princip i källkontot. En annan användare måste skapa principen för källkontot innan Azure Storage börjar replikera objekt.
Om du vill ladda ned en JSON-fil som innehåller replikeringsprincipens definition för målkontot från PowerShell anropar du kommandot Get-AzStorageObjectReplicationPolicy för att returnera principen. Konvertera sedan principen till JSON och spara den som en lokal fil, som du ser i följande exempel. Kom ihåg att ersätta värden inom vinkelparenteser och filsökvägen med dina egna värden:
Om du vill använda JSON-filen för att definiera replikeringsprincipen för källkontot med PowerShell hämtar du den lokala filen och konverterar från JSON till ett objekt. Anropa sedan kommandot Set-AzStorageObjectReplicationPolicy för att konfigurera principen för källkontot, enligt följande exempel.
När du kör exemplet måste du ange parametern -ResourceGroupName till resursgruppen för källkontot och parametern -StorageAccountName till namnet på källkontot. Kom också ihåg att ersätta värden i vinkelparenteser och filsökvägen med dina egna värden:
I följande exempel skrivs principdefinitionen till en JSON-fil med namnet policy.json. Kom ihåg att ersätta värden inom vinkelparenteser och filsökvägen med dina egna värden:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Om du vill använda JSON-filen för att konfigurera replikeringsprincipen för källkontot med Azure CLI anropar du kommandot az storage account or-policy create och refererar till filen policy.json . Kom ihåg att ersätta värden inom vinkelparenteser och filsökvägen med dina egna värden:
Du kan kontrollera replikeringsstatusen för en blob i källkontot med hjälp av Azure-portalen, PowerShell eller Azure CLI. Objektreplikeringsegenskaper fylls inte i förrän replikeringen antingen har slutförts eller misslyckats.
Följ dessa steg för att kontrollera replikeringsstatusen för en blob i källkontot i Azure-portalen:
Gå till källkontot i Azure-portalen.
Leta upp containern som innehåller källbloben.
Välj bloben för att visa dess egenskaper. Om bloben har replikerats ser du i avsnittet Objektreplikering att statusen är inställd på Slutför. Replikeringsprincipens ID och ID för regeln som styr objektreplikering för den här containern visas också.
Om du vill kontrollera replikeringsstatusen för en blob i källkontot med PowerShell hämtar du värdet för egenskapen ReplicationStatus för objektreplikering, enligt följande exempel. Kom ihåg att ersätta värden inom vinkelparenteser med dina egna värden:
Om du vill kontrollera replikeringsstatusen för en blob i källkontot med Azure CLI hämtar du värdet för egenskapen objektreplikeringsstatus enligt följande exempel:
Följ dessa steg för att ta bort en replikeringsprincip i Azure-portalen:
Gå till källlagringskontot i Azure-portalen.
Under Inställningar väljer du Objektreplikering.
Välj knappen Mer bredvid principnamnet.
Välj Ta bort regler.
Ta bort en replikeringsprincip genom att ta bort principen från både källkontot och målkontot. Om du tar bort principen tas även alla regler som är associerade med den bort.
# 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
Ta bort en replikeringsprincip genom att ta bort principen från både källkontot och målkontot. Om du tar bort principen tas även alla regler som är associerade med den bort.