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.
Az Azure Developer CLI (azd) telepítheti az alkalmazását az Azure App Service-be. Ez az üzembe helyezési mód linuxos webalkalmazásként futtatja az alkalmazást tárolókhoz. Amikor egy szolgáltatás a host: appservice használja Docker-alapú buildhez, a azd deploy létrehozza a rendszerképet, feltölti azt az Azure Container Registrybe (ACR), és egy meglévő App Service-helyet az új rendszerképre állítja.
Mivel a azd deploy csak a tárolóképre mutató hivatkozást frissíti, üzembe helyezés előtt a webhelyet az infrastruktúrában konténeres üzemre alkalmassá kell tenni. Az üzembe helyezési mód elvárásának ismerete segít a hely helyes beállításában és a sikertelen üzembe helyezések elkerülésében.
Ez a cikk bemutatja, hogyan működik az az üzembe helyezési mód, mit kell már konfigurálni az infrastruktúrában, valamint miben különbözik a containerapp gazdagéptől. Feltételezi, hogy ismeri a azd projekteket, azure.yamlvalamint a azd kiépítési és üzembehelyezési parancsokat.
Hogyan helyez üzembe az azd egy tárolót az App Service-be
Ha egy szolgáltatás tárolókonfigurációval rendelkezik host: appservice , azd deploy a célwebhelyet webalkalmazásként kezeli tárolókhoz , és a következőket végzi el:
- Tárolórendszerképet hoz létre a Dockerfile-ból.
- Feltölti a rendszerképet az infrastruktúra által meghatározott ACR-példányba.
- Frissíti a webhely
linuxFxVersionbeállítását erre:DOCKER|<image>, hogy a webhely az Ön lemezképét futtassa.
azd deploy
csak egy meglévő webhely képhivatkozását frissíti. Nem hozza létre vagy konfigurálja a mögöttes infrastruktúrát, ezért a helynek már készen kell állnia a tárolóra az üzembe helyezés előtt.
Szolgáltatáskonfiguráció az azure.yaml-ben
Az App Service tárolótelepítése Docker-alapú buildet használ host: appservice . Állítson be language: dockervagy adjon hozzá egy olyan konfigurációt docker , amely a Dockerfile-ra mutat:
services:
web:
project: ./src/web
host: appservice
language: docker
docker:
path: ./Dockerfile
Ezzel a konfigurációval a azd a ./src/web/Dockerfile alapján hozza létre a rendszerképet, leküldi azt a regisztrációs adatbázisba, és frissíti az App Service-webhelyet, hogy az a rendszerképet futtassa. A appservice állomás nem érvényesíti a szolgáltatásszintű env: beállításokat, ezért az alkalmazásbeállításokat az infrastruktúrán keresztül adja meg.
Tárolóra kész App Service-webhely infrastruktúrakövetelményei
azd deploynem épít ki vagy módosít infrastruktúrát a appservice gazdagép számára, ezért a meglévő Bicep vagy Terraformnak linuxos tárolóalkalmazásként kell konfigurálnia a helyet az üzembe helyezés előtt. Az infrastruktúrának teljesítenie kell a következő szerződést:
| Követelmény | Részletek |
|---|---|
| Linux App Service-csomag | A csomag Linuxot futtat (kind: linuxreserved: true használatával). Az App Service csak Linuxon támogatja a tárolókat, nem Windows. |
| Konténeres használatra kész webhely | A webhely linuxFxVersionDOCKER\| értéket használ. A helyőrző kép megfelel, mert a(z) azd deploy lecseréli arra a képre, amelyet elkészít és feltölt. |
| Egyetlen tartály | A webhely egy konténert futtat. A appservice gazdagép nem támogatja a többtárolós vagy a Docker Compose-konfigurációkat. |
| Felügyelt identitás ACR-hozzáférése | A webhely egy felhasználó által hozzárendelt felügyelt identitás használatával hitelesíti magát az ACR felé, például acrUseManagedIdentityCreds: true és acrUserManagedIdentityID használatával. A appservice gazdagép nem támogatja a rendszergazdai hitelesítő adatokat. |
azd deploy a provision és az up parancsokhoz képest
Az App Service-ben a tároló üzembe helyezése két szempontra terjed ki, az infrastruktúrára és az alkalmazáskódra, amelyek különböző azd parancsokra vannak megfeleltetve:
| Parancs | Mire szolgál? | Mikor érdemes használni? |
|---|---|---|
azd provision |
Létrehozza és konfigurálja az Azure-erőforrásokat az Ön Bicep- vagy Terraform-definíciói alapján, beleértve a konténerek futtatására kész App Service-helyet és az ACR-t. | Akkor használja, ha megváltozik az infrastruktúra, vagy a webhely még nem létezik. |
azd deploy |
Létrehozza a képet, leküldi az ACR-be, és frissíti a webhely képreferenciáját. Nem érinti az infrastruktúrát. | Ezzel az alkalmazásmódosításokat egy már kiépített helyre szállíthatja. |
azd up |
Futtatja a(z) azd provision parancsot, majd a(z) azd deploy parancsot egyetlen paranccsal. |
Használja első üzembe helyezéshez, vagy ha a kiépítést és az üzembe helyezést együtt szeretné elvégezni. |
Mivel azd deploy csak a rendszerkép-referenciát frissíti, a appservice tároló üzembe helyezése mindig az előző azd provision vagy azd up létrehozott infrastruktúrától függ.
Üzembe helyezési készültség ellenőrzése
A webhely frissítése előtt a(z) azd deploy ellenőrzi, hogy a célwebhely alkalmas-e a konténeres használatra. Ha a webhely nem Linux-tárolóalkalmazás, például egy Windows-csomagot használ, hiányzik egy DOCKER|linuxFxVersion érték, vagy nincs felügyelt identitás hozzáférése az ACR-hez, akkor azd deploy leállítja és visszaad egy hibát, amely azonosítja a hiányzó konfigurációt. Javítsa ki az infrastruktúrát, és végezze el az újraüzembe helyezést, mielőtt újra telepít.
App Service-tárolók a Container Appshez képest
Mind a appservice hoszt, mind a containerapp hoszt konténerképeket telepít, de az infrastruktúrát és a konfigurációt eltérő módon kezeli:
| Viselkedés |
appservice gazdagép |
containerapp gazdagép |
|---|---|---|
| Infrastruktúra-konfiguráció |
azd deploy csak a rendszerképhivatkozást frissíti, és feltételezi, hogy a webhely már elő van készítve a konténerek használatára. |
Az Ön számára kiépíti és konfigurálja a konténer-futtatókörnyezet nagyobb részét. |
| Környezeti változók | Nem alkalmazza a szolgáltatásszintű env: beállításokat. Ehelyett konfigurálja az alkalmazásbeállításokat az infrastruktúrán keresztül. |
Szolgáltatásszintű env: beállításokat alkalmaz a tárolóra. |
| Polyglot-támogatás | Lehetővé teszi a bármilyen nyelven írt alkalmazások language: docker használatával történő konténerbe helyezését, ami hasznos azon futtatókörnyezetek esetében, amelyek nem rendelkeznek beépített azd-támogatással. |
Az alkalmazásokat bármilyen nyelven language: docker segítségével konténerbe helyezi, ez különösen hasznos a beépített azd-támogatással nem rendelkező futtatókörnyezetek esetében. |