英語で読む

次の方法で共有


Azure Developer CLI の azure.yaml スキーマ

azd テンプレート は、概念実証アプリケーション コード、エディター/IDE 構成、Bicep または Terraform で記述されたインフラストラクチャ コードを含むブループリント リポジトリです。 これらのテンプレートは、特定のアプリケーション要件に合わせて変更および調整された後、Azure Developer CLI (azd) を使用して Azure でアプリケーションを取得するために使用されます。 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

ToDo NodeJs Mongo テンプレートazure.yaml と比較します。

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 N (文字列) Azure リソース グループの名前。 指定すると、インフラストラクチャ のプロビジョニングに使用されるリソース グループ名がオーバーライドされます。
metadata N (オブジェクト) 詳細については、メタデータ プロパティの を参照してください。
infra N (オブジェクト) Azure インフラストラクチャ のプロビジョニングに追加の構成を提供します。 詳細については、のプロパティ を参照してください。
services Y (オブジェクト) アプリケーションを構成するサービスの定義です。 詳細については、サービスのプロパティ を参照してください。
pipeline N (オブジェクト) 継続的インテグレーション パイプラインの定義。 詳細については、パイプラインのプロパティ を参照してください。
hooks N コマンド レベルのフック。 フックは、スクリプト azd 実行するタイミングに応じて、pre または post でプレフィックスが付いたコマンド名と一致する必要があります。 パスを指定するときは、プロジェクト パスに対する相対パスにする必要があります。 詳細については、「コマンドとイベント フック を使用して Azure Developer CLI ワークフローをカスタマイズする」を参照してください。
requiredVersions N このプロジェクトでサポートされている azd のバージョンの範囲。 azd のバージョンがこの範囲外の場合、プロジェクトの読み込みに失敗します。 省略可能 (存在しない場合は、すべてのバージョンを許可します)。 例: >= 0.6.0-beta.3

プロパティの metadata

要素名 必須 形容
template N (文字列) アプリケーションが作成されたテンプレートの識別子です。 todo-nodejs-mongo@0.0.1-beta

プロパティの infra

要素名 必須 形容
provider N (文字列) アプリケーションの Azure リソースのインフラストラクチャ プロバイダー。 (既定値: bicep)。 以下の Terraform サンプル を参照してください。 bicepterraform
path N (文字列) 指定されたプロバイダーの Azure プロビジョニング テンプレートを含む場所への相対フォルダー パス。 (既定値: infra)。
module N (文字列) Azure プロビジョニング テンプレートを含む既定のモジュールの名前。 (既定値: main)。

