azd sjablonen zijn blauwdrukopslagplaatsen die proof-of-concept-toepassingscode, editor-/IDE-configuraties en infrastructuurcode bevatten die zijn geschreven in Bicep of Terraform. Deze sjablonen zijn bedoeld om te worden gewijzigd en aangepast aan uw specifieke toepassingsvereisten en vervolgens gebruikt om uw toepassing in Azure te verkrijgen met behulp van de Azure Developer CLI (azd). Het azure.yaml schema definieert en beschrijft de apps en typen Azure-resources die zijn opgenomen in deze sjablonen.
Monster
Hieronder ziet u een algemeen voorbeeld van een azure.yaml vereist voor uw azd-sjabloon.
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
(tekenreeks) naam van de Azure-resourcegroep. Wanneer dit is opgegeven, wordt de naam van de resourcegroep overschreven die wordt gebruikt voor het inrichten van de infrastructuur.
(object) biedt extra configuratie voor het inrichten van Azure-infrastructuur. Zie infraeigenschappen voor meer informatie.
services
Y
(object) Definitie van services waaruit de toepassing bestaat. Zie eigenschappen van services voor meer informatie.
pipeline
N
(object) definitie van pijplijn voor continue integratie. Zie pijplijneigenschappen voor meer informatie.
hooks
N
Haken op opdrachtniveau. Hooks moeten overeenkomen met azd opdrachtnamen die zijn voorafgegaan door pre of post, afhankelijk van wanneer het script moet worden uitgevoerd. Wanneer u paden opgeeft, moeten ze relatief zijn ten opzichte van het projectpad. Zie Uw Azure Developer CLI-werkstromen aanpassen met behulp van opdracht- en gebeurtenishook voor meer informatie.
requiredVersions
N
Een reeks ondersteunde versies van azd voor dit project. Als de versie van azd buiten dit bereik valt, kan het project niet worden geladen. Optioneel (staat alle versies toe indien afwezig). Voorbeeld: >= 0.6.0-beta.3
metadata eigenschappen
Elementnaam
Vereist
Beschrijving
Voorbeeld
template
N
(tekenreeks) id van de sjabloon waaruit de toepassing is gemaakt.
todo-nodejs-mongo@0.0.1-beta
infra eigenschappen
Elementnaam
Vereist
Beschrijving
Voorbeeld
provider
N
(tekenreeks) de infrastructuurprovider voor de Azure-resources van de toepassing. (Standaard: bicep).
(tekenreeks) naam van de Azure-resource waarmee de service wordt geïmplementeerd. Als dit niet is opgegeven, zoekt azd naar een resource door middel van azd-env-name en azd-service-name tags. Als deze niet wordt gevonden, wordt gezocht naar een resourcenaam die is samengesteld op basis van de huidige omgevingsnaam, samengevoegd met de servicenaam (<environment-name><resource-name>).
prodapi
project
Y
(tekenreeks) pad naar de broncodemap van de service.
host
Y
(tekenreeks) type Azure-resource dat wordt gebruikt voor service-implementatie. Als u dit weglaat, wordt ervan uitgegaan dat App Service wordt gebruikt.
appservice, containerapp, function, staticwebapp, aks (alleen voor projecten die kunnen worden geïmplementeerd via kubectl apply -f), springapp (wanneer is ingeschakeld - meer informatie over alfafuncties)
language
Y
(tekenreeks) service-implementatietaal.
dotnet, csharp, fsharp, py, python, js, ts, java
module
Y
(tekenreeks) pad van de infrastructuurmodule die wordt gebruikt om de service te implementeren ten opzichte van de hoofdinfrastructuurmap. Als u dit weglaat, wordt ervan uitgegaan dat de modulenaam gelijk is aan de servicenaam.
dist
Y
(tekenreeks) relatief pad naar de artefacten van de service-implementatie. De CLI gebruikt bestanden onder dit pad om het implementatieartefact (.zip bestand) te maken. Als u dit weglaat, worden alle bestanden in de projectmap van de service opgenomen.
build
docker
N
Alleen van toepassing wanneer host is containerapp. Kan geen extra eigenschappen bevatten.
Zie de aangepaste Docker-voorbeeld hieronder.
path(tekenreeks): Pad naar het Dockerfile. Standaard: ./Dockerfile; context(tekenreeks): de docker-buildcontext. Wanneer u dit hebt opgegeven, wordt de standaardcontext overschreven. Standaard: .; platform(tekenreeks): het platformdoel. Standaard: amd64; remoteBuild(Booleaanse waarde): hiermee schakelt u externe ACR-builds in. Standaard: false
k8s
N
De AKS-configuratieopties (Azure Kubernetes Service).
Zie de AKS-voorbeeld hieronder.
deploymentPath(tekenreeks): Optioneel. Het relatieve pad van het servicepad naar de k8s-implementatiemanifesten. Wanneer deze is ingesteld, wordt de standaardlocatie van het implementatiepad voor k8s-implementatiemanifesten overschreven. Standaard: manifests; namespace(tekenreeks): optioneel. De k8s-naamruimte van de geïmplementeerde resources. Wanneer deze is opgegeven, wordt er een nieuwe k8s-naamruimte gemaakt als deze nog niet bestaat. Standaard: Project name; deployment(object): zie implementatie-eigenschappen; service(object): zie service-eigenschappen; ingress(object): zie eigenschappen voor inkomend verkeer.
hooks
N
Service level hooks. Hooks moeten overeenkomen met service gebeurtenisnamen die zijn voorafgegaan door pre of post, afhankelijk van wanneer het script moet worden uitgevoerd. Wanneer u paden opgeeft, moeten ze relatief zijn ten opzichte van het servicepad.
Geef een expliciete api-version op bij het implementeren van services die worden gehost door Azure Container Apps (ACA). Met deze functie kunt u voorkomen dat u een incompatibele API-versie gebruikt en de implementatie losjes koppelt om te voorkomen dat aangepaste configuratiegegevens verloren gaan tijdens JSON-marshaling naar een in code vastgelegde versie van de Azure SDK-bibliotheek.
apiVersion: 2024-02-02-preview
Voorbeeld van Docker-opties
In het volgende voorbeeld declareren we Docker-opties voor een container-app.
(tekenreeks) Optioneel. De naam van de k8s-implementatieresource die tijdens de implementatie moet worden gebruikt. Wordt gebruikt tijdens de implementatie om te controleren of de implementatie van k8s is voltooid. Als deze niet is ingesteld, zoekt u naar een implementatieresource in dezelfde naamruimte die de servicenaam bevat. Standaard: Service name
api
Eigenschappen van AKS-service
Elementnaam
Vereist
Beschrijving
Voorbeeld
name
N
(tekenreeks) Optioneel. De naam van de k8s-serviceresource die moet worden gebruikt als het standaardservice-eindpunt. Wordt gebruikt bij het bepalen van eindpunten voor de standaardserviceresource. Als deze niet is ingesteld, zoekt u naar een implementatieresource in dezelfde naamruimte die de servicenaam bevat. (Standaard: servicenaam)
api
Eigenschappen van AKS-ingress
Elementnaam
Vereist
Beschrijving
Voorbeeld
name
N
(tekenreeks) Optioneel. De naam van de k8s-toegangsbeheerresource die moet worden gebruikt als het standaardservice-eindpunt. Wordt gebruikt bij het bepalen van eindpunten voor de standaardresource voor inkomend verkeer. Als deze niet is ingesteld, zoekt u naar een implementatieresource in dezelfde naamruimte die de servicenaam bevat. Standaard: Service name
api
relativePath
N
(tekenreeks) Optioneel. Het relatieve pad naar de service vanuit de hoofdmap van uw ingangscontroller. Wanneer deze is ingesteld, wordt deze toegevoegd aan de hoofdmap van het resourcepad voor inkomend verkeer.
AKS-voorbeeld met serviceniveauhook
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 eigenschappen
Elementnaam
Vereist
Beschrijving
Voorbeeld
provider
N
(tekenreeks) De pijplijnprovider die moet worden gebruikt voor continue integratie. (Standaard: github).
github, azdo
Azure Pipelines (AzDo) als een CI/CD-pijplijnvoorbeeld
Wanneer dit is opgegeven, wordt het standaardgedrag voor de azd up-werkstroom overschreven.
up eigenschappen
Elementnaam
Type
Vereist
Beschrijving
stappen
array
Ja
De stappen die moeten worden uitgevoerd in de werkstroom.
steps eigenschappen
Elementnaam
Type
Vereist
Beschrijving
azd
snaar
Ja
De naam en argumenten van de azd-opdracht die moet worden uitgevoerd.
Voorbeeldwerkstroom
In het volgende azure.yaml bestand wordt het standaardgedrag van azd up gewijzigd om de azd package stap na de azd provision stap te verplaatsen met behulp van een werkstroom. Dit voorbeeld kan worden gebruikt in scenario's waarin u de URL's van resources moet kennen tijdens het bouw- of verpakkingsproces.