Important
この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。
azd ai agent init --infraまたはazd ai agent init --infra=bicepを実行すると、Azure Developer CLI (azd) は、Bicep テンプレートを含むinfra/ ディレクトリをプロジェクトにスキャフォールディングします。 これらのテンプレートは、azure.yamlで宣言されたサービスからホストされるエージェントが必要とするAzure リソースを定義します。
azd provisionを実行すると、テンプレートがデプロイされ、インフラストラクチャが作成されます。 この記事では、これらのテンプレートがプロビジョニングする内容と、テンプレートをカスタマイズする方法について説明します。
プロビジョニングされる項目
既定では、 azd ai agent init はコードとしてのインフラストラクチャ ファイルを作成しません。
--infraまたは--infra=bicepを使用して、Bicepインフラストラクチャを追加します。
--infra=terraformを使用して Terraform インフラストラクチャを追加し、infra.provider: terraformを設定します。
Bicepインフラストラクチャを追加すると、テンプレートは azd-ai-starter-basic リポジトリに基づいて、次のAzure リソースを作成します。
| Resource | Purpose |
|---|---|
| リソース グループ | すべてのリソースを整理します。
rg-<agent-name> という名前です。 |
| AI サービス アカウント | Microsoft Foundry アカウント。 |
| 鋳造プロジェクト | エージェントと AI の機能をホストします。 |
| モデルの展開 | エージェントが使用するモデル ( gpt-4.1-miniなど)。 |
| Azure Container Registry | エージェント コンテナー イメージを格納します。 |
| Application Insights | エージェントのパフォーマンスの監視とテレメトリ。 |
| Log Analytics ワークスペース | ログ収集の一元化。 |
| マネージド ID | Microsoft Entra ID に対してエージェント ID ブループリントを認証し、プラットフォーム ロールの割り当てを保持している、プロジェクトのシステム割り当て ID。 |
テンプレートは、 azure.yamlで宣言されているサービスと依存関係に基づいて、条件付きでさらに多くのリソースを作成します。
- 機能ホスト -- Foundry プロジェクトでのホスト型エージェントのデプロイをサポートします。 会話のカスタム ストレージが必要な場合に作成されます。
- Grounding with Bing または Grounding with Bing Custom Search -- Web 検索ツール向け。
- Azure AI 検索 -- 検索グラウンディング用。
- Azure Storage -- ファイル操作用。
プロジェクト構造
infra/
|-- main.bicep # Main deployment template (subscription-scoped)
|-- main.parameters.json # Parameter bindings to azd environment variables
|-- abbreviations.json # Naming convention abbreviations
\-- core/
|-- ai/ # Foundry account, project, and connections
|-- host/ # Container registry
|-- monitor/ # Application Insights and Log Analytics
|-- search/ # Azure AI Search (conditional)
\-- storage/ # Azure Storage (conditional)
パラメーターのフロー方法
main.parameters.json ファイルは、azd環境変数をBicepパラメーターにマップします。
{
"environmentName": { "value": "${AZURE_ENV_NAME}" },
"location": { "value": "${AZURE_LOCATION}" },
"aiFoundryResourceName": { "value": "${AZURE_AI_ACCOUNT_NAME}" },
"aiProjectDeploymentsJson": { "value": "${AI_PROJECT_DEPLOYMENTS=[]}" }
}
azd provision 中に、azd は環境 (${VAR}) からこれらの .azure/<env>/.env 参照を解決して、Bicep デプロイに渡します。 Foundry プロジェクト エンドポイント、モデル デプロイ名、コンテナー レジストリ エンドポイントなどのデプロイからの出力は、 azd deploy、 azd ai agent run、および azd ai リソース コマンドで使用するために環境に書き戻されます。
既存のリソース
Bicep テンプレートは、新しいリソースを作成する代わりに、既存のAzure リソースへの接続をサポートします。 これは、チームが既に共有インフラストラクチャを持っている場合に便利です。
| 既存のリソース | 設定する環境変数 |
|---|---|
| AI サービス アカウント | AZURE_AI_ACCOUNT_NAME |
| Container Registry |
AZURE_CONTAINER_REGISTRY_RESOURCE_ID および AZURE_CONTAINER_REGISTRY_ENDPOINT |
| Application Insights |
APPLICATIONINSIGHTS_CONNECTION_STRING および APPLICATIONINSIGHTS_RESOURCE_ID |
azd env setを実行する前に、これらの変数をazd provisionで設定します。
インフラストラクチャをカスタマイズする
infra/ ディレクトリは標準のazd インフラストラクチャであるため、完全に制御できます。 リソースを追加または変更するには:
-
infra/main.bicepを編集するか、infra/core/の下に新しいモジュールを追加します。 -
main.parameters.jsonバインドを使用して${VAR}に新しいパラメーターを追加します。 -
azdを使用して、対応するazd env set環境変数を設定します。 -
azd provisionを実行して、変更を適用します。
Bicep ファイルに対する変更は、デプロイ間で保持されます。
リージョンの制限
main.bicep テンプレートは、ホストされているエージェントがサポートされているリージョンにlocationを制限します。 許可リストにないリージョンにデプロイする必要がある場合は、@allowedでmain.bicepデコレーターを更新します。