Azure Developer CLI スキーマ リファレンス

azure.yaml ファイルは、Azure Developer CLI (azd) プロジェクトの構成ファイルです。 プロジェクトのルートに配置して、アプリケーションを構成するサービス、Azure リソース、インフラストラクチャ、フック、CI/CD パイプラインを定義します。 azd upazd provisionazd deployなどのコマンドを実行すると、CLI によってこのファイルが読み取られ、アプリの構造と Azure へのデプロイ方法が理解されます。

この記事は、 azure.yaml スキーマの完全なリファレンスです。 azd テンプレートの概要については、「Azure Developer CLI テンプレートの概要」を参照してください。

見本

azd テンプレートのazure.yaml ファイルの一般的な例を次に示します。 実際の例については、ToDo NodeJs Mongo テンプレートazure.yamlを参照してください。

name: yourApp
metadata:
  template: yourApp@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 N オブジェクト アプリケーションを構成するサービスの定義。
resources N オブジェクト アプリケーションによって使用される Azure リソースの定義。
pipeline N オブジェクト 継続的インテグレーション パイプラインの定義。
hooks N オブジェクト azd コマンドのコマンド レベル フック。
requiredVersions N オブジェクト 必要なバージョンの azd と拡張機能の追加の構成を提供します。
state N オブジェクト 状態管理の追加の構成を提供します。
platform N オブジェクト Azure デベロッパー センターなどのプラットフォーム固有の機能の追加構成を提供します。
workflows N オブジェクト azd up動作のオーバーライドなどのワークフローの追加の構成を提供します。
cloud N オブジェクト ソブリン クラウドにデプロイするための追加の構成を提供します。 既定のクラウドは AzureCloudです。

name

(文字列、必須) アプリケーション名。 使用できるのは、小文字、数字、ハイフン (-) のみです。 名前の最初と最後は、文字か数字にする必要があります。 最小長: 2 文字。

name: my-app

resourceGroup

(文字列) Azure リソース グループの名前。 指定すると、インフラストラクチャ のプロビジョニングに使用されるリソース グループ名がオーバーライドされます。 環境変数の置換をサポートします。 3 ~ 64 文字にする必要があります。

resourceGroup: rg-my-app-${AZURE_ENV_NAME}

metadata

(オブジェクト) アプリケーション テンプレートに関するメタデータ。

財産 必須 タイプ 形容
template N 文字列 アプリケーションの作成元のテンプレートの識別子。
metadata:
  template: todo-nodejs-mongo@0.0.1-beta

infra

(オブジェクト) Azure インフラストラクチャ プロビジョニングの追加の構成を提供します。

財産 必須 タイプ 形容
provider N 文字列 アプリケーションの Azure リソースをプロビジョニングするために使用されるインフラストラクチャ プロビジョニング プロバイダー。 既定値: bicep。 使用できる値: bicepterraform
path N 文字列 指定したプロバイダーの Azure プロビジョニング テンプレートへの相対フォルダー パス。 既定値: infra
module N 文字列 Azure プロビジョニング テンプレート内の既定のモジュールの名前。 既定値: main
layers N アレイ Azure インフラストラクチャ プロビジョニングのレイヤー。 「infra.layers」を参照してください。

Note

layersが少なくとも 1 つの項目で指定されている場合、pathプロパティとmoduleプロパティは使用できません。 代わりに、レイヤー固有の pathmodule 値を使用します。

infra.layers

(オブジェクトの配列) Azure インフラストラクチャのプロビジョニング レイヤーを定義します。 各レイヤーは、プロビジョニングの独立した単位を表します。

