Używanie narzędzia AzCopy do kopiowania obiektów blob między kontami usługi Azure Storage z ograniczeniami sieciowymi

W tym artykule przedstawiono sposób kopiowania obiektów blob między kontami magazynu przy użyciu narzędzia wiersza polecenia narzędzia AzCopy. Wyjaśniono w nim również, jak zaimplementować operację kopiowania, gdy ograniczenia sieci są skonfigurowane dla kont magazynu.

Tło

Kopiowanie plików obiektów blob między dwoma kontami magazynu jest typowym wymaganiem dla wielu użytkowników platformy Azure. Usługa Azure Storage obsługuje bezpośrednie kopiowanie obiektów blob z jednego konta magazynu do innego, które można zaimplementować za pomocą narzędzia wiersza polecenia narzędzia AzCopy. Użytkownicy nie muszą pobierać plików na dyski lokalne ani do buforów, a następnie przekazywać ich ponownie.

Kopiowanie obiektów blob między dwoma kontami magazynu przy użyciu narzędzia AzCopy nie zależy od przepustowości sieci komputera lokalnego. Ta metoda może wykorzystać wydajność kont magazynu i usługi Azure Virtual Network w celu uzyskania lepszej przepływności niż pobieranie i przekazywanie plików. Jeśli oba konta magazynu znajdują się w tym samym regionie, nie są naliczane żadne opłaty za przepustowość.

Polecenia narzędzia AzCopy do kopiowania obiektów blob między kontami magazynu

  • Jeśli podasz poświadczenia autoryzacji przy użyciu Tożsamość Microsoft Entra, użyj następującego polecenia:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

    W tym scenariuszu należy upewnić się, że tożsamość Microsoft Entra ma odpowiednie przypisania ról dla kont źródłowych i docelowych.

  • Jeśli używasz tokenu sygnatury dostępu współdzielonego (SAS), użyj następującego polecenia:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    W tym scenariuszu należy dołączyć token SAS do źródłowego i docelowego adresu URL używanego w poleceniach narzędzia AzCopy.

Aby uzyskać więcej informacji, zobacz Kopiowanie obiektów blob między kontami usługi Azure Storage za pomocą narzędzia AzCopy w wersji 10.

Kopiowanie obiektów blob między kontami magazynu z ograniczeniem dostępu

Jeśli musisz ograniczyć dostęp zarówno do źródłowych, jak i docelowych kont magazynu za pośrednictwem zapory magazynu, może być potrzebnych więcej konfiguracji do kopiowania obiektów blob między kontami magazynu przy użyciu narzędzia AzCopy. Dzieje się tak, ponieważ żądanie kopiowania między dwoma kontami magazynu używa prywatnych adresów IP, a adresy IP są dynamiczne.

Oto dwa obsługiwane scenariusze:

Scenariusz 1. Klient używa publicznego punktu końcowego do uzyskiwania dostępu do kont magazynu

W tym scenariuszu należy dodać publiczny adres IP klienta lub sieć wirtualną (VNet) do listy dozwolonych zapory na źródłowych i docelowych kontach magazynu.

Na poniższej ilustracji przedstawiono proces kopiowania obiektów blob między kontami magazynu w tym scenariuszu:

Diagram przedstawiający proces radzenia sobie z obiektami blob między kontami magazynu w scenariuszu 1.

W tym scenariuszu lista dozwolonych zapory nie jest potrzebna.

Na poniższej ilustracji przedstawiono proces kopiowania obiektów blob między kontami magazynu w tym scenariuszu:

Diagram przedstawiający proces radzenia sobie z obiektami blob między kontami magazynu w scenariuszu 2.

Oto pełny proces tego mechanizmu dla dwóch scenariuszy:

  1. Klient wysyła żądanie PutBlockfromURL do magazynu docelowego.
  2. Magazyn docelowy odbiera żądania i próbuje uzyskać bloki z danego źródłowego adresu URL. Jednak ponieważ magazyn docelowy nie został dozwolony przez zaporę źródłową, otrzymuje błąd "403 Zabronione".
  3. Gdy magazyn docelowy otrzyma błąd "403 Zabronione", wysyła kolejne żądanie GetBlob w imieniu klienta. Jeśli klient ma dostęp do magazynu źródłowego, miejsce docelowe będzie mogło pobrać bloki ze źródła i zwrócić klientowi kod odpowiedzi powodzenie.
  4. Klient wysyła putblocklist do magazynu docelowego, aby zatwierdzić bloki i zakończyć proces po otrzymaniu kodu odpowiedzi na powodzenie z żądania.

