Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Developer CLI (azd) kan skapa, publicera och distribuera containeravbildningar i flera Azure värdtjänster. Ett containerarbetsflöde kombinerar ett värdmål med en byggplats och en publiceringsmetod. Den bästa kombinationen beror på ditt program, vilka verktyg ditt team har tillgängligt och hur du höjer upp bilder mellan miljöer.
Använd den här artikeln om du vill matcha dessa alternativ efter dina behov. Den jämför följande beslut:
- Vilken Azure tjänst är värd för din container.
- Oavsett om
azdskapar avbildningen lokalt, skapar den externt i Azure Container Registry (ACR) eller använder en befintlig avbildning. - Om
azdpublicerar och driftsätter avbildningen tillsammans eller som separata steg.
I artikeln jämförs dessa allmänna värdtjänster:
Börja med att jämföra mål för värdmiljöer och alternativ för att skapa avbildningar. När du har förstått dessa val kan du använda dem för att identifiera ett kandidatarbetsflöde i avsnittet Jämför arbetsflöden för containerdistribution .
Jämföra värdmål för containrar
Egenskapen host i azure.yaml identifierar den Azure tjänst som azd distribuerar containern till. Välj värden oberoende av var avbildningen skapas.
| Värdvärde | Azure värdmål | Containerarbetsflöde | Considerations |
|---|---|---|---|
containerapp |
Azure Container Apps och Container Apps-jobb | Bygg från ett projekt och en Dockerfile, eller distribuera en färdigbyggd avbildning. | Stöder miljövariabler på tjänstnivå och Container Apps-specifika distributionsstrategier. Använd samma värdvärde för Container Apps-jobb. |
appservice |
Linux Web App for Containers på Azure App Service | Bygg från ett projekt och en Dockerfile, eller driftsätt en färdigbyggd avbildning. | Infrastrukturen måste etablera en containerklar Linux-plats och konfigurera hanterad identitetsåtkomst till ACR.
azd deploy uppdaterar endast avbildningsreferensen. |
aks |
Azure Kubernetes Service | Skapa en avbildning och distribuera Kubernetes-manifest, Helm-diagram eller Kustomize-konfigurationer. | Ger mest kontroll, men kräver att du hanterar klustret och Kubernetes-konfigurationen. Användning av Helm eller Kustomize med azd kräver aktivering av alfafunktionsflaggor. |
Värdarna ai.endpoint och azure.ai.agent stöder även Docker-konfiguration för specialiserade Microsoft Foundry-scenarier. För dessa arbetsbelastningar, se Distribuera till Microsoft Foundry-onlineslutpunkter och Microsoft Foundry-agenttillägget.
Jämför alternativ för bildbygge
Tjänstdefinitionen avgör om azd bygger en avbild eller utgår från en befintlig avbild.
| Byggalternativ | Nödvändig konfiguration | Där bygget körs | Lokal containermotor | Passar bäst för |
|---|---|---|---|---|
| Lokal version |
project och, om du vill, docker |
Din utvecklingsmiljö eller CI-runner | Obligatoriskt | Iterationer för snabb utveckling och byggmiljöer som redan tillhandahåller Docker eller Podman. |
| ACR-fjärrversion |
project och docker.remoteBuild: true |
Azure Container Registry (containerregistertjänst från Azure) | Krävs inte såvida inte azd återgår efter att ett fjärrbygge misslyckats |
Enhetliga molnbyggen och miljöer utan lokal containermotor. Det dokumenterade arbetsflödet för fjärrbyggen är avsett för Azure Container Apps. |
Befintlig avbildning som hanteras av azd |
image |
Inget källbygge | Kan krävas för åtgärder för bildlivscykeln | Avbildningar som redan finns lokalt eller i ett register och som azd kan hämta, tagga och push-överföra. |
| Fjärrbildsgenomströmning |
image och docker.imagePassthrough: true |
Ingen build | Krävs inte | Fullständigt kvalificerade fjärrbilder som värdresursen ska använda as-is. |
Tänk på dessa begreppsmässiga skillnader när du läser konfigurationsartiklarna per alternativ:
- En förbyggd avbildning använder egenskapen
imagei stället förproject, ochazdkan fortfarande hämta, tagga och överföra den. - En ACR-fjärrversion återgår till en lokal Docker- eller Podman-version när fjärrbygget misslyckas och en containermotor som stöds är tillgänglig.
-
Bildvidarebefordran kräver en fullständigt kvalificerad referens till en fjärravbildning, inklusive ett register, kan inte kombineras med
remoteBuildoch stöder inte alternativenazd publish --from-packageellerazd publish --toeftersomazdinte hanterar avbildningen.
Fullständig konfiguration av varje alternativ finns i Stöd för fjärrbyggen med Azure Container Registry, Använda containerregister från tredje part, App Service-containerdistributioner med Azure Developer CLI och docker schemat.
Jämföra arbetsflöden för containerdistribution
När du har jämfört värdmålen i Jämför värdmål för containrar och byggalternativen i Jämför bildversionsalternativ använder du följande tabell för att identifiera de mest sannolika arbetsflödena för dina behov.
| Om du behöver | Börja med | Varför |
|---|---|---|
| Distribuera ett containerbaserat program till en serverlös plattform | Azure Container Apps med en lokal version | Det här arbetsflödet skapar och distribuerar ett Dockerfile-baserat projekt i ett utvecklingsarbetsflöde. |
| Skapa utan att installera Docker eller Podman lokalt | Azure Container Apps med en ACR-fjärrbuild | ACR skapar avbildningen från projektet och Dockerfile i Azure. |
| Distribuera en avbildning som ett annat byggsystem skapar | Azure Container Apps eller App Service med en färdigbyggd containeravbildning | Egenskapen image identifierar den befintliga avbildningen i stället för källkoden som ska skapas. |
| Återanvänd en fjärrbild utan att hämta, tagga eller skicka upp den | Azure Container Apps med direktöverföring av avbilder |
azd skickar den fullständigt kvalificerade image-referensen direkt till värdresursen. |
| Kör en traditionell webbapplikation som en Linux-container | Webbapp för containrar på Azure App Service | App Service tillhandahåller en integrerad webbhotellplattform samtidigt som din infrastruktur styr konfigurationen för den containerfärdiga webbplatsen. |
| Kontrollera Kubernetes-manifest och klusterkonfiguration | Azure Kubernetes Service (AKS) |
azd kan skapa och publicera avbildningen och sedan distribuera Kubernetes-manifest, Helm-diagram eller Kustomize-konfigurationer. |
| Skapa en gång och höj upp samma avbildning via miljöer |
azd publish, följt av azd deploy --from-package |
Publicering och distribution är separata, så varje miljö tar emot samma avbildning. |
Varje rad kombinerar värdalternativen från Jämför värdmål för containrar och byggalternativen från Jämför bildversionsalternativ till en startpunkt. Konfigurera ditt val i azure.yamloch låt dina Bicep- eller Terraform-filer etablera motsvarande värd- och registerresurser.
En minimal tjänstdefinition anger host, byggkällan och Dockerfile:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Om du vill anpassa den här definitionen till en annan värd ändrar du host värdet och följer konfigurationskontraktet per värd:
- Distribuera till Azure Container Apps med hjälp av Azure Developer CLI
- App Service-containerdistributioner med Azure Developer CLI
- Stöd för Helm och Kustomize
Jämföra kommandon för publicering och distribution
När du har valt ett värd- och byggalternativ väljer du om du vill kombinera eller separera bildpublicering och distribution.
| Befallning | Bildåtgärder | Azure resursåtgärd | Använd när |
|---|---|---|---|
azd up |
Bygg och pusha | Tillhandahåll och distribuera | Du vill skapa eller uppdatera hela miljön och distribuera programmet i ett arbetsflöde. |
azd deploy |
Bygg och pusha | Deploy | Infrastrukturen finns redan och du vill distribuera programändringar. |
azd publish |
Skapa och push-överföra | Ingen | Du vill skapa en registerartefakt utan att distribuera den.
azd publish stöder Container Apps och AKS-tjänster. |
azd publish --from-package <image> |
Pusha en befintlig lokal avbild | Ingen | En annan process skapade avbildningen och du vill azd publicera den. |
azd deploy --from-package <image> |
Ingen | Deploy | Du vill distribuera en specifik avbildning utan att återskapa den. |
Du kan till exempel publicera en version av avbildningen och distribuera samma avbildning till en annan miljö:
azd publish api --to myregistry.azurecr.io/my-api:v1.0.0
azd env select production
azd deploy api --from-package myregistry.azurecr.io/my-api:v1.0.0
Det här arbetsflödet förhindrar skillnader som kan uppstå när du återskapar en avbildning för varje miljö. Ett fullständigt arbetsflöde för befordran finns i Azure CLI-publiceringsarbetsflöden för utvecklare.