財産 必須 タイプ 形容
name Y 文字列 プロビジョニング レイヤーの名前。
path Y 文字列 指定したプロバイダーの Azure プロビジョニング テンプレートへの相対フォルダー パス。
module N 文字列 リソースのプロビジョニング時に使用される Azure プロビジョニング モジュールの名前。 既定値: main
hooks N オブジェクト レイヤー フックのプロビジョニング。 preprovisionpostprovisionフックをサポートします。 パスを指定するときは、レイヤー パスに対する相対パスにする必要があります。 フック定義を参照してください。
infra:
  provider: bicep
  layers:
    - name: core
      path: ./infra/core
    - name: services
      path: ./infra/services
      hooks:
        postprovision:
          shell: sh
          run: ./scripts/post-provision.sh

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

Bicep の代わりに Terraform を使用するには、 providerterraform に設定します。 詳細については、「 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

(オブジェクト) アプリケーションを構成するサービスの定義です。 各キーはサービス名であり、値はサービス構成オブジェクトです。

サービスのプロパティ

財産 必須 タイプ 形容
host Y 文字列 サービスの実装に使用される Azure リソースの種類。 「ホストの種類」を参照してください。
project Conditional 文字列 サービス ソース コード ディレクトリへのパス。 ほとんどのホストの種類に必要です。
image Conditional 文字列 ソースからビルドするのではなく、コンテナー イメージに使用するソース イメージ。 環境変数の置換をサポートします。 containerapp ホストに対してのみ有効です。
language N 文字列 サービス実装言語。 許可される値: dotnetcsharpfsharppypythonjstsjavadocker
module N 文字列 ルート インフラストラクチャ フォルダーを基準としたサービスのデプロイに使用されるインフラストラクチャ モジュールのパス。 省略すると、CLI はモジュール名がサービス名と同じであると見なします。
dist N 文字列 サービスデプロイ成果物への相対パス。
resourceName N 文字列 サービスを実装する Azure リソースの名前。 既定では、CLI は現在のサービスの名前にタグ azd-service-name 設定された Azure リソースを検出します。 環境変数の置換をサポートします。
resourceGroup N 文字列 リソースを含む Azure リソース グループの名前。 指定すると、CLI は、指定されたリソース グループ内の Azure リソースを検索します。 環境変数の置換をサポートします。
remoteBuild N boolean 関数アプリのデプロイにリモート ビルドを使用するかどうか。 hostfunctionされている場合にのみ有効です。 trueに設定すると、デプロイ パッケージは Oryx を使用してリモートでビルドされます。 JavaScript、TypeScript、Python 関数アプリの場合、既定値は true です。
docker N オブジェクト Docker の構成。 コンテナー ベースのホストにのみ適用されます。 「docker」を参照してください。
k8s N オブジェクト AKS 構成オプション。 hostaksされている場合にのみ有効です。 「k8s」を参照してください。
config N オブジェクト サービスの追加の構成オプション。
uses N アレイ このサービスが依存するサービス名とリソース名の一覧。
env N オブジェクト 環境変数の名前を値にマップします。 環境変数の置換をサポートします。
apiVersion N 文字列 デプロイ用のリソース プロバイダー API のバージョン。 hostcontainerappされている場合にのみ有効です。
hooks N オブジェクト サービス レベルフック。 サービス フックを参照してください。

Tip

さまざまな サービス 構成の完全な YAML 例については、サービスサンプルを参照してください。

ホストの種類

host プロパティは、サービスの実装に使用される Azure リソースの種類を決定し、有効なその他のプロパティを制御します。

ホスト値 形容 要求 project サポート image サポート docker サポート k8s サポート env サポート apiVersion
appservice Azure App Service Y N N N N N
containerapp Azure Container Apps project または image (両方ではない) Y Y N Y Y
function Azure Functions Y N N N N N
staticwebapp Azure Static Web Apps Y N N N N N
springapp Azure Spring Apps Y N N N N N
aks Azure Kubernetes Service N N Y Y N N
ai.endpoint Azure AI オンライン エンドポイント Y N Y N N N
azure.ai.agent Azure AI エージェント Y N Y N N N

Note

springapp サポートでは、アルファ機能へのオプトインが必要です。 詳細については、「 アルファ機能」を参照してください。

Note

