Azure Developer CLI (azd
) の合成 (作成) 機能を使用すると、Bicep コードを手動で記述することなく、アプリに必要な Azure リソースを段階的に作成できます。 この記事では、作成機能を使用して最小限のテンプレートを作成する方法について説明します。 この機能に関するコンセプトの詳細は、azd
コンポーズ概要の記事をご覧ください。
注
azd
作成機能は現在アルファ版であり、運用アプリでは使用しないでください。 以降のリリースでアルファ機能を変更すると、破壊的変更が発生する可能性があります。 詳細については、 azd 機能のバージョン管理とリリース戦略 と 機能ステージ のページを参照してください。 右上の [ フィードバック ] ボタンを使用して、 compose
機能とこの記事に関するフィードバックを共有します。
作成機能を使用する
azd
コマンドを使用して、azd add
作成機能にアクセスします。
azd add
コマンドは、次のazd init
ワークフローを使用して作成されたテンプレートで動作します。
- 現在のディレクトリでコードを使用する (ホスティング用の Azure Container Apps を対象とするアプリの場合)
- 最小限のプロジェクトを作成する
テンプレートの選択フローを使用して初期化されたテンプレートは、現在サポートされていません。
azd
作成機能はインフラストラクチャを管理し、既存のinfra
フォルダー資産を持つテンプレートと互換性がありません。 詳細については、 Bicep コードの生成 に関する記事と テンプレート作成ワークフロー のページを参照してください。
コードを記述せずにテンプレートに新しいリソースを追加するには、次の手順を実行します。
ターミナル ウィンドウで、
azd
テンプレートのルートに移動します。azd add
コマンドを実行して新しいリソースを追加し、作成ワークフローを開始します。azd add
アプリに追加するサポートされているリソースのいずれかを選択します。 この例では、[
Database
] を選択します。? What would you like to add? [Use arrows to move, type to filter] > AI Database Host service Key Vault Messaging Storage account ~Existing resource
データベースの種類として、
PostgreSQL
を選択します。? Which type of database? [Use arrows to move, type to filter] MongoDB > PostgreSQL Redis
azddb
など、新しいリソースの名前を入力します。? Input the name of the app database (PostgreSQL)
アプリにサービスが含まれている場合、
azd
は、このリソースを使用するサービスを選択するように求められます。? Select the service(s) that uses this resource > [✓] webfrontend
azd
は、azure.yaml
ファイルに必要な変更のプレビューを生成します。 Enter キーを押して変更を受け入れて適用します。Previewing changes to azure.yaml: + azddata: + type: db.postgres webfrontend: type: host.containerapp uses: - azddb + - azddata port: 80
azd up
コマンドを実行して、azd add
コマンドを使用して行った変更をプロビジョニングします。 この例では、azd
は Azure で PostgreSQL データベースをプロビジョニングします。azd add
コマンドをもう一度実行して、OpenAI サービスなどの他のリソースを追加します。
azure.yaml ファイルを調べる
azure.yaml
は azd
によってアプリを管理するために使用される構成ファイルです。
azd
は、対応するazd add
ノードとservices
ノードを使用して、resources
コマンドで構成されたサービスとリソースを管理します。
azure.yaml
によって完全に更新されたazd add
ファイルの次の例を考えてみましょう。
name: azdcomposesample
metadata:
template: azd-init@1.11.0
services:
webfrontend:
project: src
host: containerapp
language: dotnet
resources:
webfrontend:
type: host.containerapp
port: 80
uses:
- azdsql
- azdchat
azdsql:
type: db.postgres
azdchat:
type: ai.openai.model
model:
name: gpt-4o
version: "2024-08-06"
-
services
ノードは次を宣言します。-
webfrontend
ディレクトリ内の .NET Web アプリと Azure Container Apps の間でsrc
という名前のデプロイ マッピング。
-
-
resources
ノードは次を宣言します。- Azure コンテナー アプリと、ホストされている .NET コンテナー アプリと、それが依存するデータベースと AI サービスの間で
webfrontend
という名前の一致する依存関係マッピング。uses
ノードは、依存している他のリソースにアプリをマップします。 -
azdsql
という名前の Azure Database for PostgreSQL リソース。 -
azdchat
という名前の Azure OpenAI リソース。
- Azure コンテナー アプリと、ホストされている .NET コンテナー アプリと、それが依存するデータベースと AI サービスの間で