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 Redisazddbなど、新しいリソースの名前を入力します。? Input the name of the app database (PostgreSQL)アプリにサービスが含まれている場合、
azdは、このリソースを使用するサービスを選択するように求められます。? Select the service(s) that uses this resource > [✓] webfrontendazdは、azure.yamlファイルに必要な変更のプレビューを生成します。 Enter キーを押して変更を受け入れて適用します。Previewing changes to azure.yaml: + azddata: + type: db.postgres webfrontend: type: host.containerapp uses: - azddb + - azddata port: 80azd 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 サービスの間で