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
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í).
(ř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.
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.
(ř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).
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í.