Udostępnij za pośrednictwem


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

W tym artykule przedstawiono sposób kopiowania obiektów blob między kontami magazynu przy użyciu narzędzia wiersza polecenia AzCopy. Wyjaśniono również, jak zaimplementować operację kopiowania, gdy ograniczenia sieciowe 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 AzCopy. Użytkownicy nie muszą pobierać plików na dyski lokalne lub, a następnie przekazywać je ponownie.

Kopiowanie obiektów blob między dwoma kontami magazynu przy użyciu narzędzia AzCopy nie polega na przepustowości sieci komputera lokalnego. Ta metoda może wykorzystać wydajność kont magazynu i usługi Azure Virtual Network, aby uzyskać lepszą przepływność niż pobieranie i przekazywanie plików. Opłaty za przepustowość nie są naliczane, jeśli oba konta magazynu znajdują się w tym samym regionie.

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

  • Jeśli podasz poświadczenia autoryzacji przy użyciu identyfikatora Entra firmy Microsoft, 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ść firmy Microsoft Entra ma odpowiednie przypisania ról zarówno dla kont źródłowych, jak 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 do kont magazynu źródłowego i docelowego za pośrednictwem zapory magazynu, może być konieczne użycie większej liczby 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 lub sieć wirtualną klienta do listy dozwolonych zapory na kontach magazynu źródłowego i docelowego.

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 wymagana.

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 pobrać bloki z danego źródłowego adresu URL. Jednak ponieważ magazyn docelowy nie jest dozwolony przez źródłową zaporę, 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ć kod odpowiedzi powodzenia do klienta.
  4. Klient wysyła putBlockList do magazynu docelowego, aby zatwierdzić bloki i zakończyć proces po otrzymaniu kodu odpowiedzi powodzenia 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 podczas 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 szprych z maszyny wirtualnej w sieci wirtualnej piasty. W dziennikach narzędzia AzCopy lub w dziennikach usługi Azure Storage można znaleźć błąd "403 To żądanie nie jest autoryzowane do wykonania tej operacji — Nie można uruchomić narzędzia CanVerfiyCopySource". 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 i 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. Poniższy diagram architektury przedstawia 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 za pomocą 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 ustanów komunikację równorzędną między tą siecią wirtualną a docelową siecią wirtualną. Poniższy diagram architektury przedstawia proces kopiowania obiektów blob między kontami magazynu w obejście 2.

Diagram przedstawiający proces kopiowania obiektów blob między kontami magazynu w 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 sieciowej konta magazynu lub sieci wirtualnej, możesz użyć tymczasowego konta przejściowego, aby skopiować dane:

  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 do tymczasowego konta magazynu.
  3. Skopiuj dane z konta magazynu tymczasowego do docelowego konta magazynu. Przed wykonaniem transferu danych upewnij się, że konto magazynu tymczasowego ma prywatny punkt końcowy w tej samej sieci wirtualnej co docelowe konto magazynu.

Obejście 4: Użyj maszyny wirtualnej i pobierz dane do maszyny wirtualnej, 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 na temat platformy Azure.