hostcontainerappされている場合は、imageまたはprojectを指定する必要がありますが、両方を指定する必要はありません。 imageが設定されている場合、コンテナーは指定されたイメージからデプロイされます。 projectが設定されている場合、コンテナー イメージはソースからビルドされます。

ai.endpoint 設定

(オブジェクト、 hostai.endpointされている場合に必要) Azure AI オンライン エンドポイントデプロイ用の追加の構成を提供します。

財産 必須 タイプ 形容
workspace N 文字列 AI Studio プロジェクト ワークスペースの名前。 省略すると、 azdAZUREAI_PROJECT_NAME 環境変数で指定された値を使用します。 環境変数の置換をサポートします。
flow N オブジェクト Azure AI Studio プロンプト フローの構成。 省略すると、プロンプト フローは作成されません。 AI コンポーネントの構成を参照してください。
environment N オブジェクト Azure AI Studio カスタム環境の構成。 省略すると、カスタム環境は作成されません。 AI コンポーネントの構成を参照してください。
model N オブジェクト Azure AI Studio モデルの構成。 省略すると、モデルは作成されません。 AI コンポーネントの構成を参照してください。
deployment Y オブジェクト Azure AI Studio オンライン エンドポイントのデプロイ構成。 新しいオンライン エンドポイントデプロイが作成され、正常に完了すると、トラフィックは自動的に新しいデプロイに移行されます。 AI デプロイ構成を参照してください。

Note

hostai.endpointされている場合は、projectconfigの両方が必要です。 必要な構成プロパティについては、 ai.endpoint 構成 を参照してください。

AI コンポーネントの構成
財産 必須 タイプ 形容
name N 文字列 AI コンポーネントの名前。 省略すると、 azd はコンポーネントの種類とサービス名に基づいて名前を生成します。 環境変数の置換をサポートします。
path Y 文字列 AI コンポーネント構成ファイルまたはソース コードへのパス。
overrides N オブジェクト AI コンポーネントの構成をオーバーライドするために使用されるキー値ペアのマップ。 環境変数の置換をサポートします。
AI デプロイ構成

AI コンポーネント構成からすべてのプロパティを継承します。

財産 必須 タイプ 形容
environment N オブジェクト デプロイの環境変数として設定するキーと値のペアのマップ。 値は OS と azd 環境変数の置換をサポートします。
services:
  myendpoint:
    project: ./src/endpoint
    host: ai.endpoint
    config:
      workspace: my-ai-project
      deployment:
        path: ./deployment
        environment:
          MODEL_NAME: ${AZURE_OPENAI_MODEL}

docker

(オブジェクト) サービスの Docker 構成。 コンテナー (containerappaksai.endpointazure.ai.agent) をサポートするホストにのみ適用されます。

財産 必須 タイプ 形容
path N 文字列 サービスを基準とした Dockerfile へのパス。 既定値: ./Dockerfile
context N 文字列 Docker ビルド コンテキスト。 指定すると、既定のコンテキストがオーバーライドされます。 既定値: .
platform N 文字列 プラットフォーム ターゲット。 既定値: amd64
registry N 文字列 イメージをプッシュするコンテナー レジストリ。 省略した場合、既定値は環境変数の値 AZURE_CONTAINER_REGISTRY_ENDPOINT 。 環境変数の置換をサポートします。
image N 文字列 ビルドされたコンテナー イメージに適用される名前。 省略した場合、既定値は {appName}/{serviceName}-{environmentName}。 環境変数の置換をサポートします。
tag N 文字列 ビルドされたコンテナー イメージに適用されるタグ。 省略した場合、既定値は azd-deploy-{unix time (seconds)}。 環境変数の置換をサポートします。
buildArgs N 文字列の配列 docker build コマンドに渡すビルド引数。
network N 文字列 Docker ビルド中の RUN 命令のネットワーク モード。 docker ビルドに --network として渡されます。 たとえば、 host を使用して、ビルド コンテナーがホスト ネットワークにアクセスできるようにします。
remoteBuild N boolean イメージをリモートでビルドするかどうか。 trueに設定すると、イメージは Azure Container Registry リモート ビルド機能を使用してリモートでビルドされます。 リモート ビルドが失敗した場合、 azd は Docker または Podman (使用可能な場合) を使用してローカルでのビルドに自動的にフォールバックします。

