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 |
プロパティの infra
要素名 |
必須 |
形容 |
例 |
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
プロパティの services
要素名 |
必須 |
形容 |
例 |
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 オプションのサンプル
次の例では、コンテナー アプリの 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 )。 |
github 、azdo |
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 の新機能の提案方法については、のトラブルシューティングとサポートの に関するページを参照してください。
次の手順