IaC プロバイダーとしての Terraform のサンプル

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 N (文字列) サービスを実装する Azure リソースの名前。 指定しない場合、azd はタグを azd-env-name および azd-service-name してリソースを検索します。 見つからない場合は、現在の環境名から構築されたリソース名を検索し、サービス名 (<environment-name><resource-name>) と連結します。 prodapi
project Y (文字列) サービス ソース コード ディレクトリへのパス。
host Y (文字列) サービスの実装に使用される Azure リソースの種類。 省略すると、App Service が想定されます。 appservicecontainerappfunctionstaticwebappaks (kubectl apply -f経由で配置可能なプロジェクトのみ)、springapp (が有効な場合) - アルファ機能 の詳細を参照してください)
language Y (文字列) サービス実装言語。 dotnet, csharp, fsharp, py, python, js, ts, java
module Y (文字列) ルート インフラストラクチャ フォルダーに対するサービスのデプロイに使用されるインフラストラクチャ モジュールのパスです。 省略すると、CLI はモジュール名がサービス名と同じであると見なします。
dist Y (文字列) サービスデプロイ成果物への相対パス。 CLI では、このパスの下にあるファイルを使用して、デプロイ成果物 (.zip ファイル) を作成します。 省略すると、サービス プロジェクト ディレクトリのすべてのファイルが含まれます。 build
docker N hostcontainerappされている場合にのみ適用されます。 追加のプロパティを含めることはできません。 以下のカスタム Docker サンプル を参照してください。 path (文字列): Dockerfile へのパス。 既定値: ./Dockerfile;context(文字列): docker ビルド コンテキスト。 指定すると、既定のコンテキストがオーバーライドされます。 既定値: .;platform(文字列): プラットフォーム ターゲット。 既定値: amd64;remoteBuild(ブール値): リモート ACR ビルドを有効にします。 既定値: false
k8s N Azure Kubernetes Service (AKS) 構成オプション。 以下の AKS サンプル を参照してください。 deploymentPath (文字列): 省略可能。 サービス パスから k8s 配置マニフェストへの相対パス。 設定すると、k8s 配置マニフェストの既定の配置パスの場所がオーバーライドされます。 既定値: manifests;namespace(文字列): 省略可能。 デプロイされたリソースの k8s 名前空間。 指定すると、新しい k8s 名前空間がまだ存在しない場合に作成されます。 既定値: Project name;deployment(オブジェクト): 展開プロパティ を参照してください。service(オブジェクト): サービスプロパティ 参照してください。ingress(オブジェクト): イングレス プロパティ 参照してください。
hooks N サービス レベルフック。 フックは、スクリプト service 実行するタイミングに応じて、pre または post でプレフィックスが付いたイベント名と一致する必要があります。 パスを指定するときは、サービス パスに対する相対パスにする必要があります。 詳細については、「コマンドとイベント フック を使用して Azure Developer CLI ワークフローをカスタマイズする」を参照してください。
apiVersion N Azure Container Apps (ACA) によってホストされるサービスをデプロイするときに、明示的な api-version を指定します。 この機能は、互換性のない API バージョンの使用を回避するのに役立ち、ハードコーディングされた Azure SDK ライブラリ バージョンへの JSON マーシャリング中にカスタム構成データが失われないように、デプロイをより疎結合にします。 apiVersion: 2024-02-02-preview

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
    docker:
      remoteBuild: true

AKS deployment プロパティ

要素名 必須 形容
name N (文字列) 省略可能。 デプロイ時に使用する k8s デプロイ リソースの名前。 k8s 展開のロールアウトが完了しているかどうかを確認するために、デプロイ中に使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name api

AKS service プロパティ

要素名 必須 形容
name N (文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s サービス リソースの名前。 既定のサービス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 (既定値: サービス名) api

AKS ingress プロパティ

要素名 必須 形容
name N (文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s イングレス リソースの名前。 既定のイングレス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name api
relativePath N (文字列) 省略可能。 イングレス コントローラーのルートからのサービスへの相対パス。 設定すると、イングレス リソース パスのルートに追加されます。

サービス レベル フックを含む 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 N (文字列) 継続的インテグレーションに使用するパイプライン プロバイダー。 (既定値: github)。 githubazdo

CI/CD パイプラインとしての Azure Pipelines (AzDo) のサンプル

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

プロパティの workflows

要素名 種類 必須 形容
オブジェクト いいえ 指定すると、azd up ワークフローの既定の動作がオーバーライドされます。

プロパティの up

要素名 種類 必須 形容
ステップス 配列 はい ワークフローで実行する手順。

プロパティの steps

要素名 種類 必須 形容
azd はい 実行する azd コマンドの名前と引数。

サンプル ワークフロー

次の azure.yaml ファイルでは、azd up の既定の動作が変更され、ワークフローを使用して azd provision ステップの後に azd package ステップが移動されます。 この例は、ビルドまたはパッケージ化プロセス中にリソースの URL を知る必要があるシナリオで使用できます。

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

ヘルプを要求する

バグの報告、ヘルプの要求、または Azure Developer CLI の新機能の提案方法については、のトラブルシューティングとサポートの に関するページを参照してください。

次の手順