Megosztás a következőn keresztül:


ACR-átvitel az Az CLI-vel

Ez a cikk bemutatja, hogyan használható az ACR Transfer funkció az acrtransfer Az CLI-bővítménysel.

Előfeltételek teljesítése

A cikkben ismertetett műveletek megkísérlése előtt végezze el az itt ismertetett előfeltételeket. This means that:

  • Mindkét felhőben rendelkezik prémium termékváltozat-beállításjegyzékcel.
  • Mindkét felhőben rendelkezik egy meglévő tárfióktárolóval.
  • Rendelkezik egy meglévő keyvaulttal, amely egy érvényes SAS-jogkivonatot tartalmaz, és mindkét felhőben rendelkezik a szükséges engedélyekkel.
  • Az Az CLI legújabb verziója mindkét felhőben telepítve van.

Az Az CLI-bővítmény telepítése

Az AzureCloudban az alábbi paranccsal telepítheti a bővítményt:

az extension add --name acrtransfer

Az AzureCloudban és más felhőkben közvetlenül egy nyilvános tárfiók tárolójából telepítheti a blobot. A blob a tárfiókban, dist a tárolóban és acrtransfer-1.0.0-py2.py3-none-any.wh a acrtransferext blobban található. Előfordulhat, hogy módosítania kell a tárolási URI utótagot attól függően, hogy melyik felhőben van. Az alábbiak telepítése az AzureCloudban lesz:

az extension add --source https://acrtransferext.blob.core.windows.net/dist/acrtransfer-1.0.0-py2.py3-none-any.whl

ExportPipeline létrehozása az acrtransfer Az CLI kiterjesztéssel

Hozzon létre egy ExportPipeline-erőforrást az AzureCloud-tárolóregisztrációs adatbázishoz az acrtransfer Az CLI-bővítmény használatával.

Hozzon létre egy exportálási folyamatot beállítások és rendszer által hozzárendelt identitás nélkül:

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

Hozzon létre egy exportálási folyamatot az összes lehetséges beállítással és egy felhasználó által hozzárendelt identitással:

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

Exportálási lehetőségek

Az options exportálási folyamatok tulajdonsága támogatja az opcionális logikai értékeket. A következő értékek ajánlottak:

Paraméter Érték
Lehetőségek OverwriteBlobs – Meglévő célblobok felülírása
ContinueOnErrors – Ha egy összetevő exportálása meghiúsul, folytassa a forrásregisztrációs adatbázisban lévő fennmaradó összetevők exportálását.

Az ExportPipeline identity keyvault szabályzat hozzáférésének biztosítása

Ha felhasználó által hozzárendelt identitással hozta létre a folyamatot, egyszerűen adjon engedélyt a felhasználó által hozzárendelt identitáshozzáférési secret get szabályzatnak a kulcsvaulton.

Ha rendszer által hozzárendelt identitással hozta létre a folyamatot, először le kell kérnie a rendszer által a folyamaterőforráshoz rendelt principalId azonosítót.

Futtassa a következő parancsot a folyamaterőforrás lekéréséhez:

az acr export-pipeline show --resource-group $MyRG --registry $MyReg --name $MyPipeline

Ebből a kimenetből ki szeretné másolni a mező értékét principalId .

Ezután a következő parancs futtatásával adja meg ennek az egyszerűnek a megfelelő secret get hozzáférési házirend-engedélyeket a kulcsvaulton.

az keyvault set-policy --name $MyKeyvault --secret-permissions get --object-id $MyPrincipalID

ImportPipeline létrehozása az acrtransfer Az CLI-kiterjesztéssel

Hozzon létre egy ImportPipeline-erőforrást a céltároló-beállításjegyzékben az acrtransfer Az CLI-bővítmény használatával. Alapértelmezés szerint a folyamat automatikusan létrehozhat egy Importálási folyamatfuttatást, amikor a csatolt tárfiók-tároló új összetevőblobot kap.

Hozzon létre egy importálási folyamatot beállítások és rendszer által hozzárendelt identitás nélkül:

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

Hozzon létre egy importálási folyamatot az összes lehetséges beállítással, a forrásindító letiltva, és egy felhasználó által hozzárendelt identitással:

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

Importálási beállítások

Az options importálási folyamat tulajdonsága támogatja az opcionális logikai értékeket. A következő értékek ajánlottak:

Paraméter Érték
Lehetőségek Felülíráscímkék – Meglévő célcímkék felülírása
DeleteSourceBlobOnSuccess – A forrástároló blob törlése a célregisztrációs adatbázisba való sikeres importálás után
ContinueOnErrors – Ha egy összetevő importálása meghiúsul, folytassa a fennmaradó összetevők importálását a célregisztrációs adatbázisban.

Hozzáférés biztosítása az ImportPipeline identity keyvault szabályzathoz

Ha felhasználó által hozzárendelt identitással hozta létre a folyamatot, egyszerűen adjon engedélyt a felhasználó által hozzárendelt identitáshozzáférési secret get szabályzatnak a kulcsvaulton.

Ha rendszer által hozzárendelt identitással hozta létre a folyamatot, először le kell kérnie a rendszer által a folyamaterőforráshoz rendelt principalId azonosítót.

Futtassa a következő parancsot a folyamaterőforrás lekéréséhez:

az acr import-pipeline show --resource-group $MyRG --registry $MyReg --name $MyPipeline

Ebből a kimenetből ki szeretné másolni a mező értékét principalId .

Ezután a következő parancs futtatásával adja meg ennek az egyszerűnek a megfelelő secret get hozzáférési szabályzatot a kulcsvaulton.

az keyvault set-policy --name $MyKeyvault --secret-permissions get --object-id $MyPrincipalID

PipelineRun létrehozása exportáláshoz az acrtransfer Az CLI-kiterjesztéssel

Hozzon létre egy PipelineRun-erőforrást a tárolóregisztrációs adatbázishoz az acrtransfer Az CLI-bővítmény használatával. Ez az erőforrás futtatja a korábban létrehozott ExportPipeline erőforrást, és blobként exportálja a megadott összetevőket a tárolóregisztrációs adatbázisból a tárfiók tárolójába.

Exportfolyamat-futtatás létrehozása:

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

Ha egy PipelineRun-erőforrás ismételt üzembe helyezése azonos tulajdonságokkal, a --force-redeploy jelzőt kell használnia.

Az összetevők exportálása több percet is igénybe vehet. Ha az üzembe helyezés sikeresen befejeződött, ellenőrizze az összetevők exportálását úgy, hogy felsorolja az exportált blobot a forrás tárfiók tárolójában. Futtassa például az az storage bloblista parancsot:

az storage blob list --account-name $MyStorageAccount --container $MyContainer --output table

Blob átvitele tartományon keresztül

A legtöbb használati esetben most egy tartományközi megoldással vagy más módszerrel továbbítja a blobot a forrástartomány tárfiókjából (az exportálási folyamathoz társított tárfiókból) a céltartomány tárfiókjába (az importálási folyamathoz társított tárfiókba). Ezen a ponton feltételezzük, hogy a blob megérkezett az importálási folyamathoz társított céltartomány-tárfiókba.

Trigger ImportPipeline-erőforrás

Ha nem használta a --source-trigger-enabled False paramétert az importálási folyamat létrehozásakor, a folyamat 15 percen belül aktiválódik, miután a blob megérkezik a tárfiók tárolójába. Az összetevők importálása több percet is igénybe vehet. Ha az importálás sikeresen befejeződött, ellenőrizze az összetevők importálását a tárolóregisztrációs tároló tárolóregisztrációs adatbázisában importálandó adattár címkéinek listázásával. Futtassa például az az acr-adattár show-tags parancsát:

az acr repository show-tags --name $MyRegistry --repository $MyRepository

Megjegyzés:

A forrás-eseményindító csak azokat a blobokat importálja, amelyek az elmúlt 60 napon belül utoljára módosultak. Ha a forrásindítóval ennél régebbi blobokat szeretne importálni, frissítse a blobok utolsó módosítási idejét úgy, hogy blob metaadatokat ad hozzájuk, vagy manuálisan létrehozott folyamatfuttatásokkal importálja őket.

Ha a paramétert az --source-trigger-enabled False ImportPipeline létrehozásakor használta, manuálisan kell létrehoznia egy PipelineRun-t, ahogyan az a következő szakaszban látható.

PipelineRun létrehozása importáláshoz az acrtransfer Az CLI-bővítménnyel

Hozzon létre egy PipelineRun-erőforrást a tárolóregisztrációs adatbázishoz az acrtransfer Az CLI-bővítmény használatával. Ez az erőforrás a korábban létrehozott ImportPipeline erőforrást futtatja, és a megadott blobokat importálja a tárfiókból a tárolóregisztrációs adatbázisba.

Importálási folyamatfuttatás létrehozása:

az acr pipeline-run create \
--resource-group $MyRG \
--registry $MyReg \
--pipeline $MyPipeline \
--name $MyPipelineRun \
--pipeline-type import \
--storage-blob $MyBlob \
--force-redeploy

Ha egy PipelineRun-erőforrás ismételt üzembe helyezése azonos tulajdonságokkal, a --force-redeploy jelzőt kell használnia.

Az összetevők importálása több percet is igénybe vehet. Ha az importálás sikeresen befejeződött, ellenőrizze az összetevők importálását a tárolóregisztrációs adatbázis adattárainak listázásával. Futtassa például az az acr-adattár show-tags parancsát:

az acr repository show-tags --name $MyRegistry --repository $MyRepository

Az ACR-átvitel erőforrásainak törlése

ExportPipeline törlése:

az acr export-pipeline delete --resource-group $MyRG --registry $MyReg --name $MyPipeline

ImportPipeline törlése:

az acr import-pipeline delete --resource-group $MyRG --registry $MyReg --name $MyPipeline

PipelineRun-erőforrás törlése. Vegye figyelembe, hogy ez nem fordítja vissza a PipelineRun által végrehajtott műveletet. Ez inkább a PipelineRun naplójának törléséhez hasonlít.

az acr pipeline-run delete --resource-group $MyRG --registry $MyReg --name $MyPipelineRun

Az ACR-átvitel hibaelhárítása

Hibaelhárítási útmutatásért tekintse meg az ACR-átvitel hibaelhárítását .

Következő lépések

  • Megtudhatja, hogyan tilthatja le az exportálási folyamatok létrehozását egy hálózat által korlátozott tárolóregisztrációs adatbázisból.