k8s

(オブジェクト) Azure Kubernetes Service (AKS) 構成オプション。 hostaksされている場合にのみ有効です。

財産 必須 タイプ 形容
deploymentPath N 文字列 サービス パスから k8s 配置マニフェストへの相対パス。 既定値: manifests
namespace N 文字列 デプロイされたリソースの k8s 名前空間。 指定すると、新しい k8s 名前空間がまだ存在しない場合に作成されます。 既定値: プロジェクト名。
deployment N オブジェクト k8s デプロイ構成。 デプロイ構成を参照してください。
service N オブジェクト k8s サービス構成。 サービス構成を参照してください。
ingress N オブジェクト k8s イングレス構成。 イングレス構成を参照してください。
helm N オブジェクト Helm の構成。 Helm の構成を参照してください。
kustomize N オブジェクト kustomize 構成。 Kustomize 構成を参照してください。
デプロイ構成
財産 必須 タイプ 形容
name N 文字列 デプロイ時に使用する k8s デプロイ リソースの名前。 設定されていない場合は、サービス名を含む同じ名前空間内のデプロイ リソースを検索します。 既定値: サービス名。
サービス構成
財産 必須 タイプ 形容
name N 文字列 既定のサービス エンドポイントとして使用する k8s サービス リソースの名前。 設定されていない場合は、サービス名を含む同じ名前空間内のサービス リソースを検索します。 既定値: サービス名。
イングレス構成
財産 必須 タイプ 形容
name N 文字列 既定のサービス エンドポイントとして使用する k8s イングレス リソースの名前。 設定されていない場合は、サービス名を含む同じ名前空間内のイングレス リソースを検索します。 既定値: サービス名。
relativePath N 文字列 イングレス コントローラーのルートからのサービスへの相対パス。 設定すると、イングレス リソース パスのルートに追加されます。
Helm config
財産 必須 タイプ 形容
repositories N アレイ 追加する Helm リポジトリ。
releases N アレイ インストールする Helm リリース。

repositories 配列項目:

財産 必須 タイプ 形容
name Y 文字列 Helm リポジトリの名前。
url Y 文字列 Helm リポジトリの URL。

releases 配列項目:

財産 必須 タイプ 形容
name Y 文字列 Helm リリースの名前。
chart Y 文字列 Helm チャートの名前。
version N 文字列 Helm チャートのバージョン。
namespace N 文字列 Helm チャートをインストールする k8s 名前空間。 既定では、サービス名前空間が使用されます。
values N 文字列 helm チャートに渡すサービスから values.yaml への相対パス。
Kustomize config
財産 必須 タイプ 形容
dir N 文字列 kustomize ディレクトリへの相対パス。 環境変数の置換をサポートします。
edits N 文字列の配列 デプロイ前に適用する kustomize 編集。 環境変数の置換をサポートします。
env N オブジェクト kustomize ディレクトリに .env ファイルを生成するために使用される環境キーと値のペア。 値は環境変数の置換をサポートします。

サービス フック

サービス レベル フックは、サービス ライフサイクル イベント中に実行されます。 フックは、 pre または postでプレフィックスが付いたサービス イベント名と一致する必要があります。 パスを指定するときは、サービス パスに対する相対パスにする必要があります。 詳細については、「コマンドとイベント フック を使用して Azure Developer CLI ワークフローをカスタマイズする」を参照してください。

サポートされているサービス フック: prerestorepostrestoreprebuildpostbuildprepackagepostpackageprepublishpostpublishpredeploypostdeploy

各フックは、 フック定義 形式を使用します。

