Azure Developer CLI の azure.yaml スキーマ
[アーティクル] 11/08/2023
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
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
(文字列) root インフラ フォルダーを基準としたサービスのデプロイに使用されるインフラストラクチャ モジュールのパス。 省略すると、CLI はモジュール名がサービス名と同じであると見なします。
dist
Y
(文字列) サービス デプロイ成果物への相対パス。 CLI は、このパスの下にあるファイルを使用して、デプロイ成果物 (.zip ファイル) を作成します。 省略すると、サービス プロジェクト ディレクトリの下にあるすべてのファイルが含まれることになります。
build
docker
N
host
が containerapp
の場合にのみ使用できます。 追加のプロパティを含めることはできません。
以下の「カスタム Docker サンプル 」を参照してください。 path
(文字列) : Dockerfileへのパス。 既定値: ./Dockerfile
。context
(文字列) : Docker ビルド コンテキスト。 指定すると、既定のコンテキストがオーバーライドされます。 既定値: .
。platform
(文字列) : プラットフォーム ターゲット。 既定値: amd64
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 ワークフローをカスタマイズする 」を参照してください。
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
N
(文字列) 省略可能。 デプロイ時に使用する k8s デプロイ リソースの名前。 k8s デプロイのロールアウトが完了しているかどうかを確認するために、デプロイ中に使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name
api
AKS の service
プロパティ
要素名
必須
説明
例
name
N
(文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s サービス リソースの名前。 既定のサービス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 (既定値: サービス名)
api
AKS の ingress
プロパティ
要素名
必須
説明
例
name
N
(文字列) 省略可能。 既定のサービス エンドポイントとして使用する k8s イングレスの名前。 既定のイングレス リソースのエンドポイントを決定するときに使用されます。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: Service name
api
relativePath
N
(文字列) 省略可能。 イングレス コントローラーの root からのサービスへの相対パス。 設定すると、イングレス リソース パスの root に追加されます。
サービス レベル フックを含む 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
サポートを要求します
バグ報告、支援要請、または Azure Developer CLI の新機能の提案を行う方法については、トラブルシューティングとサポート のページを参照してください。
次のステップ