Kopiowanie obiektów blob między kontami magazynu w architekturze piasty i szprych przy użyciu prywatnych punktów końcowych

Błąd 403 występuje w przypadku używania narzędzia AzCopy do kopiowania obiektów blob między kontami magazynu połączonymi z prywatnymi punktami końcowymi w różnych sieciach wirtualnych szprychy z maszyny wirtualnej w sieci wirtualnej koncentratora. Błąd "403 To żądanie nie jest autoryzowane do wykonania tej operacji — CannotVerfiyCopySource" w dziennikach narzędzia AzCopy lub w dziennikach usługi Azure Storage. Na poniższym diagramie architektury przedstawiono scenariusz, w którym występuje błąd.

Diagram przedstawiający błąd 403 podczas kopiowania obiektów blob między kontami magazynu w architekturze piasty & szprych przy użyciu prywatnych punktów końcowych.

Obejście 1. Tworzenie prywatnego punktu końcowego dla docelowego konta magazynu w źródłowej sieci wirtualnej

Możliwe obejście polega na utworzeniu prywatnego punktu końcowego dla docelowego konta magazynu w źródłowej sieci wirtualnej. Ta konfiguracja umożliwia maszynie wirtualnej pomyślne skopiowanie obiektów blob między kontami magazynu przy użyciu narzędzia AzCopy. Na poniższym diagramie architektury przedstawiono proces kopiowania obiektów blob między kontami magazynu w obejście 1.

Diagram przedstawiający proces kopiowania obiektów blob między kontami magazynu w obejście 1.

Obejście 2. Umieść maszynę wirtualną w tej samej sieci wirtualnej co źródłowe konto magazynu i komunikacji równorzędnej sieci wirtualnej z docelową siecią wirtualną

Inną opcją jest umieszczenie maszyny wirtualnej w tej samej sieci wirtualnej co źródłowe konto magazynu. Następnie należy ustanowić komunikację równorzędną między tą siecią wirtualną a docelową siecią wirtualną. Na poniższym diagramie architektury przedstawiono proces kopiowania obiektów blob między kontami magazynu w obszarze Obejście 2.

Diagram przedstawiający proces kopiowania obiektów blob między kontami magazynu w obszarze Obejście 2.

Obejście 3. Kopiowanie danych przy użyciu tymczasowego konta przejściowego

Jeśli nie możesz zaimplementować wcześniej wymienionych obejść lub nie możesz zmienić istniejącej konfiguracji sieci konta magazynu lub sieci wirtualnej, możesz użyć tymczasowego konta przejściowego do skopiowania danych:

  1. Utwórz tymczasowe konto magazynu w tym samym regionie co źródłowe konto magazynu i docelowe konto magazynu.
  2. Użyj narzędzia AzCopy, aby skopiować dane ze źródłowego konta magazynu na tymczasowe konto magazynu.
  3. Skopiuj dane z tymczasowego konta magazynu na docelowe konto magazynu. Przed wykonaniem transferu danych upewnij się, że tymczasowe konto magazynu ma prywatny punkt końcowy w tej samej sieci wirtualnej co docelowe konto magazynu.

Obejście 4. Użyj maszyny wirtualnej i pobierz dane na maszynę wirtualną, a następnie przekaż dane do docelowego konta magazynu

Tego obejścia należy użyć tylko wtedy, gdy inne metody nie są możliwe. Użyj maszyny wirtualnej, aby pobrać dane ze źródłowego konta magazynu, a następnie przekazać je do docelowego konta magazynu. Można to zrobić za pomocą narzędzia AzCopy. Upewnij się, że rozmiar i pojemność dysku maszyny wirtualnej są odpowiednie dla procesu transferu danych.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.