azd mallar är skisslagringsplatser som innehåller proof-of-concept-programkod, redigerar-/IDE-konfigurationer och infrastrukturkod som skrivits i Bicep eller Terraform. Dessa mallar är avsedda att ändras och anpassas för dina specifika programkrav och används sedan för att hämta ditt program i Azure med hjälp av Azure Developer CLI (azd). Schemat azure.yaml definierar och beskriver de appar och typer av Azure-resurser som ingår i dessa mallar.
Prov
Följande är ett allmänt exempel på ett azure.yaml som krävs för mallen azd .
name: yourApp
metadata:
template: yourApp@0.0.1-beta
services:
web:
project: ./src/web # path to your web project
dist: build # relative path to service deployment artifacts
language: js # one of the supported languages
host: appservice # one of the supported Azure services
Jämför med azure.yaml från vår ToDo NodeJs Mongo-mall:
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
Egenskapsbeskrivningar
| Elementnamn |
Krävs |
Beskrivning |
name |
Y |
(sträng) Namnet på programmet. |
resourceGroup |
N |
(sträng) Namnet på Azure-resursgruppen. När det anges åsidosätter det resursgruppsnamn som används för infrastrukturetablering. |
metadata |
N |
(objekt) Mer information finns i metadataegenskaper. |
infra |
N |
(objekt) Tillhandahåller extra konfiguration för Azure-infrastrukturetablering. Mer information finns i infrastrukturegenskaper. |
services |
Y |
(objekt) Definition av tjänster som ingår i programmet. Mer information finns i egenskaper för tjänster. |
pipeline |
N |
(objekt) Definition av pipeline för kontinuerlig integrering. Mer information finns i pipelineegenskaper. |
hooks |
N |
Kommandonivåkrokar. Hooks bör matcha azd kommandonamn som är prefix med pre eller post beroende på när skriptet ska köras. När du anger sökvägar bör de vara relativa till projektsökvägen. Mer information finns i Anpassa cli-arbetsflöden för Azure Developer med hjälp av kommando- och händelsekrokar. |
requiredVersions |
N |
Ett antal versioner av azd som stöds för det här projektet. Om versionen av azd ligger utanför det här intervallet kan projektet inte läsas in. Valfritt (tillåter alla versioner om de saknas). Exempel: >= 0.6.0-beta.3 |
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
template |
N |
(sträng) identifierare för mallen som programmet skapades från. |
todo-nodejs-mongo@0.0.1-beta |
infra egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
provider |
N |
(sträng) Infrastrukturprovidern för programmets Azure-resurser. (Standard: bicep). |
Se Terraform-exemplet.
bicep, terraform |
path |
N |
(sträng) Den relativa mappsökvägen till den plats som innehåller Azure-etableringsmallar för den angivna providern. (Standard: infra). |
|
module |
N |
(sträng) Namnet på standardmodulen med Azure-etableringsmallarna. (Standard: main). |
|
name: yourApp-terraform
metadata:
template: yourApp-terraform@0.0.1-beta
services:
web:
project: ./src/web
dist: build
language: js
host: appservice
api:
project: ./src/api
language: js
host: appservice
infra:
provider: terraform
services egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
resourceName |
N |
(sträng) Namnet på den Azure-resurs som implementerar tjänsten. Om det inte anges azd söker du efter en resurs efter azd-env-name och azd-service-name taggar. Om det inte hittas letar den efter ett resursnamn som har konstruerats från det aktuella miljönamnet, sammanfogat med tjänstnamnet (<environment-name><resource-name>). |
prodapi |
project |
Y |
(sträng) sökväg till tjänstens källkodskatalog. |
|
host |
Y |
(sträng) Typ av Azure-resurs som används för tjänstimplementering. Om det utelämnas antas App Service. |
appservice, containerapp, function, staticwebapp, aks (endast för projekt som kan distribueras via kubectl apply -f), springapp (när aktiveras – läs mer om alfafunktioner) |
language |
Y |
(sträng) Tjänstimplementeringsspråk. |
dotnet, csharp, fsharp, py, python, , js, , tsjava |
module |
Y |
(sträng) sökväg för infrastrukturmodulen som används för att distribuera tjänsten i förhållande till rot-infra-mappen. Om det utelämnas förutsätter CLI att modulnamnet är samma som tjänstnamnet. |
|
dist |
Y |
(sträng) Relativ sökväg till tjänstdistributionsartefakter. CLI använder filer under den här sökvägen för att skapa distributionsartefakten (.zip fil). Om det utelämnas inkluderas alla filer under tjänstprojektkatalogen. |
build |
docker |
N |
Gäller endast när host är containerapp. Det går inte att innehålla extra egenskaper. |
Se det anpassade Docker-exemplet.
path
(sträng): Sökväg till Dockerfile. Standard: ./Dockerfile; context(sträng): Docker build-kontexten. När detta anges åsidosätter standardkontexten. Standard: .; platform(sträng): Plattformsmålet. Standard: amd64; remoteBuild(booleskt): Aktiverar fjärranslutna ACR-versioner. Standard: false |
k8s |
N |
Konfigurationsalternativen för Azure Kubernetes Service (AKS). |
Se AKS-exemplet.
deploymentPath
(sträng): Valfritt. Den relativa sökvägen från tjänstsökvägen till K8s-distributionsmanifesten. När den anges åsidosätter den standardplatsen för distributionssökvägen för K8s-distributionsmanifest. Standard: manifests; namespace(sträng): Valfritt. K8s-namnområdet för de distribuerade resurserna. När det anges skapas ett nytt K8s-namnområde om det inte redan finns. Standard: Project name; deployment(objekt): Se distributionsegenskaper; service(objekt): Se tjänstegenskaper; ingress(objekt): Se ingressegenskaper. |
hooks |
N |
Servicenivåkrokar. Hooks ska matcha service händelsenamn som är prefix med pre eller post beroende på när skriptet ska köras. När du anger sökvägar bör de vara relativa till tjänstsökvägen. |
Mer information finns i Anpassa cli-arbetsflöden för Azure Developer med hjälp av kommando- och händelsekrokar. |
apiVersion |
N |
Ange en explicit api-version när du distribuerar tjänster som hanteras av Azure Container Apps (ACA). Den här funktionen hjälper dig att undvika att använda en inkompatibel API-version och gör distributionen mer löst kopplad för att undvika att förlora anpassade konfigurationsdata under JSON-marskalkning till en hårdkodad Azure SDK-biblioteksversion. |
apiVersion: 2024-02-02-preview |
Exempel på Docker-alternativ
I följande exempel deklarerar vi Docker-alternativ för en containerapp.
name: yourApp-aca
metadata:
template: yourApp-aca@0.0.1-beta
services:
api:
project: ./src/api
language: js
host: containerapp
docker:
path: ./Dockerfile
context: ../
web:
project: ./src/web
language: js
host: containerapp
docker:
remoteBuild: true
AKS-deployment egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
name |
N |
(sträng) Valfritt. Namnet på den K8s-distributionsresurs som ska användas under distributionen. Används under distributionen för att se till att distributionen av K8s har slutförts. Om den inte har angetts söker du efter en distributionsresurs i samma namnområde som innehåller tjänstnamnet. Standard: Service name |
api |
AKS-service egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
name |
N |
(sträng) Valfritt. Namnet på den K8s-tjänstresurs som ska användas som standardtjänstslutpunkt. Används vid fastställande av slutpunkter för standardtjänstresursen. Om den inte har angetts söker du efter en distributionsresurs i samma namnområde som innehåller tjänstnamnet. (Standard: Tjänstnamn) |
api |
AKS-ingress egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
name |
N |
(sträng) Valfritt. Namnet på den K8s-ingressresurs som ska användas som standardtjänstslutpunkt. Används vid fastställande av slutpunkter för standard-ingressresursen. Om den inte har angetts söker du efter en distributionsresurs i samma namnområde som innehåller tjänstnamnet. Standard: Service name |
api |
relativePath |
N |
(sträng) Valfritt. Den relativa sökvägen till tjänsten från roten för ingresskontrollanten. När du har angett det lägger du till roten för din ingressresurssökväg. |
|
AKS-exempel med krokar på tjänstnivå
metadata:
template: todo-nodejs-mongo-aks@0.0.1-beta
services:
web:
project: ./src/web
dist: build
language: js
host: aks
hooks:
postdeploy:
shell: sh
run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
api:
project: ./src/api
language: js
host: aks
k8s:
ingress:
relativePath: api
hooks:
postdeploy:
shell: sh
run: azd env set REACT_APP_API_BASE_URL ${SERVICE_API_ENDPOINT_URL}
pipeline egenskaper
| Elementnamn |
Krävs |
Beskrivning |
Exempel |
provider |
N |
(sträng) Pipelineprovidern som ska användas för kontinuerlig integrering. (Standard: github). |
github, azdo |
Azure Pipelines (AzDo) som ett CI/CD-pipelineexempel
name: yourApp
services:
web:
project: src/web
dist: build
language: js
host: appservice
pipeline:
provider: azdo
workflows egenskaper
| Elementnamn |
Typ |
Krävs |
Beskrivning |
| upp |
objekt |
Nej |
När det anges åsidosätter standardbeteendet för azd up-arbetsflödet. |
up egenskaper
| Elementnamn |
Typ |
Krävs |
Beskrivning |
| trappsteg |
samling |
Ja |
Stegen som ska köras i arbetsflödet. |
steps egenskaper
| Elementnamn |
Typ |
Krävs |
Beskrivning |
| azd |
sträng |
Ja |
Namnet och args för kommandot azd som ska köras. |
Exempelarbetsflöde
Följande azure.yaml-fil ändrar standardbeteendet för azd up för att flytta azd package steg efter azd provision steg med hjälp av ett arbetsflöde. Det här exemplet kan användas i scenarier där du behöver känna till URL:erna för resurser under bygg- eller paketeringsprocessen.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
workflows:
up:
steps:
- azd: provision
- azd: deploy --all
Begär hjälp
Information om hur du skickar in en bugg, begär hjälp eller föreslår en ny funktion för Azure Developer CLI finns på sidan felsökning och support.
Nästa steg