Sdílet prostřednictvím


Schéma Azure.yaml cli pro vývojáře

azd šablony jsou úložiště podrobných plánů, která zahrnují kód aplikace pro testování konceptu, konfiguraci editoru a integrovaného vývojového prostředí a kód infrastruktury napsaný v Bicep nebo Terraformu. Tyto šablony se mají upravit a přizpůsobit vašim konkrétním požadavkům aplikace a pak je použít k získání aplikace do Azure pomocí Azure Developer CLI (azd). Schéma azure.yaml definuje a popisuje aplikace a typy prostředků Azure, které jsou součástí těchto šablon.

Ukázka

Níže je obecný příklad azure.yaml požadované pro šablonu 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

Porovnejte azure.yaml z naší šablony 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

Popisy vlastností

Název elementu Požadovaný Popis
name Y (řetězec) Název aplikace.
resourceGroup N (řetězec) Název skupiny prostředků Azure. Po zadání přepíše název skupiny prostředků použitý ke zřizování infrastruktury.
metadata N (objekt) Další podrobnosti najdete v vlastností metadat.
infra N (objekt) Poskytuje další konfiguraci pro zřizování infrastruktury Azure. Další podrobnosti najdete v tématu vlastnosti infrastruktury.
services Y (objekt) Definice služeb, které tvoří aplikaci. Další podrobnosti najdete v tématu vlastnosti služeb.
pipeline N (objekt) Definice kanálu kontinuální integrace. Další podrobnosti najdete v vlastností kanálu.
hooks N Háky na úrovni příkazů. Háky by měly odpovídat názvům příkazů azd s předponou pre nebo post v závislosti na tom, kdy se má skript spustit. Při zadávání cest by měly být relativní vzhledem k cestě projektu. Další podrobnosti najdete v tématu Přizpůsobení pracovních postupů Azure Developer CLI pomocí příkazů a háků událostí.
requiredVersions N Rozsah podporovaných verzí azd pro tento projekt. Pokud je verze azd mimo tento rozsah, projekt se nepodaří načíst. Volitelné (povolí všechny verze, pokud chybí). Příklad: >= 0.6.0-beta.3

metadata vlastnosti

Název elementu Požadovaný Popis Příklad
template N (řetězec) Identifikátor šablony, ze které byla aplikace vytvořena. todo-nodejs-mongo@0.0.1-beta

infra vlastnosti

Název elementu Požadovaný Popis Příklad
provider N (řetězec) poskytovatele infrastruktury pro prostředky Azure aplikace. (Výchozí hodnota: bicep). Podívejte se na ukázku Terraformu níže. bicep, terraform
path N (řetězec) Relativní cesta ke složce do umístění obsahujícího šablony zřizování Azure pro zadaného zprostředkovatele. (Výchozí hodnota: infrastruktura).
module N (řetězec) Název výchozího modulu se šablonami zřizování Azure. (Výchozí: hlavní).

Ukázka zprostředkovatele Terraformu jako IaC

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 vlastnosti

Název elementu Požadovaný Popis Příklad
resourceName N (řetězec) Název prostředku Azure, který implementuje službu. Pokud není zadaný, azd bude hledat prostředek podle značek azd-env-name a azd-service-name. Pokud se nenajde, vyhledá název prostředku vytvořený z aktuálního názvu prostředí zřetězený s názvem služby (<environment-name><resource-name>). prodapi
project Y (řetězec) cesta k adresáři zdrojového kódu služby.
host Y (řetězec) Typ prostředku Azure, který se používá k implementaci služby. Pokud tento parametr vynecháte, předpokládá se služba App Service. appservice, containerapp, function, staticwebapp, aks (pouze pro projekty nasaditelné prostřednictvím kubectl apply -f), springapp (pokud povoleno – další informace o alfa funkcích)
language Y (řetězec) jazyk implementace služby. dotnet, csharp, fsharp, py, python, js, ts, java
module Y (řetězec) cesta modulu infrastruktury sloužící k nasazení služby vzhledem ke kořenové složce infrastruktury. Pokud tento parametr vynecháte, rozhraní příkazového řádku bude předpokládat, že název modulu je stejný jako název služby.
dist Y (řetězec) Relativní cesta k artefaktům nasazení služby. Rozhraní příkazového řádku použije soubory v této cestě k vytvoření artefaktu nasazení (.zip souboru). Pokud tento parametr vynecháte, budou zahrnuty všechny soubory v adresáři projektu služby. build
docker N Platí pouze v případě, že host je containerapp. Nemůže obsahovat další vlastnosti. Podívejte se na ukázku vlastního Dockeru níže. path (řetězec): Cesta k souboru Dockerfile. Výchozí hodnota: ./Dockerfile; context(řetězec): Kontext sestavení Dockeru. Po zadání přepíše výchozí kontext. Výchozí hodnota: .; platform(řetězec): Cíl platformy. Výchozí hodnota: amd64; remoteBuild(logická hodnota): Povolí vzdálené sestavení ACR. Výchozí: false
k8s N Možnosti konfigurace Služby Azure Kubernetes Service (AKS). Podívejte se na ukázku AKS níže. deploymentPath (řetězec): Volitelné. Relativní cesta z cesty služby k manifestům nasazení k8s. Při nastavení přepíše výchozí umístění cesty nasazení pro manifesty nasazení k8s. Výchozí hodnota: manifests; namespace(řetězec): Volitelné. Obor názvů k8s nasazených prostředků. Po zadání se vytvoří nový obor názvů k8s, pokud ještě neexistuje. Výchozí hodnota: Project name; deployment(objekt): Viz vlastnosti nasazení; service(objekt): Viz vlastnosti služby; ingress(objekt): Viz vlastnosti příchozího přenosu dat.
hooks N Háky na úrovni služeb. Háky by měly odpovídat názvům událostí service s předponou pre nebo post v závislosti na tom, kdy se má skript spustit. Při zadávání cest by měly být relativní vzhledem k cestě služby. Další podrobnosti najdete v tématu Přizpůsobení pracovních postupů Azure Developer CLI pomocí příkazů a háků událostí.
apiVersion N Zadejte explicitní api-version při nasazování služeb hostovaných službou Azure Container Apps (ACA). Tato funkce vám pomůže vyhnout se použití nekompatibilní verze rozhraní API a výrazně více spojit nasazení, aby se zabránilo ztrátě vlastních konfiguračních dat během zařazování JSON do pevně zakódované verze knihovny sady Azure SDK. apiVersion: 2024-02-02-preview