サービス のサンプル

Docker オプションを使用したコンテナー アプリ
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
    docker:
      path: ./Dockerfile
      context: ../
  web:
    project: ./src/web
    language: js
    host: containerapp
    docker:
      remoteBuild: true
事前構築済みイメージからの Container Apps
services:
  api:
    image: myregistry.azurecr.io/myapp:latest
    host: containerapp
AKS とサービス レベル フック
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}

resources

(オブジェクト) アプリケーションによって使用される Azure リソースの定義。 各キーはリソース名であり、値はリソース構成オブジェクトです。 リソースは、 uses プロパティを使用してサービスによって参照できます。

一般的なリソース プロパティ

財産 必須 タイプ 形容
type Y 文字列 リソースの種類。 リソースの種類を参照してください。
uses N アレイ このリソースが依存するその他のリソース。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

Tip

複数 のリソース の種類を組み合わせた完全な YAML の例については、リソースのサンプルを参照してください。

リソースの種類

type プロパティは、Azure リソースの種類を決定し、使用できる追加のプロパティを制御します。

種類の値 形容 追加のプロパティ
host.appservice Azure App Service Web アプリ host.appserviceプロパティを参照してください。
host.containerapp Docker ベースのコンテナー アプリ host.containerappプロパティを参照してください。
ai.openai.model デプロイ済みのすぐに使用できる AI モデル ai.openai.modelプロパティを参照してください。
ai.project モデルを含む Microsoft Foundry プロジェクト ai.projectプロパティを参照してください。
ai.search Azure AI 検索 ai.searchプロパティを参照してください。
db.postgres Azure Database for PostgreSQL 追加のプロパティはありません。
db.mysql Azure Database for MySQL 追加のプロパティはありません。
db.redis Azure Cache for Redis 追加のプロパティはありません。
db.mongo Azure Cosmos DB for MongoDB 追加のプロパティはありません。
db.cosmos Azure Cosmos DB for NoSQL db.cosmosプロパティを参照してください。
messaging.eventhubs Azure Event Hubs 名前空間 messaging.eventhubsプロパティを参照してください。
messaging.servicebus Azure Service Bus名前空間 messaging.servicebusプロパティを参照してください。
storage Azure Storage アカウント storageプロパティを参照してください。
keyvault Azure Key Vault keyvaultプロパティを参照してください。

プロパティの host.appservice

財産 必須 タイプ 形容
port N 整数 Web アプリがリッスンするポート。 既定値: 80
runtime Y オブジェクト 言語ランタイムの構成。 以下を参照してください。
env N アレイ 環境変数。 各項目には、 name (必須)、 value、および secret プロパティがあります。 環境変数の置換をサポートします。
startupCommand N 文字列 Web アプリの起動の一部として実行されるスタートアップ コマンド。
uses N 文字列の配列 このリソースが使用するその他のリソース。

runtime オブジェクト:

財産 必須 タイプ 形容
stack Y 文字列 言語ランタイム スタック。 使用できる値: nodepython
version Y 文字列 言語ランタイムのバージョン。 形式はスタックによって異なります (たとえば、Node の場合は 22-lts 、Python の場合は 3.13 )。
resources:
  web:
    type: host.appservice
    port: 8080
    runtime:
      stack: node
      version: 22-lts
    uses:
      - db

プロパティの host.containerapp

財産 必須 タイプ 形容
port N 整数 コンテナー アプリがリッスンするポート。 既定値: 80
env N アレイ 環境変数。 各項目には、 name (必須)、 value、および secret プロパティがあります。 環境変数の置換をサポートします。
uses N 文字列の配列 このリソースが使用するその他のリソース。

プロパティの ai.openai.model

財産 必須 タイプ 形容
model Conditional オブジェクト 基になる AI モデル。 existingfalse の場合に必要です。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

model オブジェクト:

財産 必須 タイプ 形容
name Y 文字列 AI モデルの名前。
version Y 文字列 AI モデルのバージョン。
resources:
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"

