Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A azd publish parancs lehetővé teszi, hogy tárolórendszerképeket hozzon létre és küldjön le egy tárolóregisztrációs adatbázisba, például az Azure Container Registrybe vagy a Docker Hubba anélkül, hogy azonnal üzembe helyeznék őket egy Azure-erőforrásban.
A buildelési és leküldéses lépéseknek az üzembe helyezési lépéstől való elválasztásával fejlettebb üzembehelyezési munkafolyamatokat valósíthat meg, például a "build egyszer, üzembe helyezés mindenhol" mintát. Ez a megközelítés az Azure Container Appst vagy az Azure Kubernetes Service-t (AKS) célzó tárolóalapú alkalmazások esetében hasznos.
Miért érdemes használni azd publish?
Egy szabványos azd munkafolyamatban a azd deploy parancs három műveletet hajt végre sorrendben:
- Build: Az alkalmazás kódját tárolórendszerképbe építi.
- Feltöltés: Feltölti a képet egy tárolóra.
- Üzembe helyezés: Frissíti az Azure hosting szolgáltatást (például a Container Appst) az új rendszerkép futtatásához.
Bár kényelmes a belső ciklusos fejlesztéshez, ez a megközelítés feltételezi, hogy minden üzembe helyezéshez új buildre van szükség. Gyártási környezetben gyakran az alábbiakat szeretné megtenni:
- Egyszer buildelhet, üzembe helyezhet mindenhol: egyetlen összetevőt (rendszerképet) hozhat létre, tesztelheti egy fejlesztői környezetben, majd ugyanezt az összetevőt előléptetheti éles környezetben újraépítés nélkül.
- Összetevők központosítása: Egyetlen megosztott Azure Container Registry (ACR) használatával tárolhatja a rendszerképeket az összes környezetében.
- A biztonság javítása: Figyeljen arra, hogy csak ellenőrzött és tesztelt rendszerképek legyenek üzembe helyezve az éles környezetben.
azd publish csak az 1. és 2. lépés (Build és Push) kezelésével teszi lehetővé ezeket a forgatókönyveket. Ezután az azd deploy bizonyos kapcsolóival kezelheti a 3. lépést (telepítés), az előre közzétett rendszerkép használatával.
Legfontosabb funkciók
- Független közzététel: Lemezképek közzététele a beállításjegyzékben üzembe helyezés aktiválása nélkül.
-
Egyéni célok: A
--tojelölő használatával pontosan megadhatja a rendszerkép továbbítási helyét ([registry/]repository[:tag]), mely az alapértelmezett elnevezési konvenciókat felülírja. - Külső regiszter-támogatás: Leküldés külső regiszterekbe (például Docker Hub) az Azure Container Registry mellett.
-
Horogtámogatás:
prepublishéspostpublishhorgokat támogat az egyéni automatizálás érdekében. - Szolgáltatáscélzás: Jelenleg az Azure Container Appsben és az AKS-ben üzemeltetett szolgáltatásokat támogatja.
Usage
Az adott szolgáltatáshoz tartozó kép elkészítése és közzététele, amely a azure.yaml-ban van meghatározva:
azd publish <service-name>
Az összes szolgáltatás létrehozása és közzététele:
azd publish --all
Paraméterek
| Flag | Description |
|---|---|
--all |
A fájlban definiált azure.yamlösszes szolgáltatást közzéteszi. |
--from-package <image> |
Egy meglévő helyi rendszerképet vagy -csomagot használ a forrásból való építés helyett. |
--to <image-ref> |
Meghatározza a célkép hivatkozását (például <your-registry>.azurecr.io/my-app:v1). Felülbírálja az alapértelmezett elnevezést a következőben azure.yaml: . |
Megjegyzés:
A services.<name>.docker.imagePassthrough: true használatára konfigurált szolgáltatások esetén a azd publish nem készít és nem küld le lemezképet. Ehelyett a konfigurált távoli rendszerképet használja újra, és elutasítja az adott szolgáltatásnál a --from-package és --to jelzőket.
Példák
Adott szolgáltatást közzétenni egyéni címkén:
azd publish api-service --to <your-registry>.azurecr.io/api-service:v1.0.0
Helyi rendszerkép közzététele távoli beállításjegyzékben:
Ha már helyileg létrehozott egy képet (például: local-api:dev), címkézheti és leküldheti a következővel azd:
azd publish api-service --from-package local-api:dev --to <your-registry>.azurecr.io/api-service:v1.0.0
Forgatókönyv: Egyszeri buildelés, üzembe helyezés mindenhol
Egy gyakori gyártási munkafolyamat magában foglalja egy rendszerkép egyszeri elkészítését és előléptetését különböző környezeteken, mint például Dev –> Test –> Prod. Ezt a műveletet a azd publish és azd deploy kombinációjával érheti el.
Ez a forgatókönyv nem vonatkozik a konfigurált services.<name>.docker.imagePassthrough: trueszolgáltatásokra, mert azd publish nem készít vagy küld le rendszerképet ezekhez a szolgáltatásokhoz.
A kép közzététele:
Hozza létre a kódot, és küldje el a megosztott beállításjegyzékbe.
azd publish api-service --to <your-registry>.azurecr.io/my-app:v1.0.0Üzembe helyezés a fejlesztésben:
Helyezze üzembe az adott rendszerkép-verziót a fejlesztői környezetben. A
--from-packagejelölő azt jelziazd deploy, hogy hagyja ki a buildelési/leküldéses lépéseket, és csak frissítse a szolgáltatás konfigurációját.azd env select dev azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0Átvitel éles környezetbe:
A Devben végzett tesztelés után helyezze üzembe ugyanazt a rendszerkép-hivatkozást az éles környezetben.
azd env select prod azd deploy api-service --from-package <your-registry>.azurecr.io/my-app:v1.0.0
Összehasonlítás más parancsokkal
| Command | Végrehajtott műveletek | Legjobb |
|---|---|---|
azd publish |
Build –> Leküldés | CI-/CD-folyamatok, artifaktumok létrehozása, "Egyszeri buildelés" munkafolyamatok. |
azd publish --from-package |
Csak küldés | előre elkészített artefaktumokat telepít a környezetekbe. |
azd deploy |
Build -> Feltöltés -> Üzembe helyezés | Standard fejlesztési iteráció (belső ciklus). |
azd deploy --from-package |
Csak üzembe helyezés | előre összeállított/előre közzétett összetevők üzembe helyezése környezetekben. |
azd up |
Előkészítés –> Fordítás –> Feltöltés –> Üzembe helyezés | Első lépések, új környezetek inicializálása az alapoktól. |
Megjegyzés:
Az alapértelmezett viselkedés azd up változatlan marad. Továbbra is a teljes körű folyamatot vezényli. Szükség esetén azonban testre szabhatja a munkafolyamatokat a azure.yaml használatára azd publish.
A(z) services.<name>.docker.imagePassthrough: true elemmel konfigurált szolgáltatásokra a(z) azd publish és a(z) azd publish --from-package nem vonatkozik.
azd a konfigurált távoli lemezképet újrafelhasználja ahelyett, hogy felépítene vagy feltöltene egyet.
Konfiguráció a következőben: azure.yaml
A szolgáltatások alapértelmezett Docker-beállításainak konfigurálása a következőben azure.yaml: . A azd publish parancs tiszteletben tartja ezeket a beállításokat, kivéve, ha olyan jelzők, mint a --to, felülbírálják.
name: my-app
services:
api:
project: ./src/api
host: containerapp
docker:
registry: 'docker.io/myusername' # Default registry
image: 'my-api' # Default image name
tag: 'latest' # Default tag
Ezzel a konfigurációval a azd publish api lefuttatása docker.io/myusername/my-api:latest-be fogja feltölteni az adatokat.
Távoli lemezkép újrafelhasználása imagePassthrough
Ha a szolgáltatása már rendelkezik egy közzétett rendszerképpel, amelyet a(z) azd nem építhet fel, nem tölthet fel, és más módon sem kezelhet, állítsa be a(z) services.<name>.docker.imagePassthrough: true értéket. Ha engedélyezi ezt a beállítást:
- Állítsa a(z)
services.<name>.imageértékét a végső, teljesen kvalifikált távoli képhivatkozásra, explicit regisztert is megadva. - Nem kombinálható
docker.imagePassthrougha .docker.remoteBuild -
azd publishnem hoz létre és nem küld fel konténerképet a szolgáltatáshoz, és nem fogadja el a--toés--from-packagejelzőket ennél a szolgáltatásnál.
name: my-app
services:
api:
host: containerapp
docker:
imagePassthrough: true
image: docker.io/myusername/my-api:v1.0.0