Ukázka možností Dockeru

V následujícím příkladu deklarujeme možnosti Dockeru pro aplikaci typu kontejner.

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

Vlastnosti deployment AKS

Název elementu Požadovaný Popis Příklad
name N (řetězec) volitelné. Název prostředku nasazení k8s, který se má použít během nasazení. Používá se během nasazení, aby se zajistilo, že bylo dokončeno zavedení nasazení k8s. Pokud není nastavená, vyhledá prostředek nasazení ve stejném oboru názvů, který obsahuje název služby. Výchozí: Service name api

Vlastnosti service AKS

Název elementu Požadovaný Popis Příklad
name N (řetězec) volitelné. Název prostředku služby k8s, který se má použít jako výchozí koncový bod služby. Používá se při určování koncových bodů pro výchozí prostředek služby. Pokud není nastavená, vyhledá prostředek nasazení ve stejném oboru názvů, který obsahuje název služby. (Výchozí: Název služby) api

Vlastnosti ingress AKS

Název elementu Požadovaný Popis Příklad
name N (řetězec) volitelné. Název prostředku příchozího přenosu dat k8s, který se má použít jako výchozí koncový bod služby. Používá se při určování koncových bodů pro výchozí prostředek příchozího přenosu dat. Pokud není nastavená, vyhledá prostředek nasazení ve stejném oboru názvů, který obsahuje název služby. Výchozí: Service name api
relativePath N (řetězec) volitelné. Relativní cesta ke službě z kořenového adresáře kontroleru příchozího přenosu dat. Po nastavení se připojí ke kořenovému adresáři cesty prostředku příchozího přenosu dat.

Ukázka AKS s háky na úrovni služeb

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 vlastnosti

Název elementu Požadovaný Popis Příklad
provider N (řetězec) zprostředkovatele kanálu, který se má použít pro kontinuální integraci. (Výchozí hodnota: github). github, azdo

Azure Pipelines (AzDo) jako ukázka kanálu CI/CD

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

workflows vlastnosti

Název elementu Typ Požadovaný Popis
nahoru objekt Ne Po zadání se přepíše výchozí chování pracovního postupu azd up.

up vlastnosti

Název elementu Typ Požadovaný Popis
schody pole Ano Kroky, které se mají provést v pracovním postupu

steps vlastnosti

Název elementu Typ Požadovaný Popis
azd řetězec Ano Název a argy příkazu azd, které se mají spustit.

Ukázkový pracovní postup

Následující soubor azure.yaml změní výchozí chování azd up a přesune azd package krok za krokem azd provision pomocí pracovního postupu. Tento příklad můžete použít ve scénářích, kdy potřebujete znát adresy URL prostředků během procesu sestavení nebo balení.

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
workflows:
  up: 
    steps:
      - azd: provision
      - azd: deploy --all

Požádat o pomoc

Informace o tom, jak vytvořit chybu, požádat o pomoc nebo navrhnout novou funkci pro Azure Developer CLI, najdete na stránce řešení potíží a podpory.

Další kroky