Replikace objektů asynchronně kopíruje blokové objekty blob mezi zdrojový účet úložiště a cílový účet. Při konfiguraci replikace objektů vytvoříte zásadu replikace, která určuje zdrojový účet úložiště a cílový účet. Zásady replikace zahrnují jedno nebo více pravidel, která určují zdrojový kontejner a cílový kontejner a označují, které objekty blob bloku ve zdrojovém kontejneru se budou replikovat. Další informace o replikaci objektů naleznete v tématu Replikace objektů pro blokové blob.
Tento článek popisuje, jak nakonfigurovat zásady replikace objektů pomocí webu Azure Portal, PowerShellu nebo Azure CLI. Ke konfiguraci replikace objektů můžete použít také jednu z klientských knihoven poskytovatele prostředků Azure Storage.
Požadavky
Před konfigurací replikace objektů vytvořte zdrojové a cílové účty úložiště, pokud ještě neexistují. Zdrojové a cílové účty můžou být buď účty úložiště pro obecné účely v2, nebo prémiové účty blokových blobů. Další informace najdete v tématu Vytvoření účtu azure Storage.
Replikace objektů vyžaduje, aby pro zdrojový i cílový účet byla povolena správa verzí objektů blob a že pro zdrojový účet je povolený kanál změn objektů blob. Další informace o správě verzí objektů blob najdete v tématu Správa verzí objektů blob. Další informace o kanálu změn najdete v tématu Podpora kanálu změn ve službě Azure Blob Storage. Mějte na paměti, že povolení těchto funkcí může vést k dalším nákladům.
Pokud chcete nakonfigurovat zásady replikace objektů pro účet úložiště, musíte mít přiřazenou roli Přispěvatel Azure Resource Manageru, která je vymezená na úroveň účtu úložiště nebo vyšší. Další informace viz vestavěné role Azure v dokumentaci k řízení přístupu na základě role (Azure RBAC).
Replikace objektů se zatím nepodporuje v účtech s povoleným hierarchickým oborem názvů.
Pokud máte přístup ke zdrojovému i cílovému účtu úložiště, můžete pro oba účty nakonfigurovat zásady replikace objektů. Následující příklady ukazují, jak nakonfigurovat replikaci objektů pomocí webu Azure Portal, PowerShellu nebo Azure CLI.
Pokud konfigurujete replikaci objektů na webu Azure Portal, stačí nakonfigurovat zásady jenom ve zdrojovém účtu. Azure Portal po nakonfigurování pro zdrojový účet automaticky vytvoří zásadu pro cílový účet.
Pokud chcete vytvořit zásadu replikace na webu Azure Portal, postupujte takto:
Na webu Azure Portal přejděte ke zdrojovému účtu úložiště.
V části Správa dat vyberte Replikace objektů.
Vyberte Vytvořit pravidla replikace.
Vyberte cílové předplatné a účet úložiště.
V části Podrobnosti o páru kontejnerů vyberte zdrojový kontejner ze zdrojového účtu a cílový kontejner z cílového účtu. V Azure portálu můžete vytvořit až 10 dvojic kontejnerů pro každou replikační politiku. Pokud chcete nakonfigurovat více než 10 dvojic kontejnerů (až 1000), přečtěte si téma Konfigurace replikace objektů pomocí souboru JSON.
Následující obrázek ukazuje sadu pravidel replikace.
V případě potřeby zadejte jeden nebo více filtrů pro kopírování pouze objektů blob, které odpovídají vzoru předpony. Pokud například zadáte předponu b, replikují se pouze objekty blob, jejichž název začíná tímto písmenem. Virtuální adresář můžete zadat jako součást předpony. Můžete přidat maximálně pět shod předpon. Řetězec předpony nepodporuje zástupné znaky.
Následující obrázek ukazuje filtry, které omezují, které objekty blob se kopírují jako součást pravidla replikace.
Ve výchozím nastavení je obor kopírování nastavený tak, aby zkopíroval pouze nové objekty. Pokud chcete zkopírovat všechny objekty v kontejneru nebo zkopírovat objekty počínaje vlastním datem a časem, vyberte odkaz pro změnu a nakonfigurujte obor kopírování pro dvojici kontejnerů.
Následující obrázek znázorňuje vlastní obor kopírování, který kopíruje objekty od zadaného data a času dále.
Vyberte Uložit a použijte k vytvoření zásady replikace a zahájení replikace dat.
Po nakonfigurování replikace objektů se na webu Azure Portal zobrazí zásady a pravidla replikace, jak je znázorněno na následujícím obrázku.
Pokud chcete vytvořit zásady replikace pomocí PowerShellu, nejprve nainstalujte verzi 2.5.0 nebo novější modulu Az.Storage PowerShellu. Další informace o instalaci Azure PowerShellu najdete v tématu Instalace Azure PowerShellu pomocí modulu PowerShellGet.
Následující příklad ukazuje, jak nejprve vytvořit zásadu replikace v cílovém účtu a pak na zdrojovém účtu. Nezapomeňte nahradit hodnoty v úhlových závorkách vlastními hodnotami:
# 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
Pokud chcete vytvořit zásady replikace pomocí Azure CLI, nejprve nainstalujte Azure CLI verze 2.11.1 nebo novější. Další informace najdete v tématu Začínáme s Azure CLI.
Dále povolte verzování blobů u zdrojového a cílového účtu úložiště a povolte záznam změn ve zdrojovém účtu voláním příkazu az storage account blob-service-properties update. Nezapomeňte nahradit hodnoty v úhlových závorkách vlastními hodnotami:
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
Vytvořte zdrojové a cílové kontejnery v příslušných účtech úložiště.
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
Vytvořte novou zásadu replikace a přidružené pravidlo pro cílový účet zavoláním příkazu az storage account or-policy create.
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 nastaví ID zásad pro novou zásadu při jejím vytvoření. Pokud chcete do zásady přidat další pravidla, zavolejte příkaz az storage account or-policy rule add a zadejte ID zásady.
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
Dále vytvořte zásadu ve zdrojovém účtu pomocí ID zásady.
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 "@-"
Pokud nemáte oprávnění ke zdrojovému účtu úložiště nebo pokud chcete použít více než 10 dvojic kontejnerů, můžete nakonfigurovat replikaci objektů v cílovém účtu a zadat soubor JSON, který obsahuje definici zásady jinému uživateli, a vytvořit stejnou zásadu ve zdrojovém účtu. Pokud je například zdrojový účet v jiném tenantovi Microsoft Entra z cílového účtu, můžete tento přístup použít ke konfiguraci replikace objektů.
Informace o tom, jak vytvořit soubor JSON, který obsahuje definici zásady, najdete v tématu Soubor definice zásad.
Poznámka:
Replikace objektů mezi tenanty je ve výchozím nastavení povolená pro účet úložiště. Pokud chcete zabránit replikaci mezi tenanty, můžete u účtů úložiště nastavit vlastnost AllowCrossTenantReplication tak, aby neumožňovala replikaci objektů mezi tenanty. Další informace naleznete v tématu Zabránění replikaci objektů napříč tenanty Microsoft Entra.
Příklady v této části ukazují, jak nakonfigurovat zásady replikace objektů v cílovém účtu a pak získat soubor JSON pro tuto zásadu, kterou může použít jiný uživatel ke konfiguraci zásad ve zdrojovém účtu.
Pokud chcete nakonfigurovat replikaci objektů v cílovém účtu pomocí souboru JSON na webu Azure Portal, postupujte takto:
Vytvořte místní soubor JSON, který definuje zásady replikace v cílovém účtu. Nastavte pole policyId na výchozí , aby služba Azure Storage definovala ID zásady.
Snadný způsob, jak vytvořit soubor JSON, který definuje zásady replikace, je nejprve vytvořit testovací zásady replikace mezi dvěma účty úložiště na webu Azure Portal. Pak si můžete stáhnout pravidla replikace a podle potřeby upravit soubor JSON.
Na webu Azure Portal přejděte do nastavení replikace objektů pro cílový účet.
Vyberte Nahrát pravidla replikace.
Nahrajte soubor JSON. Na webu Azure Portal se zobrazí zásady a pravidla, která se vytvoří, jak je znázorněno na následujícím obrázku.
Výběrem Nahrát vytvořte zásadu replikace v cílovém účtu.
Pak si můžete stáhnout soubor JSON obsahující definici zásad, který můžete poskytnout jinému uživateli, aby nakonfigurovali zdrojový účet. Chcete-li stáhnout tento soubor JSON, postupujte takto:
Na webu Azure Portal přejděte do nastavení replikace objektů pro cílový účet.
Vyberte tlačítko Další vedle zásady, kterou chcete stáhnout, a pak vyberte Stáhnout pravidla, jak je znázorněno na následujícím obrázku.
Uložte soubor JSON do místního počítače a sdílejte ho s jiným uživatelem a nakonfigurujte zásady ve zdrojovém účtu.
Stažený soubor JSON obsahuje ID zásady, které služba Azure Storage vytvořila pro zásadu v cílovém účtu. Ke konfiguraci replikace objektů ve zdrojovém účtu musíte použít stejné ID politiky.
Mějte na paměti, že nahrání souboru JSON pro vytvoření zásady replikace pro cílový účet prostřednictvím webu Azure Portal automaticky nevytvoří stejnou zásadu ve zdrojovém účtu. Aby služba Azure Storage začala replikovat objekty, musí jiný uživatel vytvořit zásadu ve zdrojovém účtu.
Pokud chcete stáhnout soubor JSON, který obsahuje definici zásady replikace pro cílový účet z PowerShellu, zavolejte příkaz Get-AzStorageObjectReplicationPolicy , který vrátí zásadu. Pak zásadu převeďte na JSON a uložte ji jako místní soubor, jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit hodnoty v lomených závorkách a cestě k souboru vlastními hodnotami:
$rgName = "<resource-group>"
$destAccountName = "<destination-storage-account>"
$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
$destPolicy | ConvertTo-Json -Depth 5 > c:\temp\json.txt
Pokud chcete pomocí souboru JSON definovat zásady replikace ve zdrojovém účtu pomocí PowerShellu, načtěte místní soubor a převeďte ho z JSON na objekt. Potom zavolejte příkaz Set-AzStorageObjectReplicationPolicy , který nakonfiguruje zásadu ve zdrojovém účtu, jak je znázorněno v následujícím příkladu.
Při spuštění příkladu nezapomeňte nastavit -ResourceGroupName parametr na skupinu prostředků zdrojového účtu a -StorageAccountName parametr na název zdrojového účtu. Nezapomeňte také nahradit hodnoty v lomených závorkách a cestě k souboru vlastními hodnotami:
$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
Pokud chcete napsat definici zásady replikace pro cílový účet do souboru JSON pomocí Azure CLI, zavolejte příkaz az storage account replication-policy show a výsledek uložte do souboru.
Následující příklad zapíše definici zásady do souboru JSON s názvem policy.json. Nezapomeňte nahradit hodnoty v lomených závorkách a cestě k souboru vlastními hodnotami:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Pokud chcete pomocí souboru JSON nakonfigurovat zásady replikace na zdrojovém účtu pomocí Azure CLI, zavolejte příkaz az storage account or-policy create a odkazujte na soubor policy.json . Nezapomeňte nahradit hodnoty v lomených závorkách a cestě k souboru vlastními hodnotami:
az storage account or-policy create \
-resource-group <resource-group> \
--source-account <source-account-name> \
--policy @policy.json
Povolení metrik replikace
Metriky replikace můžete povolit u nových i stávajících zásad replikace objektů. Než začnete sledovat metriky, může to trvat několik minut.
Metriky můžete povolit pomocí panelu Replikace objektů z nového sloupce Metriky nebo úpravou sekce Upravit pravidla zásad z kontextové nabídky "..." na řádku zásad OR.
Aktivace metrik je podporována pro API verze 2021-08-01 a vyšší. Do zásad replikace můžete přidat nové pole metrik. Ukázka:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"metrics":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Pokud povolíte metriky pro zásadu, která je nakonfigurovaná pro kopírování nad existujícími daty, můžete na začátku sledovat rostoucí množství, zatímco zásady fungují na počáteční fázi výpisu. Po dokončení se replikace spustí.
Zobrazení metrik replikace
Kliknutím na odkaz Zobrazit ze sloupce Metriky můžete zobrazit metriky monitorování.
Pokud chcete metriky ve službě Azure Monitor zobrazit, klikněte na graf metriky. Tím vás přesměrujete do zobrazení metrik služby Azure Monitor s dalšími možnostmi filtrování.
Zkontrolujte stav replikace objektu blob
Stav replikace objektu blob ve zdrojovém účtu můžete zkontrolovat pomocí webu Azure Portal, PowerShellu nebo Azure CLI. Vlastnosti replikace objektů se nenaplní, dokud se replikace nedokončí nebo se nezdaří.
Pokud chcete zkontrolovat stav replikace objektu blob ve zdrojovém účtu na webu Azure Portal, postupujte takto:
- Na webu Azure Portal přejděte ke zdrojovému účtu.
- Vyhledejte kontejner, který obsahuje zdrojový blob.
- Výběrem objektu blob zobrazte jeho vlastnosti. Pokud se objekt blob úspěšně replikoval, uvidíte v části Replikace objektu stav Dokončeno. Zobrazí se také ID zásady replikace a ID pravidla, které řídí replikaci objektů pro tento kontejner.
Pokud chcete zkontrolovat stav replikace pro objekt blob ve zdrojovém účtu pomocí PowerShellu, získejte hodnotu vlastnosti replikace objektu ReplicationStatus, jak je znázorněno v následujícím příkladu. Nezapomeňte nahradit hodnoty v úhlových závorkách vlastními hodnotami:
$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
Pokud chcete zkontrolovat stav replikace objektu blob ve zdrojovém účtu pomocí Azure CLI, získejte hodnotu vlastnosti stavu replikace objektu, jak je znázorněno v následujícím příkladu:
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
Pokud stav replikace objektu blob ve zdrojovém účtu značí selhání, prozkoumejte následující možné příčiny:
- Ujistěte se, že je v cílovém účtu nakonfigurovaná zásada replikace objektů.
- Ověřte, že cílový kontejner stále existuje.
- Pokud byl zdrojový objekt blob zašifrován pomocí klíče poskytnutého zákazníkem v rámci operace zápisu, replikace objektů selže. Další informace o klíčích poskytovaných zákazníkem najdete v tématu Poskytnutí šifrovacího klíče v rámci požadavku na úložiště objektů blob.
Odeberte zásadu replikace
Pokud chcete odebrat zásady replikace a související pravidla, použijte Azure Portal, PowerShell nebo rozhraní příkazového řádku.
Pokud chcete odebrat zásady replikace na webu Azure Portal, postupujte takto:
- Na webu Azure Portal přejděte ke zdrojovému účtu úložiště.
- V části Nastavení vyberte Replikace objektů.
- Vyberte tlačítko Další vedle názvu zásady.
- Vyberte Odstranit pravidla.
Pokud chcete odebrat zásady replikace, odstraňte zásadu ze zdrojového i cílového účtu. Odstraněním zásady se odstraní také všechna pravidla, která jsou k ní přidružená.
# 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
Pokud chcete odebrat zásady replikace, odstraňte zásadu ze zdrojového i cílového účtu. Odstraněním zásady se odstraní také všechna pravidla, která jsou k ní přidružená.
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>
Další kroky