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 na 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.

Vzorek

Níže je obecný příklad azure.yaml požadované šablony 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 s naší šablonou azure.yamlMongo ToDo NodeJs:

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 prvku Požadováno 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 ve vlastnostech metadat.
infra N (objekt) Poskytuje další konfiguraci pro zřizování infrastruktury Azure. Další podrobnosti najdete v části Vlastnosti infrastruktury.
services Y (objekt) Definice služeb, které tvoří aplikaci Další podrobnosti najdete ve vlastnostech služeb.
pipeline N (objekt) Definice kanálu kontinuální integrace Další podrobnosti najdete ve vlastnostech kanálu.
hooks N Háky na úrovni příkazů. Háky by měly odpovídat azd názvům příkazů 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 volání událostí.
requiredVersions N Rozsah podporovaných azd verzí 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

Vlastnosti metadata

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

Vlastnosti infra

Název prvku Požadováno Popis Příklad
provider N (řetězec) Poskytovatel 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 k umístění obsahujícímu š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

Vlastnosti services

Název prvku Požadováno Popis Příklad
resourceName N (řetězec) Název prostředku Azure, který implementuje službu. Pokud ho nezadáte, azd vyhledá prostředek podle azd-env-name značek a azd-service-name označí ho. 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 sloužícího k implementaci služby Pokud tento parametr vynecháte, předpokládá se služba App Service. appservice, containerapp, function, , aksstaticwebapp(pouze pro projekty nasaditelné prostřednictvím kubectl apply -f), springapp (pokud je povoleno – další informace o alfa funkcích)
language Y (řetězec) Jazyk implementace služby. dotnet, csharp, fsharp, , pythonpy, js, , tsjava
module Y (řetězec) Cesta modulu infrastruktury použitého 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 pod touto cestou k vytvoření artefaktu nasazení (soubor ZIP). 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 vlastní ukázku 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í: amd64
k8s N Možnosti konfigurace Služby Azure Kubernetes Service (AKS). Podívejte se níže na ukázku AKS. 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(object): Viz vlastnosti nasazení; service(object): Viz vlastnosti služby; ingress(object): Viz vlastnosti příchozího přenosu dat.
hooks N Háky na úrovni služeb. Háky by měly odpovídat service názvům událostí 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 volání událostí.

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

Vlastnosti AKS deployment

Název prvku Požadováno 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 AKS service

Název prvku Požadováno 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 AKS ingress

Název prvku Požadováno 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}

Vlastnosti pipeline

Název prvku Požadováno Popis Příklad
provider N (řetězec) Poskytovatel kanálu, který se má použít pro kontinuální integraci. (Výchozí: 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

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 pro řešení potíží a podporu .

Další kroky