Azure Developer CLI の azure.yaml スキーマ
[アーティクル] 2025/01/31
5 人の共同作成者
フィードバック
この記事の内容
見本
プロパティの説明
ヘルプを要求する
次の手順
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
テーブルを展開する
要素名
必須
形容
例
template
N
(文字列) アプリケーションが作成されたテンプレートの識別子です。
todo-nodejs-mongo@0.0.1-beta
テーブルを展開する
要素名
必須
形容
例
provider
N
(文字列) アプリケーションの Azure リソースのインフラストラクチャ プロバイダー。 (既定値: bicep)。
以下の Terraform サンプル を参照してください。
bicep
、terraform
path
N
(文字列) 指定されたプロバイダーの Azure プロビジョニング テンプレートを含む場所への相対フォルダー パス。 (既定値: infra)。
module
N
(文字列) 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
テーブルを展開する
要素名
必須
形容
例
resourceName
N
(文字列) サービスを実装する Azure リソースの名前。 指定しない場合、azd
はタグを azd-env-name
および azd-service-name
してリソースを検索します。 見つからない場合は、現在の環境名から構築されたリソース名を検索し、サービス名 (<environment-name><resource-name>
) と連結します。
prodapi
project
Y
(文字列) サービス ソース コード ディレクトリへのパス。
host
Y
(文字列) サービスの実装に使用される Azure リソースの種類。 省略すると、App Service が想定されます。
appservice
、containerapp
、function
、staticwebapp
、aks
(kubectl apply -f
経由で配置可能なプロジェクトのみ)、springapp
(が有効な場合) - アルファ機能 の詳細を参照してください)
language
Y
(文字列) サービス実装言語。
dotnet
, csharp
, fsharp
, py
, python
, js
, ts
, java
module
Y
(文字列) ルート インフラストラクチャ フォルダーに対するサービスのデプロイに使用されるインフラストラクチャ モジュールのパスです。 省略すると、CLI はモジュール名がサービス名と同じであると見なします。
dist
Y
(文字列) サービスデプロイ成果物への相対パス。 CLI では、このパスの下にあるファイルを使用して、デプロイ成果物 (.zip ファイル) を作成します。 省略すると、サービス プロジェクト ディレクトリのすべてのファイルが含まれます。
build
docker
N
host
が containerapp
されている場合にのみ適用されます。 追加のプロパティを含めることはできません。
以下のカスタム 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 オプションを宣言します。
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
テーブルを展開する
要素名
必須
形容
例
name
N
(文字列) 省略可能。 デプロイ時に使用する k8s デプロイ リソースの名前。 k8s 展開のロールアウトが完了しているかどうかを確認するために、デプロイ中に使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name
api
テーブルを展開する
要素名
必須
形容
例
name
N
(文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s サービス リソースの名前。 既定のサービス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 (既定値: サービス名)
api
テーブルを展開する
要素名
必須
形容
例
name
N
(文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s イングレス リソースの名前。 既定のイングレス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name
api
relativePath
N
(文字列) 省略可能。 イングレス コントローラーのルートからのサービスへの相対パス。 設定すると、イングレス リソース パスのルートに追加されます。
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}
テーブルを展開する
要素名
必須
形容
例
provider
N
(文字列) 継続的インテグレーションに使用するパイプライン プロバイダー。 (既定値: github
)。
github
、azdo
CI/CD パイプラインとしての Azure Pipelines (AzDo) のサンプル
name: yourApp
services:
web:
project: src/web
dist: build
language: js
host: appservice
pipeline:
provider: azdo
テーブルを展開する
要素名
種類
必須
形容
上
オブジェクト
いいえ
指定すると、azd up ワークフローの既定の動作がオーバーライドされます。
テーブルを展開する
要素名
種類
必須
形容
ステップス
配列
はい
ワークフローで実行する手順。
テーブルを展開する
要素名
種類
必須
形容
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 の新機能の提案方法については、のトラブルシューティングとサポートの に関するページを参照してください。