新しい Azure Developer CLI (azd) テンプレートを構築するか、既存のテンプレートから開始した後、要件の変化に応じてアプリケーションとインフラストラクチャを拡張および進化させることができます。 このチュートリアルでは、テンプレートが既に提供しているモジュールに依存せずに、新しい Azure サービスをテンプレートに追加する方法について説明します。
hello-azd テンプレートから始めて、Azure Translator リソースを定義するBicep モジュールを作成し、テンプレートのインフラストラクチャ エントリ ポイントからモジュールを参照し、その出力をazd環境の値として公開します。 このチュートリアルでは、インフラストラクチャの拡張に重点を置き、アプリケーション コードは変更しません。
Note
次の変更は、直接行うか、AI コーディング アシスタントの助けを借りて行うことができます。 作成方法に関係なく、結果のファイルを確認し、デプロイ前にテンプレートを検証します。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- Azure Developer CLI がインストールされています。
- Azure サブスクリプション。
- サブスクリプション内で Azure リソースを作成するためのアクセス許可。
- 初期化されたテンプレートの空のディレクトリ。
テンプレートを初期化する
空のディレクトリでターミナルを開き、そのディレクトリ内の hello-azd テンプレートを初期化します。
azd init --template hello-azd .
テンプレートには次のものが含まれます。
-
azure.yamlのacaサービスとしてAzure Container Appsにデプロイされた C# アプリケーション。 - アプリケーション用のユーザー割り当てのマネージド ID。
- BLOB コンテナーとテーブルを持つAzure Storage アカウント。
- Azure Container RegistryとAzure Container Apps環境。
-
infra/coreの再利用可能なBicep モジュール。
初期化前のテンプレートの選択と確認のガイダンスについては、「既存の テンプレートから開始する」を参照してください。
Translator モジュールを作成する
手動または AI コーディング アシスタントの支援を得て、 infra/translator.bicepという名前のファイルを作成します。 この新しいモジュールは自己完結型であり、開始テンプレートのモジュールには依存しません。
@description('Name of the Azure Translator resource.')
param name string
@description('Azure region for the resource.')
param location string
@description('Tags to apply to the resource.')
param tags object = {}
@description('Pricing tier for Azure Translator.')
@allowed([
'F0'
'S1'
])
param sku string = 'F0'
resource translator 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
name: name
location: location
kind: 'TextTranslation'
sku: {
name: sku
}
properties: {
customSubDomainName: name
disableLocalAuth: true
publicNetworkAccess: 'Enabled'
}
tags: tags
}
output name string = translator.name
output endpoint string = translator.properties.endpoint
モジュールは、 TextTranslation リソースの種類を使用し、ローカル キー認証を無効にします。
F0 レベルは評価に役立ちますが、サブスクリプションごとに無料の Translator リソースは 1 つだけ許可されます。 サブスクリプションに既にF0 リソースが含まれている場合、またはプロジェクトに有料レベルが必要な場合は、S1を使用します。
Important
この入門例では、パブリック エンドポイントを有効にして、ネットワーク インフラストラクチャを追加せずにリソースをプロビジョニングできるようにします。 運用環境でこのパターンを使用する前に、プライベート エンドポイント、ネットワーク アクセス制御、監視、組織のセキュリティ要件を評価します。
からモジュールを参照する main.bicep
hello-azd テンプレートでは、rgリソース グループ、location、tags、resourceTokenの値をinfra/main.bicepで定義します。 この編集は手動で行うか、AI アシスタントに追加を求めることができます。
rg リソース宣言の後に、次のモジュールを追加します。
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
scope プロパティは、テンプレートによって作成されるリソース グループにモジュールをデプロイします。 既存の resourceToken 値により、Translator リソース名が環境ごとに異なります。
Translator の出力をエクスポートする
infra/main.bicepの最後に次の出力を追加します。
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
プロビジョニング後、 azd はアクティブな環境でこれらの非セキュリティ出力をキャプチャします。 後でアプリケーション コードを変更すると、これらの値を使用して Translator リソースを見つけることができます。
インフラストラクチャをプロビジョニングして確認する
アプリケーション コードをデプロイせずに、テンプレートのインフラストラクチャをプロビジョニングします。
azd provision
azd env get-valuesを実行し、出力にAZURE_TRANSLATOR_NAMEとAZURE_TRANSLATOR_ENDPOINTが含まれていることを確認します。 Azure ポータルで、リソース グループにAzure Translator リソースが含まれていることを確認します。
この時点で、テンプレートは AI サービスをプロビジョニングしますが、サンプル アプリケーションはそれに接続しません。 その統合を完了するには、アプリケーションのマネージド ID の最小特権アクセスを構成し、エンドポイントをアプリケーションに渡して、Translator クライアントをアプリケーション コードに追加します。 詳細については、Azure Translatorドキュメントを参照してください。
リソースをクリーンアップする
リソースが不要になったら、リソースを削除して、継続的な料金が発生しないようにします。
azd down --purge
関連するコンテンツ
ヘルプを要求する
Azure Developer CLI のバグの報告、ヘルプの要求、または新機能の提案の方法については、トラブルシューティングとサポートページを参照してください。