共用方式為


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

metadata 屬性

元素名稱 必要 描述 範例
template (字串) 建立應用程式的範本標識碼。 todo-nodejs-mongo@0.0.1-beta

infra 屬性

元素名稱 必要 描述 範例
provider (字串) 應用程式的 Azure 資源的基礎結構提供者。 (預設值:bicep)。 請參閱下面的 Terraform 範例bicep, terraform
path (字串) 包含指定提供者之 Azure 布建範本之位置的相對資料夾路徑。 (預設值:infra)。
module (字串) 使用 Azure 布建範本的預設模組名稱。 (預設值:main)。

Terraform 作為 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 屬性

元素名稱 必要 描述 範例
resourceName (字串) 實作服務的 Azure 資源名稱。 如果未指定, azd 則會依 azd-env-nameazd-service-name 標記尋找資源。 如果找不到,它會尋找從目前環境名稱建構的資源名稱,並串連服務名稱 (<environment-name><resource-name>)。 prodapi
project Y (字串) 服務原始碼目錄的路徑。
host Y (字串) 用於服務實作的 Azure 資源類型。 如果省略,則會假設 App Service。 appservice、、containerappfunction、、 aksstaticwebapp(僅適用於可透過 kubectl apply -f部署的專案), springapp (啟用- 深入瞭解 Alpha 功能
language Y (字串) 服務實作語言。 dotnetcsharpfsharppypythonjs、、、 tsjava
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 提出新功能的資訊,請流覽 疑難解答和支援 頁面。

下一步