プロパティの ai.project

財産 必須 タイプ 形容
models N アレイ AI プロジェクトの一部としてデプロイされる AI モデル。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

models 配列項目:

財産 必須 タイプ 形容
name Y 文字列 AI モデルの名前。
version Y 文字列 AI モデルのバージョン。
format Y 文字列 AI モデルの形式 (たとえば、 MicrosoftOpenAI)。
sku Y オブジェクト AI モデルの SKU 構成。

sku オブジェクト:

財産 必須 タイプ 形容
name Y 文字列 SKU の名前 (たとえば、 GlobalStandard)。
usageName Y 文字列 課金目的の SKU の使用名 (たとえば、 OpenAI.GlobalStandard.gpt-4o-mini)。
capacity Y 整数 SKU の容量。

プロパティの ai.search

財産 必須 タイプ 形容
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

プロパティの db.cosmos

財産 必須 タイプ 形容
containers N アレイ データを格納するコンテナー。 各コンテナーには、項目のコレクションが格納されます。

containers 配列項目:

財産 必須 タイプ 形容
name Y 文字列 コンテナーの名前。
partitionKeys Y アレイ パーティション間でデータを分散するために使用されるパーティション キー。 最大 3 つのキー。 既定値: /id

プロパティの messaging.eventhubs

財産 必須 タイプ 形容
hubs N 文字列の配列 Event Hubs 名前空間に作成するハブ名。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

プロパティの messaging.servicebus

財産 必須 タイプ 形容
queues N 文字列の配列 Service Bus 名前空間に作成するキュー名。
topics N 文字列の配列 Service Bus 名前空間に作成するトピック名。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

プロパティの storage

財産 必須 タイプ 形容
containers N 文字列の配列 Azure ストレージ アカウントのコンテナー名。
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

プロパティの keyvault

財産 必須 タイプ 形容
existing N boolean trueに設定すると、このリソースは作成されず、代わりに参照目的で使用されます。 既定値: false

リソースのサンプル

resources:
  db:
    type: db.postgres
  cache:
    type: db.redis
  chatModel:
    type: ai.openai.model
    model:
      name: gpt-4o
      version: "2024-08-06"
  web:
    type: host.containerapp
    port: 3100
    uses:
      - db
      - chatModel

pipeline

(オブジェクト) 継続的インテグレーション パイプラインの定義。

財産 必須 タイプ 形容
provider N 文字列 継続的インテグレーションに使用するパイプライン プロバイダー。 既定値: github。 使用できる値: githubazdo
variables N 文字列の配列 パイプラインで変数として使用する azd 環境変数の一覧。
secrets N 文字列の配列 パイプラインでシークレットとして使用する azd 環境変数の一覧。
pipeline:
  provider: azdo
  variables:
    - CUSTOM_SETTING
  secrets:
    - API_KEY

hooks

(オブジェクト) コマンド レベルのフック。 フックは、スクリプト azd 実行するタイミングに応じて、pre または post でプレフィックスが付いたコマンド名と一致する必要があります。 パスを指定するときは、プロジェクト パスに対する相対パスにする必要があります。 詳細については、「コマンドとイベント フック を使用して Azure Developer CLI ワークフローをカスタマイズする」を参照してください。

サポートされているコマンド フック: preprovisionpostprovisionpreinfracreatepostinfracreatepreinfradeletepostinfradeletepredownpostdownpreuppostupprepackagepostpackageprepublishpostpublishpredeploypostdeployprerestorepostrestore

各フックは、 フック定義 形式を使用します。

Tip

プラットフォーム固有 のフック 、型指定された Executor、イベントごとの複数のフックなど、完全な YAML の例については、フックのサンプルを参照してください。

hooks:
  preprovision:
    shell: sh
    run: ./scripts/setup.sh
  postdeploy:
    shell: sh
    run: azd env set APP_URL ${SERVICE_WEB_ENDPOINT_URL}

