Delen via


Azure Developer CLI's azure.yaml-schema

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 voor uw specifieke toepassingsvereisten en worden vervolgens gebruikt om uw toepassing in Azure op te halen met behulp van de Azure Developer CLI (azd). Het schema azure.yaml definieert en beschrijft de apps en typen Azure-resources die zijn opgenomen in deze sjablonen.

Voorbeeld

Hieronder ziet u een algemeen voorbeeld van een azure.yaml vereiste sjabloon 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

Vergelijk met de azure.yamlsjabloon ToDo NodeJs Mongo:

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

Beschrijvingen van eigenschappen

Naam van element Vereist Beschrijving
name J (tekenreeks) Naam van de toepassing.
resourceGroup N (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.
metadata N (object) Zie metagegevenseigenschappen voor meer informatie.
infra N (object) Biedt extra configuratie voor het inrichten van Azure-infrastructuur. Zie infraeigenschappen voor meer informatie.
services J (object) Definitie van services die deel uitmaken van de toepassing. Zie de 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 dit project. Als de versie 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

Naam van element Vereist Beschrijving Voorbeeld
template N (tekenreeks) Id van de sjabloon waaruit de toepassing is gemaakt. todo-nodejs-mongo@0.0.1-beta

infra-eigenschappen

Naam van element Vereist Beschrijving Voorbeeld
provider N (tekenreeks) De infrastructuurprovider voor de Azure-resources van de toepassing. (Standaard: bicep). Zie het Terraform-voorbeeld hieronder. bicep, terraform
path N (tekenreeks) Het relatieve mappad naar de locatie met Azure-inrichtingssjablonen voor de opgegeven provider. (Standaard: infra).
module N (tekenreeks) De naam van de standaardmodule met de Azure-inrichtingssjablonen. (Standaard: hoofdinstelling).

Voorbeeld van Terraform als IaC-provider

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-eigenschappen

Naam van element Vereist Beschrijving Voorbeeld
resourceName N (tekenreeks) Naam van de Azure-resource waarmee de service wordt geïmplementeerd. Als dit niet is opgegeven, azd zoekt u naar een resource door 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 J (tekenreeks) Pad naar de broncodemap van de service.
host J (tekenreeks) Type Azure-resource dat wordt gebruikt voor service-implementatie. Als u dit weglaat, wordt ervan uitgegaan dat App Service wordt gebruikt. appservice, , functioncontainerapp, staticwebappaks (alleen voor projecten die kunnen worden geïmplementeerd via kubectl apply -f), springapp (indien ingeschakeld - meer informatie over alfafuncties)
language J (tekenreeks) Taal voor service-implementatie. dotnet, , csharpfsharp, py, , python, , jstsjava
module J (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 J (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 .containerapp Kan geen extra eigenschappen bevatten. Zie het 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. Standaardwaarde: amd64
k8s N De AKS-configuratieopties (Azure Kubernetes Service). Zie het 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): service-eigenschappen bekijken; 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. Zie Uw Azure Developer CLI-werkstromen aanpassen met behulp van opdracht- en gebeurtenishook voor meer informatie.

Voorbeeld van Docker-opties

In het volgende voorbeeld declareren we Docker-opties voor een container-app.

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

AKS-eigenschappen deployment

Naam van element Vereist Beschrijving Voorbeeld
name N (tekenreeks) Optionele. 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. Standaardwaarde: Service name api

AKS-eigenschappen service

Naam van element Vereist Beschrijving Voorbeeld
name N (tekenreeks) Optionele. 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

AKS-eigenschappen ingress

Naam van element Vereist Beschrijving Voorbeeld
name N (tekenreeks) Optionele. 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. Standaardwaarde: Service name api
relativePath N (tekenreeks) Optionele. 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

Naam van element 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

name: yourApp
services:  
  web:    
    project: src/web
    dist: build
    language: js
    host: appservice
pipeline: 
  provider: azdo

Hulp vragen

Ga naar de pagina voor probleemoplossing en ondersteuning voor informatie over het indienen van een bug, hulp vragen of een nieuwe functie voorstellen voor de Azure Developer CLI.

Volgende stappen