Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u de functie ACR Transfer gebruikt met de az CLI-extensie acrtransfer.
Vereisten voltooien
Voltooi de vereisten die hier worden beschreven voordat u de acties in dit artikel uitvoert. Dit betekent het volgende:
- U hebt een bestaand Premium SKU-register in beide clouds.
- Je hebt een bestaande storage account-container in beide clouds.
- U hebt een bestaande Key Vault met een geheim dat een geldig SAS-token bevat met de benodigde machtigingen in beide clouds.
- U hebt een recente versie van Az CLI geïnstalleerd in beide clouds.
De Az CLI-extensie installeren
In AzureCloud kunt u de extensie installeren met de volgende opdracht:
az extension add --name acrtransfer
Maak een ExportPipeline met de acrtransfer-CLI-extensie van Az
Maak een ExportPipeline-resource voor uw AzureCloud-containerregister met behulp van de az CLI-extensie acrtransfer.
Maak een exportpijplijn zonder opties en een door het systeem toegewezen identiteit:
az acr export-pipeline create \
--resource-group $MyRG \
--registry $MyReg \
--name $MyPipeline \
--secret-uri https://$MyKV.vault.azure.net/secrets/$MySecret \
--storage-container-uri https://$MyStorage.blob.core.windows.net/$MyContainer
Maak een exportpijplijn met alle mogelijke opties en een door de gebruiker toegewezen identiteit:
az acr export-pipeline create \
--resource-group $MyRG \
--registry $MyReg \
--name $MyPipeline \
--secret-uri https://$MyKV.vault.azure.net/secrets/$MySecret \
--storage-container-uri https://$MyStorage.blob.core.windows.net/$MyContainer \
--options OverwriteBlobs ContinueOnErrors \
--assign-identity /subscriptions/$MySubID/resourceGroups/$MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$MyIdentity
Opties voor exporteren
De options eigenschap voor de exportpijplijnen ondersteunt optionele Booleaanse waarden. De volgende waarden worden aanbevolen:
| Kenmerk | Waarde |
|---|---|
| Opties | Blobs overschrijven - Bestaande doelblobs overschrijven ContinueOnErrors: doorgaan met het exporteren van resterende artefacten in het bronregister als het exporteren van één artefact mislukt. |
De ExportPipeline-identiteit toegang geven tot het Keyvault-beleid
Als u uw pijplijn met een door de gebruiker toegewezen identiteit hebt gemaakt, geeft u deze identiteit eenvoudigweg toegangsbeleidstoestemmingen op de sleutelkluis.
Als u uw pijplijn hebt gemaakt met een door het systeem toegewezen identiteit, moet u eerst de principalId ophalen die het systeem heeft toegewezen aan uw pijplijnresource.
Voer de volgende opdracht uit om uw pijplijnresource op te halen:
az acr export-pipeline show --resource-group $MyRG --registry $MyReg --name $MyPipeline
In deze uitvoer wilt u de waarde in het principalId veld kopiëren.
Vervolgens voert u de volgende opdracht uit om deze principal de juiste secret get toegangsbeleidsmachtigingen voor uw sleutelkluis te geven.
az keyvault set-policy --name $MyKeyvault --secret-permissions get --object-id $MyPrincipalID
ImportPipeline maken met de acrtransfer extensie voor de Az CLI
Maak een ImportPipeline-resource in uw doelcontainerregister met behulp van de az CLI-extensie acrtransfer. De pijplijn is standaard ingeschakeld om automatisch een Import PipelineRun te maken wanneer de gekoppelde opslagaccountcontainer een nieuwe artefact-blob ontvangt.
Maak een importpijplijn zonder opties en een door het systeem toegewezen identiteit:
az acr import-pipeline create \
--resource-group $MyRG \
--registry $MyReg \
--name $MyPipeline \
--secret-uri https://$MyKV.vault.azure.net/secrets/$MySecret \
--storage-container-uri https://$MyStorage.blob.core.windows.net/$MyContainer
Maak een importpijplijn met alle mogelijke opties, brontrigger uitgeschakeld en een door de gebruiker toegewezen identiteit:
az acr import-pipeline create \
--resource-group $MyRG \
--registry $MyReg \
--name $MyPipeline \
--secret-uri https://$MyKV.vault.azure.net/secrets/$MySecret \
--storage-container-uri https://$MyStorage.blob.core.windows.net/$MyContainer \
--options DeleteSourceBlobOnSuccess OverwriteTags ContinueOnErrors \
--assign-identity /subscriptions/$MySubID/resourceGroups/$MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$MyIdentity \
--source-trigger-enabled False
Opties voor importeren
De options eigenschap voor de importpijplijn ondersteunt optionele Booleaanse waarden. De volgende waarden worden aanbevolen:
| Kenmerk | Waarde |
|---|---|
| Opties | Overschrijftags - Bestaande doeltags overschrijven DeleteSourceBlobOnSuccess - Verwijder de bronopslag-blob na het importeren in het doelregister ContinueOnErrors: doorgaan met het importeren van resterende artefacten in het doelregister als het importeren van één artefact mislukt. |
Toegang tot het Key Vault-beleid voor de ImportPipeline-identiteit geven
Als u uw pijplijn met een door de gebruiker toegewezen identiteit hebt gemaakt, geeft u deze identiteit eenvoudigweg toegangsbeleidstoestemmingen op de sleutelkluis.
Als u uw pijplijn hebt gemaakt met een door het systeem toegewezen identiteit, moet u eerst de principalId ophalen die het systeem heeft toegewezen aan uw pijplijnresource.
Voer de volgende opdracht uit om uw pijplijnresource op te halen:
az acr import-pipeline show --resource-group $MyRG --registry $MyReg --name $MyPipeline
In deze uitvoer wilt u de waarde in het principalId veld kopiëren.
Vervolgens voert u de volgende opdracht uit om deze principal het juiste secret get toegangsbeleid voor uw sleutelkluis te geven.
az keyvault set-policy --name $MyKeyvault --secret-permissions get --object-id $MyPrincipalID
PipelineRun maken voor export met de Az CLI extensie acrtransfer
Maak een PipelineRun-resource voor uw containerregister met behulp van de az CLI-extensie acrtransfer. Deze resource voert de ExportPipeline-resource uit die u eerder hebt gemaakt en exporteert opgegeven artefacten uit uw containerregister als blob naar uw opslagaccountcontainer.
Een exportpijplijnuitvoering maken:
az acr pipeline-run create \
--resource-group $MyRG \
--registry $MyReg \
--pipeline $MyPipeline \
--name $MyPipelineRun \
--pipeline-type export \
--storage-blob $MyBlob \
--artifacts hello-world:latest hello-world@sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042 \
--force-redeploy
Als u een PipelineRun-resource opnieuw implementeert met identieke eigenschappen, moet u de vlag --force-redeploy gebruiken.
Het kan enkele minuten duren voordat artefacten zijn geëxporteerd. Wanneer de implementatie is voltooid, controleert u het exporteren van artefacten door de geëxporteerde blob in de container van het bronopslagaccount te vermelden. Voer bijvoorbeeld de opdracht az storage blob list uit:
az storage blob list --account-name $MyStorageAccount --container $MyContainer --output table
Blob overdragen tussen domeinen
In de meeste gevallen gebruikt u nu een oplossing voor meerdere domeinen of een andere methode om uw blob over te dragen van het opslagaccount in uw brondomein (het opslagaccount dat is gekoppeld aan uw exportpijplijn) naar het opslagaccount in uw doeldomein (het opslagaccount dat is gekoppeld aan uw importpijplijn). Op dit moment gaan we ervan uit dat de blob is aangekomen in het doeldomeinopslagaccount dat is gekoppeld aan uw importpijplijn.
ImportPipeline-resource activeren
Als u de parameter niet hebt gebruikt bij het maken van uw --source-trigger-enabled False importpijplijn, wordt de pijplijn binnen 15 minuten nadat de blob binnenkomt in de container van het opslagaccount geactiveerd. Het kan enkele minuten duren voordat artefacten zijn geïmporteerd. Wanneer het importeren is voltooid, controleert u het importeren van artefacten door de tags op te vermelden in de opslagplaats die u in het doelcontainerregister importeert. Bijvoorbeeld, voer az acr repository show-tags uit:
az acr repository show-tags --name $MyRegistry --repository $MyRepository
Notitie
Brontrigger importeert alleen blobs met een tijd voor laatst gewijzigd binnen de afgelopen 60 dagen. Als u van plan bent om brontriggers te gebruiken om blobs ouder dan dat te importeren, vernieuwt u de laatste wijzigingstijd van de blobs door blobmetagegevens toe te voegen of importeert u deze met handmatig uitgevoerde pijplijnruns.
Als u de parameter hebt gebruikt bij het --source-trigger-enabled False maken van uw ImportPipeline, moet u handmatig een PipelineRun maken, zoals wordt weergegeven in de volgende sectie.
PipelineRun maken voor importeren met de az CLI-extensie acrtransfer
Maak een PipelineRun-resource voor uw containerregister met behulp van de az CLI-extensie acrtransfer. Deze resource voert de ImportPipeline-resource uit die u eerder hebt gemaakt en importeert opgegeven blobs uit uw opslagaccount in het containerregister.
Een importpijplijnuitvoering maken:
az acr pipeline-run create \
--resource-group $MyRG \
--registry $MyReg \
--pipeline $MyPipeline \
--name $MyPipelineRun \
--pipeline-type import \
--storage-blob $MyBlob \
--force-redeploy
Als u een PipelineRun-resource opnieuw implementeert met identieke eigenschappen, moet u de vlag --force-redeploy gebruiken.
Het kan enkele minuten duren voordat artefacten zijn geïmporteerd. Wanneer het importeren is voltooid, controleert u het importeren van artefacten door de opslagplaatsen in het doelcontainerregister weer te laten zien. Bijvoorbeeld, voer az acr repository show-tags uit:
az acr repository show-tags --name $MyRegistry --repository $MyRepository
ACR-overdrachtsbronnen verwijderen
Een ExportPipeline verwijderen:
az acr export-pipeline delete --resource-group $MyRG --registry $MyReg --name $MyPipeline
Een ImportPipeline verwijderen:
az acr import-pipeline delete --resource-group $MyRG --registry $MyReg --name $MyPipeline
Een PipelineRun-resource verwijderen. Houd er rekening mee dat hiermee de actie die door de PipelineRun wordt uitgevoerd, niet ongedaan wordt gemaakt. Dit lijkt meer op het verwijderen van het logboek van de PipelineRun.
az acr pipeline-run delete --resource-group $MyRG --registry $MyReg --name $MyPipelineRun
Problemen met ACR Transfer oplossen
Bekijk ACR Transfer Troubleshooting voor richtlijnen voor probleemoplossing.
Volgende stappen
- Meer informatie over het blokkeren van het maken van exportpijplijnen uit een containerregister met netwerkbeperking.