フック定義

フックには、1 つのフック オブジェクトまたはフック オブジェクトの配列を指定できます。 各フック オブジェクトには、次のプロパティがあります。

財産 必須 タイプ 形容
run Conditional 文字列 スクリプトのインライン スクリプトまたは相対パス。 shellkinddirinteractivecontinueOnErrorsecrets、またはconfigを指定するときに必要です。 インライン スクリプトを指定する場合は、使用する shell も指定する必要があります。 ファイル パスを使用すると、シェルが自動的に推論されます。
shell N 文字列 スクリプトを実行するシェルの種類。 既定値: sh。 使用できる値: shpwsh
kind N 文字列 フック スクリプトの Executor の種類。 省略すると、 run パスのファイル拡張子から種類が自動検出されます (たとえば、 .pypythonになり、 .ps1pwshになります)。 使用できる値: shpwshjstspythondotnet
dir N 文字列 フック実行用の作業ディレクトリ。 依存関係インストールのプロジェクト ルートとして使用され、スクリプトの実行時に作業ディレクトリとして使用されます。 相対パスは、プロジェクトまたはサービス ルートから解決されます。 省略すると、既定でスクリプト ファイルを含むディレクトリが使用されます。
continueOnError N boolean スクリプト エラーが azd コマンドを停止するかどうかを指定します。 既定値: false
interactive N boolean スクリプトを対話モードで実行するかどうか、実行中のコンソールの stdinstdout、および stderr にバインドします。 既定値: false
windows N オブジェクト 指定すると、Windows 環境で実行されるときにフック構成がオーバーライドされます。 同じフック オブジェクト形式を使用します。
posix N オブジェクト 指定すると、POSIX (Linux および macOS) 環境で実行されるときにフック構成がオーバーライドされます。 同じフック オブジェクト形式を使用します。
secrets N オブジェクト シークレットをフックする azd 環境変数のマップ。 変数が環境内でシークレットとして設定されている場合、シークレット値はフックに渡されます。
config N オブジェクト Executor 固有の構成。 使用可能なプロパティは、 kind 値によって異なります。 フック実行プログラムの構成を参照してください。

Note

windowsposixの両方を指定すると、runshellkinddirinteractivecontinueOnErrorsecrets、およびconfigのプロパティを最上位レベルで使用することはできません。 代わりにプラットフォーム固有のオブジェクトを使用してください。

フック実行プログラムの構成

config プロパティは、kind値に応じて異なるプロパティを受け入れます。

JavaScript と TypeScript (jsts) の構成

財産 必須 タイプ 形容
packageManager N 文字列 依存関係のインストールに使用するパッケージ マネージャー。 ロック ファイルからの自動検出をオーバーライドします。 許可値: npmpnpmyarn

Python 構成

財産 必須 タイプ 形容
virtualEnvName N 文字列 Python 仮想環境のディレクトリ名。 既定では、自動検出 (.venvvenv) または {baseName}_env

.NET (dotnet) 構成

財産 必須 タイプ 形容
configuration N 文字列 フック スクリプトをビルドするための MSBuild 構成 (たとえば、 DebugRelease)。
framework N 文字列 フック スクリプトをビルドして実行するためのターゲット フレームワーク モニカー (たとえば、 net8.0net10.0)。

シェル (shpwsh) 構成

シェル Executor は現在、 config プロパティをサポートしていません。

フックのサンプル

プラットフォーム固有のフック

hooks:
  preprovision:
    windows:
      shell: pwsh
      run: ./scripts/setup.ps1
    posix:
      shell: sh
      run: ./scripts/setup.sh

種類付きの Python フック

hooks:
  postprovision:
    kind: python
    run: ./scripts/seed-data.py
    dir: ./scripts
    config:
      virtualEnvName: .venv

1 つのイベントに対する複数のフック

hooks:
  postprovision:
    - shell: sh
      run: ./scripts/step1.sh
    - shell: sh
      run: ./scripts/step2.sh

