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.
Azure Developer CLI (azd) kan containerinstallatiekopieën bouwen, publiceren en implementeren in verschillende Azure hostingservices. Een containerwerkstroom combineert een hostingdoel met een buildlocatie en een publicatiebenadering. De beste combinatie is afhankelijk van uw toepassing, de hulpmiddelen die uw team beschikbaar heeft en hoe u afbeeldingen tussen omgevingen promoveert.
Gebruik dit artikel om deze keuzes aan uw behoeften te koppelen. De volgende beslissingen worden vergeleken:
- Welke Azure-service fungeert als host voor uw container.
- Of
azdde installatiekopie lokaal bouwt, deze op afstand bouwt in Azure Container Registry (ACR) of een bestaande installatiekopie gebruikt. - Of
azdde installatiekopie samen of in afzonderlijke stappen publiceert en implementeert.
In het artikel worden deze hostingservices voor algemeen gebruik vergeleken:
Begin met het vergelijken van de hostingdoelen en opties voor het bouwen van images. Nadat u deze keuzes hebt begrepen, gebruikt u deze om een kandidaatwerkstroom te identificeren in de sectie Werkstromen voor containerimplementatie vergelijken .
Hostingdoelen voor containers vergelijken
De host eigenschap in het bestand azure.yaml identificeert de Azure-service waarop azd uw container wordt geïmplementeerd. Kies de host los van de buildlocatie van de installatiekopie.
| Hostwaarde | Azure-hostingdoel | Werkstroom voor containers | Overwegingen |
|---|---|---|---|
containerapp |
taken voor Azure Container Apps en Container Apps | Bouw vanuit een project en een Dockerfile, of implementeer een vooraf gebouwde image. | Ondersteunt omgevingsvariabelen op serviceniveau en Container Apps-specifieke implementatiestrategieën. Gebruik dezelfde hostwaarde voor Container Apps-taken. |
appservice |
Linux-web-app voor containers op Azure App Service | Bouw op basis van een project en Dockerfile, of rol een vooraf gebouwde image uit. | Uw infrastructuur moet een site inrichten die gereed is voor Linux-containers en beheerde identiteittoegang tot ACR configureren.
azd deploy werkt alleen de imageverwijzing bij. |
aks |
Azure Kubernetes Service | Bouw een image en implementeer Kubernetes-manifesten, Helm-charts of Kustomize-configuraties. | Biedt de meeste controle, maar vereist dat u het cluster en de Kubernetes-configuratie beheert. Voor het gebruik van Helm of Kustomize met azd moeten alphafeatureflags worden ingeschakeld. |
De ai.endpoint en azure.ai.agent hosts ondersteunen ook Docker-configuratie voor gespecialiseerde Microsoft Foundry-scenario's. Zie Implementeren naar Microsoft Online-eindpunten van Foundry en de Microsoft Foundry-agentextensie voor deze workloads.
Buildopties voor images vergelijken
De servicedefinitie bepaalt of azd een image bouwt of start met een bestaande image.
| Build-optie | Vereiste configuratie | Waar de build wordt uitgevoerd | Lokale containerengine | Meest geschikt voor |
|---|---|---|---|---|
| Lokale build |
project en, optioneel, docker |
Uw ontwikkelomgeving of CI-runner | Required | Snelle ontwikkeliteraties en buildomgevingen die al Docker of Podman ondersteunen. |
| ACR remote build |
project en docker.remoteBuild: true |
Azure Container Registratiedienst | Niet nodig tenzij azd terugvalt na een mislukte externe build |
Consistente cloud-builds en -omgevingen zonder een lokale containerengine. De gedocumenteerde werkstroom voor externe builds is gericht op Azure Container Apps. |
Bestaande image beheerd door azd |
image |
Geen bronbuild | Mogelijk vereist voor bewerkingen in de levenscyclus van images | Images die al lokaal bestaan of in een registry staan en die azd kan ophalen, taggen en pushen. |
| Passthrough voor externe installatiekopieën |
image en docker.imagePassthrough: true |
Geen build | Niet vereist | Volledig gespecificeerde externe images die de hostingresource ongewijzigd moet gebruiken. |
Houd rekening met deze conceptuele verschillen wanneer u de configuratieartikelen per optie leest:
- Een vooraf gebouwde image gebruikt de
image-eigenschap in plaats vanproject, enazdkan deze nog steeds ophalen, taggen en uploaden. - Een externe ACR-build valt terug op een lokale Docker- of Podman-build wanneer de externe build mislukt en er een ondersteunde container-engine beschikbaar is.
-
Image passthrough vereist een volledig gekwalificeerde verwijzing naar een externe image die een registry bevat, kan niet worden gecombineerd met
remoteBuild, en ondersteunt de optiesazd publish --from-packageenazd publish --toniet, omdatazdde image niet beheert.
Zie ondersteuning voor externe builds met Azure Container Registry, containerregisters van derden gebruiken, App Service-containerimplementaties met Azure Developer CLI en het docker-schema voor de volledige configuratie van elke optie.
Werkstromen voor containerimplementatie vergelijken
Nadat u de hostingdoelen in Containerhostingdoelen vergelijken en de buildopties in Opties voor het bouwen van images vergelijken hebt vergeleken, gebruikt u de volgende tabel om de meest geschikte workflows voor uw behoeften te bepalen.
| Als dat nodig is | Beginnen met | Waarom |
|---|---|---|
| Een containertoepassing implementeren op een serverloos platform | Azure Container Apps met een lokale build | Met deze werkstroom wordt een op Dockerfile gebaseerd project gebouwd en geïmplementeerd in één ontwikkelwerkstroom. |
| Lokaal bouwen zonder Docker of Podman te installeren | Azure Container Apps met een externe ACR-build | ACR bouwt de installatiekopieën van uw project en Dockerfile in Azure. |
| Een image uitrollen dat door een ander buildsysteem wordt geproduceerd | Azure Container Apps of App Service met een vooraf gebouwde installatiekopie | De eigenschap image verwijst naar de bestaande image in plaats van naar de broncode om te bouwen. |
| Een externe image hergebruiken zonder die op te halen, te taggen of te uploaden | Azure Container Apps met afbeeldingspassthrough |
azd geeft de volledig gekwalificeerde afbeeldingsreferentie rechtstreeks door aan de hostingresource. |
| Een traditionele webtoepassing hosten als een Linux-container | web-app voor containers op Azure App Service | App Service biedt een geïntegreerd webhostingplatform terwijl uw infrastructuur de siteconfiguratie die gereed is voor containers beheert. |
| Kubernetes-manifesten en clusterconfiguratie beheren | Azure Kubernetes Service (AKS) |
azd kan de images bouwen en publiceren en vervolgens Kubernetes-manifesten, Helm-charts of Kustomize-configuraties implementeren. |
| Bouw één keer en promoot dezelfde image door verschillende omgevingen heen |
azd publish, gevolgd door azd deploy --from-package |
Publiceren en uitrollen staan los van elkaar, dus elke omgeving ontvangt dezelfde image. |
Elke rij combineert de hostingkeuzes uit Containerhostingdoelen vergelijken en de buildkeuzes uit Buildopties voor images vergelijken tot een uitgangspunt. Configureer uw keuze in azure.yamlen laat uw Bicep- of Terraform-bestanden de bijbehorende hosting- en registerbronnen inrichten.
Met een minimale servicedefinitie worden de host, de buildbron en de Dockerfile ingesteld:
services:
api:
project: ./src/api
language: docker
host: containerapp
docker:
path: ./Dockerfile
Als u deze definitie wilt aanpassen aan een andere host, wijzigt u de host waarde en volgt u het configuratiecontract per host:
- Implementeren in Azure Container Apps met behulp van de Azure Developer CLI
- App Service-containerimplementaties met Azure Developer CLI
- Ondersteuning voor Helm en Kustomize
Publicatie- en implementatieopdrachten vergelijken
Nadat u een host- en buildoptie hebt gekozen, selecteert u of u het publiceren en implementeren van installatiekopieën wilt combineren of scheiden.
| Command | Afbeeldingsacties | actie voor Azure-resource | Wanneer gebruiken |
|---|---|---|---|
azd up |
Bouwen en uploaden | Inrichten en uitrollen | U wilt de volledige omgeving maken of bijwerken en de toepassing in één werkstroom implementeren. |
azd deploy |
Bouwen en pushen | Deploy | De infrastructuur bestaat al en u wilt toepassingswijzigingen implementeren. |
azd publish |
Bouwen en uploaden | Geen | U wilt een registerartefact maken zonder het te implementeren.
azd publish biedt ondersteuning voor Container Apps- en AKS-services. |
azd publish --from-package <image> |
Push een bestaande lokale image | Geen | Een ander proces heeft de image gebouwd en u wilt dat azd publiceren. |
azd deploy --from-package <image> |
Geen | Deploy | U wilt een specifieke image implementeren zonder die opnieuw te bouwen. |
Publiceer bijvoorbeeld een image met versienummer en implementeer diezelfde image in een andere omgeving:
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
Deze workflow voorkomt verschillen die kunnen optreden wanneer u voor elke omgeving een image opnieuw opbouwt. Zie Azure Developer CLI-publicatiewerkstromen voor een volledige promotiewerkstroom.