Konfigurace replikace objektů pro objekty blob bloku
Článek
Replikace objektů asynchronně kopíruje objekty blob bloku mezi zdrojovým účtem úložiště a cílovým účtem. 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 objekty blob bloku.
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.
Předpoklady
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 účty úložiště pro obecné účely verze 2 nebo účty objektů blob bloku úrovně Premium. 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.
Replikace objektů se zatím nepodporuje v účtech s povoleným hierarchickým oborem názvů.
Konfigurace replikace objektů s přístupem k oběma účtům úložiště
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. Na webu Azure Portal můžete vytvořit až 10 dvojic kontejnerů na zásady replikace. 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 ze zadaného data a času.
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 správu verzí objektů blob u zdrojového a cílového účtu úložiště a povolte kanál 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ě.
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 and provide the policy ID.
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 "@-"
Konfigurace replikace objektů pomocí souboru JSON
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 možnosti 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 zásady.
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:
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:
Pokud chcete napsat definici zásady replikace pro cílový účet do souboru JSON z Azure CLI, zavolejte příkaz az storage account or-policy show a výstup 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:
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ý objekt 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 objektu blob ve zdrojovém účtu pomocí PowerShellu, získejte hodnotu vlastnosti ReplicationStatus replikace objektu, 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:
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:
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 požadavku do úložiště objektů blob.
Odebrání zásady 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á.