Dela via


Azure Developer CLI:s azure.yaml-schema

azd mallar är skissdatabaser som innehåller proof-of-concept-programkod, redigeringsprogram/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). Azure.yaml-schemat definierar och beskriver de appar och typer av Azure-resurser som ingår i dessa mallar.

Exempel

Nedan visas 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 Obligatoriskt Beskrivning
name Y (sträng) Namnet på programmet.
resourceGroup N (sträng) Namnet på Azure-resursgruppen. När det anges åsidosätter du resursgruppens namn som används för infrastrukturetablering.
metadata N (objekt) Mer information finns i metadataegenskaper .
infra N (objekt) Tillhandahåller extra konfiguration för etablering av Azure-infrastruktur. Mer information finns i infraegenskaper .
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 ska 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 ska 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 som stöds av azd 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

metadata egenskaper

Elementnamn Obligatoriskt 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 Obligatoriskt Beskrivning Exempel
provider N (sträng) Infrastrukturprovidern för programmets Azure-resurser. (Standard: bicep). Se Terraform-exemplet nedan. 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).

Exempel på Terraform som 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 egenskaper

Elementnamn Obligatoriskt Beskrivning Exempel
resourceName N (sträng) Namnet på den Azure-resurs som implementerar tjänsten. Om det inte anges azd letar du efter en resurs efter azd-env-name och azd-service-name taggar. Om det inte hittas letar den efter ett resursnamn som skapats 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 det är aktiverat – läs mer om alfafunktioner)
language Y (sträng) Språk för tjänstimplementering. dotnet, csharp, fsharp, py, python, , js, , tsjava
module Y (sträng) Sökväg till 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-filen). 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 nedan. 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
k8s N Konfigurationsalternativen för Azure Kubernetes Service (AKS). Se AKS-exemplet nedan. deploymentPath(sträng): Valfritt. Den relativa sökvägen från tjänstsökvägen till distributionsmanifestet för k8s. 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 bör 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 .

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

AKS-egenskaper deployment

Elementnamn Obligatoriskt Beskrivning Exempel
name N (sträng) Valfri. Namnet på den k8s-distributionsresurs som ska användas under distributionen. Används under distributionen för att säkerställa att distributionen av k8s-distributionen 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-egenskaper service

Elementnamn Obligatoriskt Beskrivning Exempel
name N (sträng) Valfri. 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-egenskaper ingress

Elementnamn Obligatoriskt Beskrivning Exempel
name N (sträng) Valfri. 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) Valfri. Den relativa sökvägen till tjänsten från roten för ingresskontrollanten. När den har angetts läggs den till i 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 Obligatoriskt 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

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å felsöknings - och supportsidan .

Nästa steg