Konfigurowanie replikacji obiektów dla blokowych obiektów blob
Artykuł
Replikacja obiektów asynchronicznie kopiuje blokowe obiekty blob między źródłowym kontem magazynu a kontem docelowym. Podczas konfigurowania replikacji obiektów należy utworzyć zasady replikacji, które określają źródłowe konto magazynu i konto docelowe. Zasady replikacji obejmują co najmniej jedną regułę określającą kontener źródłowy i docelowy kontener oraz wskazują, które blokowe obiekty blob w kontenerze źródłowym zostaną zreplikowane. Aby uzyskać więcej informacji na temat replikacji obiektów, zobacz Replikacja obiektów dla blokowych obiektów blob.
W tym artykule opisano sposób konfigurowania zasad replikacji obiektów przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Do skonfigurowania replikacji obiektów można również użyć jednej z bibliotek klienta dostawcy zasobów usługi Azure Storage.
Wymagania wstępne
Przed skonfigurowaniem replikacji obiektów utwórz źródłowe i docelowe konta magazynu, jeśli jeszcze nie istnieją. Konta źródłowe i docelowe mogą być kontami magazynu ogólnego przeznaczenia w wersji 2 lub kontami blokowych obiektów blob w warstwie Premium. Aby uzyskać więcej informacji, zobacz Tworzenie konta usługi Azure Storage.
Replikacja obiektów wymaga włączenia obsługi wersji obiektów blob zarówno dla konta źródłowego, jak i docelowego, a źródło zmian obiektu blob jest włączone dla konta źródłowego. Aby dowiedzieć się więcej na temat przechowywania wersji obiektów blob, zobacz Przechowywanie wersji obiektów blob. Aby dowiedzieć się więcej na temat zestawienia zmian, zobacz Obsługa zestawienia zmian w usłudze Azure Blob Storage. Należy pamiętać, że włączenie tych funkcji może spowodować dodatkowe koszty.
Aby skonfigurować zasady replikacji obiektów dla konta magazynu, musisz mieć przypisaną rolę Współautor usługi Azure Resource Manager w zakresie do poziomu konta magazynu lub wyższego. Aby uzyskać więcej informacji, zobacz wbudowane role platformy Azure w dokumentacji kontroli dostępu na podstawie ról (RBAC) platformy Azure.
Replikacja obiektów nie jest jeszcze obsługiwana na kontach z włączoną hierarchiczną przestrzenią nazw.
Konfigurowanie replikacji obiektów z dostępem do obu kont magazynu
Jeśli masz dostęp do kont magazynu źródłowego i docelowego, możesz skonfigurować zasady replikacji obiektów na obu kontach. W poniższych przykładach pokazano, jak skonfigurować replikację obiektów za pomocą witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure.
Podczas konfigurowania replikacji obiektów w witrynie Azure Portal należy skonfigurować zasady tylko na koncie źródłowym. Witryna Azure Portal automatycznie tworzy zasady na koncie docelowym po skonfigurowaniu go dla konta źródłowego.
Aby utworzyć zasady replikacji w witrynie Azure Portal, wykonaj następujące kroki:
Przejdź do źródłowego konta magazynu w witrynie Azure Portal.
W obszarze Zarządzanie danymi wybierz pozycję Replikacja obiektów.
Wybierz pozycję Utwórz reguły replikacji.
Wybierz docelową subskrypcję i konto magazynu.
W sekcji Szczegóły pary kontenerów wybierz kontener źródłowy z konta źródłowego i kontener docelowy z konta docelowego. W witrynie Azure Portal można utworzyć maksymalnie 10 par kontenerów na zasady replikacji. Aby skonfigurować więcej niż 10 par kontenerów (do 1000), zobacz Konfigurowanie replikacji obiektów przy użyciu pliku JSON.
Na poniższej ilustracji przedstawiono zestaw reguł replikacji.
W razie potrzeby określ co najmniej jeden filtr, aby skopiować tylko obiekty blob zgodne ze wzorcem prefiksu. Jeśli na przykład określisz prefiks b, replikowane są tylko obiekty blob, których nazwa zaczyna się od tej litery. Jako część prefiksu można określić katalog wirtualny. Można dodać maksymalnie pięć dopasowań prefiksów. Ciąg prefiksu nie obsługuje symboli wieloznacznych.
Na poniższej ilustracji przedstawiono filtry, które ograniczają, które obiekty blob są kopiowane w ramach reguły replikacji.
Domyślnie zakres kopiowania jest ustawiany na kopiowanie tylko nowych obiektów. Aby skopiować wszystkie obiekty w kontenerze lub skopiować obiekty rozpoczynające się od niestandardowej daty i godziny, wybierz link zmiany i skonfiguruj zakres kopiowania dla pary kontenerów.
Na poniższej ilustracji przedstawiono niestandardowy zakres kopiowania, który kopiuje obiekty z określonej daty i godziny do wewnątrz.
Wybierz pozycję Zapisz i zastosuj , aby utworzyć zasady replikacji i rozpocząć replikowanie danych.
Po skonfigurowaniu replikacji obiektów witryna Azure Portal wyświetli zasady i reguły replikacji, jak pokazano na poniższej ilustracji.
W poniższym przykładzie pokazano, jak najpierw utworzyć zasady replikacji na koncie docelowym, a następnie na koncie źródłowym. Pamiętaj, aby zastąpić wartości w nawiasach kątowych własnymi wartościami:
# 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
Aby utworzyć zasady replikacji za pomocą interfejsu wiersza polecenia platformy Azure, najpierw zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.11.1 lub nowszej. Aby uzyskać więcej informacji, zobacz Wprowadzenie do interfejsu wiersza polecenia platformy Azure.
Następnie włącz przechowywanie wersji obiektów blob na źródłowych i docelowych kontach magazynu i włącz źródło zmian na koncie źródłowym, wywołując polecenie az storage account blob-service-properties update . Pamiętaj, aby zastąpić wartości w nawiasach kątowych własnymi wartościami:
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
Utwórz kontenery źródłowe i docelowe na odpowiednich kontach magazynu.
Usługa Azure Storage ustawia identyfikator zasad dla nowych zasad podczas tworzenia. Aby dodać dodatkowe reguły do zasad, wywołaj polecenie az storage account or-policy rule add i podaj identyfikator zasad.
Następnie utwórz zasady na koncie źródłowym przy użyciu identyfikatora zasad.
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 "@-"
Konfigurowanie replikacji obiektów przy użyciu pliku JSON
Jeśli nie masz uprawnień do źródłowego konta magazynu lub jeśli chcesz użyć więcej niż 10 par kontenerów, możesz skonfigurować replikację obiektów na koncie docelowym i podać plik JSON zawierający definicję zasad dla innego użytkownika, aby utworzyć te same zasady na koncie źródłowym. Jeśli na przykład konto źródłowe znajduje się w innej dzierżawie firmy Microsoft Entra z konta docelowego, możesz użyć tej metody do skonfigurowania replikacji obiektów.
Aby uzyskać informacje na temat tworzenia pliku JSON zawierającego definicję zasad, zobacz Plik definicji zasad.
Uwaga
Replikacja obiektów między dzierżawami jest domyślnie dozwolona dla konta magazynu. Aby zapobiec replikacji między dzierżawami, możesz ustawić właściwość AllowCrossTenantReplication , aby uniemożliwić replikację obiektów między dzierżawami dla kont magazynu. Aby uzyskać więcej informacji, zobacz Zapobieganie replikacji obiektów w dzierżawach firmy Microsoft Entra.
W przykładach w tej sekcji pokazano, jak skonfigurować zasady replikacji obiektów na koncie docelowym, a następnie pobrać plik JSON dla tych zasad, których inny użytkownik może użyć do skonfigurowania zasad na koncie źródłowym.
Aby skonfigurować replikację obiektów na koncie docelowym przy użyciu pliku JSON w witrynie Azure Portal, wykonaj następujące kroki:
Utwórz lokalny plik JSON, który definiuje zasady replikacji na koncie docelowym. Ustaw wartość domyślną pola policyId, aby usługa Azure Storage zdefiniowała identyfikator zasad.
Łatwym sposobem utworzenia pliku JSON definiującego zasady replikacji jest najpierw utworzenie zasad replikacji testowej między dwoma kontami magazynu w witrynie Azure Portal. Następnie możesz pobrać reguły replikacji i zmodyfikować plik JSON zgodnie z potrzebami.
Przejdź do ustawień replikacji obiektów dla konta docelowego w witrynie Azure Portal.
Wybierz pozycję Przekaż reguły replikacji.
Przekaż plik JSON. W witrynie Azure Portal zostaną wyświetlone zasady i reguły, które zostaną utworzone, jak pokazano na poniższej ilustracji.
Wybierz pozycję Przekaż , aby utworzyć zasady replikacji na koncie docelowym.
Następnie możesz pobrać plik JSON zawierający definicję zasad, którą można podać innemu użytkownikowi w celu skonfigurowania konta źródłowego. Aby pobrać ten plik JSON, wykonaj następujące kroki:
Przejdź do ustawień replikacji obiektów dla konta docelowego w witrynie Azure Portal.
Wybierz przycisk Więcej obok zasad, które chcesz pobrać, a następnie wybierz pozycję Reguły pobierania, jak pokazano na poniższej ilustracji.
Zapisz plik JSON na komputerze lokalnym, aby udostępnić go innemu użytkownikowi, aby skonfigurować zasady na koncie źródłowym.
Pobrany plik JSON zawiera identyfikator zasad utworzony przez usługę Azure Storage dla zasad na koncie docelowym. Aby skonfigurować replikację obiektów na koncie źródłowym, należy użyć tego samego identyfikatora zasad.
Pamiętaj, że przekazywanie pliku JSON w celu utworzenia zasad replikacji dla konta docelowego za pośrednictwem witryny Azure Portal nie powoduje automatycznego utworzenia tych samych zasad na koncie źródłowym. Inny użytkownik musi utworzyć zasady na koncie źródłowym, zanim usługa Azure Storage rozpocznie replikowanie obiektów.
Aby pobrać plik JSON zawierający definicję zasad replikacji dla konta docelowego z programu PowerShell, wywołaj polecenie Get-AzStorageObjectReplicationPolicy , aby zwrócić zasady. Następnie przekonwertuj zasady na format JSON i zapisz je jako plik lokalny, jak pokazano w poniższym przykładzie. Pamiętaj, aby zastąpić wartości w nawiasach kątowych i ścieżkę pliku własnymi wartościami:
Aby użyć pliku JSON do zdefiniowania zasad replikacji na koncie źródłowym za pomocą programu PowerShell, pobierz plik lokalny i przekonwertuj z formatu JSON na obiekt. Następnie wywołaj polecenie Set-AzStorageObjectReplicationPolicy , aby skonfigurować zasady na koncie źródłowym, jak pokazano w poniższym przykładzie.
Podczas uruchamiania przykładu upewnij się, że parametr został ustawiony -ResourceGroupName na grupę zasobów dla konta źródłowego, a -StorageAccountName parametr na nazwę konta źródłowego. Pamiętaj również, aby zastąpić wartości w nawiasach kątowych i ścieżkę pliku własnymi wartościami:
Aby zapisać definicję zasad replikacji dla konta docelowego do pliku JSON z interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage account or-policy show i dane wyjściowe do pliku.
Poniższy przykład zapisuje definicję zasad w pliku JSON o nazwie policy.json. Pamiętaj, aby zastąpić wartości w nawiasach kątowych i ścieżkę pliku własnymi wartościami:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Aby użyć pliku JSON do skonfigurowania zasad replikacji na koncie źródłowym za pomocą interfejsu wiersza polecenia platformy Azure, wywołaj polecenie az storage account or-policy create i odwołaj się do pliku policy.json . Pamiętaj, aby zastąpić wartości w nawiasach kątowych i ścieżkę pliku własnymi wartościami:
Stan replikacji obiektu blob można sprawdzić na koncie źródłowym przy użyciu witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia platformy Azure. Właściwości replikacji obiektów nie są wypełniane, dopóki replikacja nie zostanie ukończona lub nie powiedzie się.
Aby sprawdzić stan replikacji obiektu blob na koncie źródłowym w witrynie Azure Portal, wykonaj następujące kroki:
Przejdź do konta źródłowego w witrynie Azure Portal.
Znajdź kontener zawierający źródłowy obiekt blob.
Wybierz obiekt blob, aby wyświetlić jego właściwości. Jeśli obiekt blob został pomyślnie zreplikowany, zobaczysz w sekcji Replikacja obiektu, że stan jest ustawiony na Ukończono. Identyfikator zasad replikacji i identyfikator reguły zarządzającej replikacją obiektów dla tego kontenera są również wymienione.
Aby sprawdzić stan replikacji obiektu blob na koncie źródłowym za pomocą programu PowerShell, pobierz wartość właściwości ReplicationStatus replikacji obiektu, jak pokazano w poniższym przykładzie. Pamiętaj, aby zastąpić wartości w nawiasach kątowych własnymi wartościami:
Aby sprawdzić stan replikacji obiektu blob na koncie źródłowym za pomocą interfejsu wiersza polecenia platformy Azure, pobierz wartość właściwości stanu replikacji obiektu, jak pokazano w poniższym przykładzie:
Jeśli stan replikacji obiektu blob na koncie źródłowym wskazuje błąd, zbadaj następujące możliwe przyczyny:
Upewnij się, że zasady replikacji obiektów są skonfigurowane na koncie docelowym.
Sprawdź, czy kontener docelowy nadal istnieje.
Jeśli źródłowy obiekt blob został zaszyfrowany przy użyciu klucza dostarczonego przez klienta w ramach operacji zapisu, replikacja obiektu zakończy się niepowodzeniem. Aby uzyskać więcej informacji na temat kluczy dostarczonych przez klienta, zobacz Zapewnianie klucza szyfrowania w żądaniu do usługi Blob Storage.
Usuwanie zasad replikacji
Aby usunąć zasady replikacji i skojarzone z nią reguły, użyj witryny Azure Portal, programu PowerShell lub interfejsu wiersza polecenia.
Aby usunąć zasady replikacji w witrynie Azure Portal, wykonaj następujące kroki:
Przejdź do źródłowego konta magazynu w witrynie Azure Portal.
W obszarze Ustawienia wybierz pozycję Replikacja obiektów.
Wybierz przycisk Więcej obok nazwy zasad.
Wybierz pozycję Usuń reguły.
Aby usunąć zasady replikacji, usuń zasady zarówno z konta źródłowego, jak i z konta docelowego. Usunięcie zasad powoduje również usunięcie wszystkich skojarzonych z nim reguł.
# 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
Aby usunąć zasady replikacji, usuń zasady zarówno z konta źródłowego, jak i z konta docelowego. Usunięcie zasad powoduje również usunięcie wszystkich skojarzonych z nim reguł.