Azure 開發人員 CLI 的 azure.yaml 架構
本文內容
azd
範本 是藍圖存放庫,其中包含概念證明應用程式程式代碼、編輯器/IDE 組態,以及以 Bicep 或 Terraform 撰寫的基礎結構程式代碼。 這些範本旨在針對您的特定應用程式需求進行修改和調整,然後使用 Azure 開發人員 CLI 在 Azure 上取得您的應用程式。azd
azure.yaml 架構會定義並描述這些範本中包含的 Azure 資源應用程式和類型。
範例
以下是範本azd
所需的一azure.yaml
般範例。
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
azure.yaml
與 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
屬性描述
元素名稱
必要
描述
name
Y
(字串) 應用程式的名稱。
resourceGroup
否
(字串) Azure 資源群組的名稱。 指定時,將會覆寫用於基礎結構布建的資源組名。
metadata
否
(物件) 如需詳細資訊,請參閱 元數據屬性 。
infra
否
(物件) 提供額外的 Azure 基礎結構布建組態。 如需詳細資訊,請參閱 基礎結構屬性 。
services
Y
(物件) 組成應用程式的服務定義。 如需詳細資訊,請參閱 服務屬性 。
pipeline
否
(物件) 持續整合管線的定義。 如需詳細資訊,請參閱 管線屬性 。
hooks
否
命令層級攔截。 攔截應該符合 azd
前置詞為 pre
的命令名稱,或 post
視腳本何時應執行而定。 指定路徑時,它們應該相對於項目路徑。 如需詳細資訊,請參閱 使用命令和事件攔截 自定義 Azure 開發人員 CLI 工作流程。
requiredVersions
否
此項目支援的 版本 azd
範圍。 如果的版本 azd
超出此範圍,專案將無法載入。 選擇性 (如果不存在,允許所有版本)。 範例: >= 0.6.0-beta.3
元素名稱
必要
描述
範例
template
否
(字串) 建立應用程式的範本標識碼。
todo-nodejs-mongo@0.0.1-beta
infra
屬性
元素名稱
必要
描述
範例
provider
否
(字串) 應用程式的 Azure 資源的基礎結構提供者。 (預設值:bicep)。
請參閱下面的 Terraform 範例 。 bicep
, terraform
path
否
(字串) 包含指定提供者之 Azure 布建範本之位置的相對資料夾路徑。 (預設值:infra)。
module
否
(字串) 使用 Azure 布建範本的預設模組名稱。 (預設值:main)。
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
屬性
元素名稱
必要
描述
範例
resourceName
否
(字串) 實作服務的 Azure 資源名稱。 如果未指定, azd
則會依 azd-env-name
和 azd-service-name
標記尋找資源。 如果找不到,它會尋找從目前環境名稱建構的資源名稱,並串連服務名稱 (<environment-name><resource-name>
)。
prodapi
project
Y
(字串) 服務原始碼目錄的路徑。
host
Y
(字串) 用於服務實作的 Azure 資源類型。 如果省略,則會假設 App Service。
appservice
、、containerapp
function
、、 aks
staticwebapp
(僅適用於可透過 kubectl apply -f
部署的專案), springapp
(啟用時 - 深入瞭解 Alpha 功能 )
language
Y
(字串) 服務實作語言。
dotnet
、csharp
、fsharp
、py
、python
、js
、、、 ts
java
module
Y
(字串) 用來部署服務相對於根基礎結構資料夾之基礎結構模組的路徑。 如果省略,CLI 會假設模組名稱與服務名稱相同。
dist
Y
(字串) 服務部署成品的相對路徑。 CLI 會使用此路徑下的檔案來建立部署成品 (.zip 檔案)。 如果省略,則會包含服務項目目錄下的所有檔案。
build
docker
否
只有在 是containerapp
時才host
適用。 不能包含額外的屬性。
請參閱下面的自定義 Docker 範例 。 path
(string) :D ockerfile 的路徑。 預設值: ./Dockerfile
; context
(string) :D ocker 建置內容。 指定時,會覆寫默認內容。 預設值: .
; platform
(string) :平台目標。 預設:amd64
k8s
否
Azure Kubernetes Service (AKS) 組態選項。
請參閱下面的 AKS 範例 。 deploymentPath
(string) :選擇性。 從服務路徑到 k8s 部署指令清單的相對路徑。 設定時,它會覆寫 k8s 部署指令清單的預設部署路徑位置。 預設值: manifests
; namespace
(string) :選擇性。 已部署資源的 k8s 命名空間。 指定時,如果尚未存在,將會建立新的 k8s 命名空間。 預設值: Project name
; deployment
(物件) :請參閱 部署屬性 : service
(物件) :查看 服務屬性 : ingress
(object) :請參閱 輸入屬性 。
hooks
否
服務等級勾點。 攔截應該比對 service
前置詞的事件 pre
名稱,或 post
視腳本何時應執行而定。 指定路徑時,它們應該相對於服務路徑。
如需詳細資訊,請參閱 使用命令和事件攔截 自定義 Azure 開發人員 CLI 工作流程。
Docker 選項範例
在下列範例中,我們會宣告容器應用程式的 Docker 選項。
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 deployment
屬性
元素名稱
必要
描述
範例
name
否
(字串) 選。 部署期間要使用的 k8s 部署資源名稱。 用於部署期間,以確保 k8s 部署推出是否已完成。 如果未設定,將會在包含服務名稱的相同命名空間中搜尋部署資源。 預設:Service name
api
AKS service
屬性
元素名稱
必要
描述
範例
name
否
(字串) 選。 要作為預設服務端點的 k8s 服務資源名稱。 在判斷預設服務資源的端點時使用。 如果未設定,將會在包含服務名稱的相同命名空間中搜尋部署資源。 (預設值:服務名稱)
api
AKS ingress
屬性
元素名稱
必要
描述
範例
name
否
(字串) 選。 要作為預設服務端點使用的 k8s 輸入資源名稱。 用於判斷預設輸入資源的端點。 如果未設定,將會在包含服務名稱的相同命名空間中搜尋部署資源。 預設:Service name
api
relativePath
否
(字串) 選。 來自輸入控制器根目錄之服務的相對路徑。 設定時,將會附加至輸入資源路徑的根目錄。
具有服務等級勾點的 AKS 範例
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
屬性
元素名稱
必要
描述
範例
provider
否
(字串) 要用於持續整合的管線提供者。 (預設值: github
)。
github
, azdo
Azure Pipelines (AzDo) 作為 CI/CD 管線範例
name: yourApp
services:
web:
project: src/web
dist: build
language: js
host: appservice
pipeline:
provider: azdo
要求說明
如需如何提出 Bug、要求協助或為 Azure 開發人員 CLI 提出新功能的資訊,請流覽 疑難解答和支援 頁面。
下一步