requiredVersions

(オブジェクト) 必要なバージョンの azd と拡張機能の追加の構成を提供します。

財産 必須 タイプ 形容
azd N 文字列 このプロジェクトでサポートされている azd のバージョンの範囲。 azdのバージョンがこの範囲外の場合、プロジェクトの読み込みに失敗します。 semver 範囲構文をサポートします。
extensions N オブジェクト このプロジェクトに必要な拡張機能とバージョン制約のマップ。 semver 制約をサポートします。 バージョンを省略すると、最新バージョンがインストールされます。
requiredVersions:
  azd: ">= 0.6.0-beta.3"
  extensions:
    azure.ai.agents: ">=1.0.0"
    my-extension: latest

state

(オブジェクト) 状態管理の追加の構成を提供します。

財産 必須 タイプ 形容
remote N オブジェクト リモート状態管理用の追加の構成を提供します。 「state.remote」を参照してください。

state.remote

財産 必須 タイプ 形容
backend Y 文字列 リモート状態バックエンドの種類。 既定値: AzureBlobStorage。 使用できる値: AzureBlobStorage
config Conditional オブジェクト バックエンド固有の構成。 backendAzureBlobStorage の場合に必要です。 Azure Blob Storage の構成を参照してください。

Azure Blob Storage の構成

財産 必須 タイプ 形容
accountName Y 文字列 Azure Storageアカウント名。
containerName N 文字列 Azure Storage コンテナー名。 既定値は、指定されていない場合はプロジェクト名です。
endpoint N 文字列 Azure Storage エンドポイント。 既定値: blob.core.windows.net
state:
  remote:
    backend: AzureBlobStorage
    config:
      accountName: mystorageaccount
      containerName: azd-state

platform

(オブジェクト) Azure デベロッパー センターなどのプラットフォーム固有の機能の追加構成を提供します。

財産 必須 タイプ 形容
type Y 文字列 プラットフォームの種類。 使用できる値: devcenter
config N オブジェクト プラットフォーム固有の構成。 デベロッパー センターの構成を参照してください。

デベロッパー センターの構成

typedevcenterされている場合に使用できます。

財産 必須 タイプ 形容
name N 文字列 Azure デベロッパー センターの名前。 このプロジェクトの既定のデベロッパー センターとして使用されます。
project N 文字列 Azure デベロッパー センター プロジェクトの名前。
catalog N 文字列 Azure デベロッパー センター カタログの名前。
environmentDefinition N 文字列 デベロッパー センター カタログ環境定義の名前。
environmentType N 文字列 デプロイ環境に使用されるデベロッパー センター プロジェクト環境の種類。
platform:
  type: devcenter
  config:
    name: my-devcenter
    project: my-project
    catalog: my-catalog
    environmentDefinition: my-env-def
    environmentType: dev

workflows

(オブジェクト)azd up動作のオーバーライドなど、ワークフローの追加の構成を提供します。

財産 必須 タイプ 形容
up N オブジェクトまたは配列 指定すると、 azd up ワークフローの既定の動作がオーバーライドされます。

ワークフローのステップ

up ワークフローは、steps配列を受け取ります (または、配列として直接指定することもできます)。 各ステップでは、 azd コマンドが実行されます。

財産 必須 タイプ 形容
azd Y 文字列またはオブジェクト 実行する azd コマンド。 文字列 (たとえば、 provision) または args 配列を持つオブジェクトを指定できます。

ワークフロー ステップの順序を構成する

次の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: package
      - azd: deploy --all

cloud

(オブジェクト) Azure Government などのソブリン クラウドにデプロイするための追加の構成を提供します。 既定のクラウドは AzureCloudです。

財産 必須 タイプ 形容
name N 文字列 クラウド環境の名前。 許可値: AzureCloudAzureChinaCloudAzureUSGovernment
cloud:
  name: AzureUSGovernment

ヘルプを要求する

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

次の手順