Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule pokazano, jak przenieść kolekcje obrazów lub innych artefaktów rejestru z jednego rejestru kontenerów platformy Azure do innego rejestru. Źródłowe i docelowe rejestry mogą znajdować się w tych samych lub różnych subskrypcjach, dzierżawach usługi Active Directory, chmurach platformy Azure lub fizycznie odłączonych chmurach.
Aby przenieść artefakty, należy utworzyć potok transferu , który replikuje artefakty między dwoma rejestrami przy użyciu magazynu obiektów blob:
- Artefakty z rejestru źródłowego są eksportowane do obiektu typu blob na źródłowym koncie magazynowym.
- Obiekt blob jest kopiowany ze źródłowego konta magazynowego do docelowego konta magazynowego.
- Obiekt blob w docelowym koncie magazynu jest importowany do rejestru docelowego jako artefakt. Potok importu można skonfigurować tak, aby był wyzwalany za każdym razem, gdy blob artefaktu zostanie zaktualizowany w docelowej przestrzeni magazynowej.
W tym artykule utworzysz zasoby wymagań wstępnych, aby utworzyć i uruchomić potok transferu. CLI Azure służy do aprowizowania skojarzonych zasobów, takich jak sekrety magazynu. Zalecany jest interfejs wiersza polecenia platformy Azure w wersji 2.2.0 lub nowszej. Jeśli musisz zainstalować lub uaktualnić interfejs wiersza polecenia, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.
Ta funkcja jest dostępna w warstwie usługi rejestru kontenerów Premium . Aby uzyskać informacje na temat warstw i limitów usługi rejestru, zobacz Warstwy usługi Azure Container Registry.
Important
Ta funkcja jest obecnie dostępna w wersji zapoznawczej. Wersje zapoznawcze są udostępniane pod warunkiem udzielenia zgody na dodatkowe warunki użytkowania. Niektóre cechy funkcji mogą ulec zmianie, zanim stanie się ona ogólnie dostępna.
Rozważ przypadek użycia
Przenoszenie jest idealne do kopiowania danych między dwoma rejestrami kontenerów platformy Azure, w fizycznie odłączonych chmurach, za pomocą kont magazynowych w każdej chmurze. Jeśli zamiast tego chcesz skopiować obrazy z rejestrów kontenerów w połączonych chmurach, w tym docker Hub i innych dostawców usług w chmurze, zaleca się importowanie obrazów .
Prerequisites
Rejestry kontenerów — potrzebujesz istniejącego rejestru źródłowego z artefaktami do transferu i rejestru docelowego. Transfer ACR jest przeznaczony do przenoszenia pomiędzy chmurami fizycznie niepołączonymi. Na potrzeby testowania rejestry źródłowe i docelowe mogą znajdować się w tej samej lub innej subskrypcji platformy Azure, dzierżawie usługi Active Directory lub chmurze.
Jeśli musisz utworzyć rejestr, zobacz Szybki start: tworzenie prywatnego rejestru kontenerów przy użyciu interfejsu wiersza polecenia platformy Azure.
Konta przechowywania — utwórz źródłowe i docelowe konta przechowywania w wybranej subskrypcji i lokalizacji. Do celów testowych można używać tej samej subskrypcji lub subskrypcji co źródłowe i docelowe rejestry. W przypadku scenariuszy obejmujących wiele chmur zazwyczaj tworzysz oddzielne konto magazynowe w każdej chmurze.
W razie potrzeby utwórz konta magazynu przy użyciu interfejsu wiersza polecenia platformy Azure lub innych narzędzi.
Utwórz kontener obiektów blob na potrzeby transferu artefaktów na każdym koncie. Na przykład utwórz kontener o nazwie transfer.
Magazyny kluczy — są potrzebne do przechowywania tajnych danych tokenu SAS używanych do uzyskiwania dostępu do źródłowych i docelowych kont przechowywania. Utwórz źródłowe i docelowe magazyny kluczy w tej samej subskrypcji lub subskrypcjach platformy Azure co źródłowe i docelowe rejestry. W celach demonstracyjnych szablony i polecenia używane w tym artykule zakładają również, że źródłowe i docelowe magazyny kluczy znajdują się w tych samych grupach zasobów, co odpowiednio źródłowe i docelowe rejestry. Użycie typowych grup zasobów nie jest wymagane, ale upraszcza szablony i polecenia używane w tym artykule.
W razie potrzeby utwórz magazyny kluczy przy użyciu interfejsu wiersza polecenia platformy Azure lub innych narzędzi.
Zmienne środowiskowe — na przykład polecenia w tym artykule ustawiają następujące zmienne środowiskowe dla środowisk źródłowych i docelowych. Wszystkie przykłady są sformatowane dla powłoki Bash.
SOURCE_RG="<source-resource-group>" TARGET_RG="<target-resource-group>" SOURCE_KV="<source-key-vault>" TARGET_KV="<target-key-vault>" SOURCE_SA="<source-storage-account>" TARGET_SA="<target-storage-account>"
Omówienie scenariusza
U tworzysz następujące trzy zasoby pipeline'u do transferu obrazów między rejestrami. Wszystkie są tworzone przy użyciu operacji PUT. Te zasoby działają na źródłowych i docelowych rejestrach i kontach magazynu.
Uwierzytelnianie magazynu używa tokenów SAS zarządzanych jako wpisy tajne w magazynach kluczy. Potoki używają tożsamości zarządzanych do odczytywania tajemnic w skarbcach.
- ExportPipeline — długotrwały zasób zawierający wysokopoziomowe informacje o rejestrze źródłowym i koncie magazynu. Te informacje obejmują identyfikator URI kontenera danych blob źródłowego oraz magazyn kluczy zarządzający tokenem SAS źródła.
- ImportPipeline — długotrwały zasób zawierający ogólne informacje o docelowym rejestrze i koncie magazynu. Informacje te obejmują identyfikator URI docelowego kontenera obiektów blob oraz usługę zarządzania kluczami, która zarządza docelowym tokenem SAS. Wyzwalacz importu jest domyślnie włączony, więc potok jest uruchamiany automatycznie, gdy blob artefaktu pojawia się w kontenerze docelowym.
-
PipelineRun — zasób używany do wywoływania zasobu ExportPipeline lub ImportPipeline.
- Ręcznie uruchom polecenie ExportPipeline, tworząc zasób PipelineRun i określając artefakty do wyeksportowania.
- Jeśli wyzwalacz importu jest włączony, funkcja ImportPipeline jest uruchamiana automatycznie. Można go również uruchomić ręcznie przy użyciu procesu PipelineRun.
- Obecnie można przesyłać maksymalnie 50 artefaktów z każdym elementem PipelineRun.
Fakty, które trzeba znać
- Potoki eksportowe (ExportPipeline) i importowe (ImportPipeline) zazwyczaj działają w ramach różnych dzierżaw usługi Active Directory, które są skojarzone z chmurami źródłowymi i docelowymi. Ten scenariusz wymaga oddzielnych tożsamości zarządzanych i magazynów kluczy na potrzeby eksportowania i importowania zasobów. W celach testowych te zasoby można umieścić w tej samej chmurze, udostępniając tożsamości.
- Domyślnie szablony ExportPipeline i ImportPipeline włączają przypisaną przez system tożsamość zarządzaną do uzyskania dostępu do tajemnic skarbca kluczy. Szablony ExportPipeline i ImportPipeline obsługują również tożsamość przypisaną przez użytkownika.
Tworzenie i przechowywanie kluczy SAS
Transfer używa tokenów sygnatury dostępu współdzielonego (SAS) do uzyskiwania dostępu do kont magazynu w środowiskach źródłowych i docelowych. Generowanie i przechowywanie tokenów zgodnie z opisem w poniższych sekcjach.
Important
Chociaż usługa ACR Transfer będzie działać z ręcznie wygenerowanym tokenem SAS przechowywanym jako tajny w Keyvault, w przypadku obciążeń produkcyjnych zdecydowanie zalecamy użycie tajnych definicji SAS dla magazynu zarządzanego przez Keyvault.
Generowanie tokenu SAS na potrzeby eksportu
Uruchom polecenie az storage container generate-sas , aby wygenerować token SAS dla kontenera na źródłowym koncie magazynu używanym do eksportowania artefaktów.
Zalecane uprawnienia tokenu: Odczyt, Zapis, Lista, Dodaj.
W poniższym przykładzie dane wyjściowe polecenia są przypisywane do zmiennej środowiskowej EXPORT_SAS z prefiksem "?".
--expiry Zaktualizuj wartość środowiska:
EXPORT_SAS=?$(az storage container generate-sas \
--name transfer \
--account-name $SOURCE_SA \
--expiry 2021-01-01 \
--permissions alrw \
--https-only \
--output tsv)
Przechowywanie tokenu SAS na potrzeby eksportu
Zapisz token SAS w źródłowym magazynie kluczy Azure przy użyciu az keyvault secret set:
az keyvault secret set \
--name acrexportsas \
--value $EXPORT_SAS \
--vault-name $SOURCE_KV
Generowanie tokenu SAS na potrzeby importowania
Uruchom polecenie az storage container generate-sas , aby wygenerować token SAS dla kontenera na docelowym koncie magazynu używanym do importowania artefaktów.
Zalecane uprawnienia tokenu: Odczyt, Usuwanie, Lista
W poniższym przykładzie dane wyjściowe polecenia są przypisywane do zmiennej środowiskowej IMPORT_SAS z prefiksem "?".
--expiry Zaktualizuj wartość środowiska:
IMPORT_SAS=?$(az storage container generate-sas \
--name transfer \
--account-name $TARGET_SA \
--expiry 2021-01-01 \
--permissions dlr \
--https-only \
--output tsv)
Przechowywanie tokenu SAS do importowania
Zapisz token SAS w docelowym magazynie kluczy platformy Azure używając az keyvault secret set:
az keyvault secret set \
--name acrimportsas \
--value $IMPORT_SAS \
--vault-name $TARGET_KV
Dalsze kroki
Postępuj zgodnie z jednym z poniższych samouczków, aby utworzyć zasoby usługi ACR Transfer. W przypadku większości niezautomatyzowanych przypadków użycia zalecamy użycie rozszerzenia Az CLI.