Bicep または Terraform を使用して Microsoft Foundry に Claude モデルをデプロイする

Foundry Starter Kit の Claude は、Azure Developer CLI (azd) を使用して、Microsoft Foundry にAnthropic Claude モデルをデプロイするのに役立ちます。 また、ローカル認証を構成し、Claude Code または Python からデプロイされたモデルを呼び出すのにも役立ちます。

この記事では、次の方法について説明します。

  • スターター キットのBicepバリアントを使用して、Claude Sonnet を Microsoft Foundry にデプロイします。
  • 必要な Anthropic モデル プロバイダーの認証値を構成します。
  • Foundry でホストされるモデルを使用するように Claude Code を構成します。
  • Microsoft Entra IDを使用して、Pythonからデプロイされた Claude モデルを呼び出します。
  • Terraform、追加のモデル ファミリ、別のリージョン、または異なる容量向けにデプロイをカスタマイズする。

Important

このスターター キットでazd upを実行すると、Anthropic Marketplace の利用規約に同意したものとみなされ、アテステーション値 CLAUDE_ORGANIZATION_NAMECLAUDE_COUNTRY_CODECLAUDE_INDUSTRY がリクエストとともに送信されます。 モデルを使用して実際の組織を記述する値を設定します。 詳細については、「 使用条件」を参照してください。

クイックスタート

この「ハッピーパス」では、eastus2 で Bicep を使用し、容量 25(1 分あたり 25,000 トークン)で Claude Sonnet をデプロイします。 最初にこれを使用して、稼働中のデプロイに移動し、Terraform、複数のモデル ファミリ、別のリージョン、または異なる容量が必要な場合は、 デプロイをカスタマイズ するに移動します。

Microsoft Foundry のAnthropic Claudeの対象となるAzure サブスクリプション、ターゲット リソースを作成するためのアクセス許可、Azure CLI、Azure Developer CLI、Git、および Python 3.10 以降が必要です。 アカウントでロールの割り当てを作成できる場合、クイック スタートでは、サンプルをすぐに実行できるように、ユーザー モデル呼び出しアクセス権も付与されます。

複製、構成、デプロイ

Claude の対象となるサブスクリプションが既定以外のテナントにある場合は、両方のサインイン コマンドにテナント ID を追加します。

git clone https://github.com/Azure-Samples/claude.git
cd claude\infra-bicep

az login
azd auth login

azd env new my-claude
azd env set CLAUDE_ORGANIZATION_NAME "Contoso"
azd env set CLAUDE_COUNTRY_CODE "US"
azd env set CLAUDE_INDUSTRY "technology"
azd env set AZURE_LOCATION "eastus2"
azd env set CLAUDE_SONNET_MODEL "claude-sonnet-4-6"
azd env set CLAUDE_SONNET_CAPACITY 25
azd env set ASSIGN_RBAC true

azd up

Claude を使用して、 ContosoUS、および technology を実際の組織の値に置き換えます。 アカウントでロールの割り当てを作成できない場合は、 ASSIGN_RBAC スキップし、サンプルを実行する前に管理者にモデル呼び出しアクセス権を付与します。

Claude Code を確認して実行する

リポジトリ ルートから、生成された構成とデプロイの状態を確認します。 skip フラグは、検証中のライブ クロード呼び出しを回避します。

cd ..
pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall -WaitForDeployment

. .\claude-code.env.ps1
claude

Python サンプルを実行する

azd出力を.env.localに書き込み、依存関係をインストールし、Microsoft Entra IDを使用してワンショット サンプルを実行します。

cd infra-bicep
azd env get-values | Out-File -Encoding utf8 ..\.env.local
cd ..
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
python src\hello_claude.py

スターター キットが役立つしくみ

スターター キットは、Bicepまたは Terraform を使用して Claude のデプロイを自動化します。 Microsoft Entra IDのローカル認証を構成し、動作する Claude Code とPythonサンプルを提供します。 また、一般的なマーケットプレース、リージョン、クォータの問題のプレフライト チェックも含まれているため、プロビジョニング前に阻害要因を修正できます。 詳細については、「 デプロイで作成される内容 」および「 デプロイのカスタマイズ」を参照してください

前提条件

  • Microsoft Foundry にAnthropic Claude モデルをデプロイする資格があるAzure サブスクリプション。 Claude モデルの可用性は、サブスクリプションの種類、課金の状態、リージョン、サポートされているリージョンAnthropicによって異なります。
  • ターゲット Azure リソースを作成および管理するためのアクセス許可。 通常、サブスクリプションまたはターゲット リソース グループに Contributor または Owner が必要です。
  • パートナーのモデル提供向け Azure Marketplace へのアクセス
  • Azure CLI
  • Azure Developer CLI
  • Git
  • Python サンプルには、Python 3.10 以降が必要です。
  • Terraform バリアントを選択した場合は、Terraform 1.6 以降。

Tip

リポジトリでは、Codespaces と VS Code Dev Containers GitHubもサポートされています。 これらの環境には必要な開発者ツールが含まれているため、azazd、Pythonをローカルにインストールしない場合に適しています。

デプロイで作成されるもの

スターター キットは、次のリソースとローカル構成ファイルを作成します。

  • azd環境のAzure リソース グループ。
  • Microsoft Foundry アカウント。
  • Microsoft Foundry プロジェクト。
  • Foundry アカウント内の 1 つ以上の Claude モデルのデプロイ。
  • モデル呼び出し用の省略可能なロールの割り当て。
  • リポジトリ ルートのローカル Claude Code アクティベーター スクリプト。
  • 配置されたモデル ファミリに Claude Code をピン留めする Claude ワークスペースの構成。
  • CLAUDE_WRITE_VSCODE_SETTINGS=trueを設定するときの VS Code 拡張機能のオプション設定。
  • azd 環境出力 (Foundry アカウント名、ベース URL、プロジェクト エンドポイント、デプロイ名など)。

デプロイをカスタマイズする

このセクションは、Terraform の使用、別のリージョンの選択、複数の Claude ファミリのデプロイ、容量の変更など、クイック スタート パスを変更する場合に使用します。 既にクイック スタートを完了している場合は、「デプロイされたモデルで Claude Code を使用する」または「Pythonから Claude を呼び出す」に進むことができます。

スターター キットを複製する

スターター キットを複製し、リポジトリに変更します。

git clone https://github.com/Azure-Samples/claude.git
cd claude

必要に応じて、モデル ID を選択する前に、ライブ クロード カタログを調べます。 このヘルパーは、スターター キットでは PowerShell 専用です。

pwsh -File .\Get-ClaudeCatalog.ps1 -Latest

カタログは時間の経過と同時に変化します。 スクリプト出力を使用して、デプロイする予定のリージョンで使用可能な Claude モデル ID を確認します。

インフラストラクチャバリアントを選択する

スターター キットには、次の 2 つの同等のインフラストラクチャ バリアントが含まれています。

Variant Folder 次の場合に使用します。
Bicep infra-bicep Azure ネイティブの「インフラストラクチャ アズ コード」を使用します。
Terraform infra-terraform Terraform を優先し、既に Terraform ワークフローを使用しています。

バリアント フォルダーのいずれかに変更します。

cd infra-bicep

または:

cd infra-terraform

この記事の残りのコマンドは、選択したバリアント フォルダーから実行されます。

Azure にサインインする

Azure CLI と Azure Developer CLI の両方を使用してサインインします。

az login
azd auth login

Claude の対象となるサブスクリプションが既定以外のテナントにある場合は、テナントを指定します。

az login --tenant <tenant-id>
azd auth login --tenant-id <tenant-id>

azd環境を作成する

デプロイ構成を格納する azd 環境を作成します。

azd env new my-claude

すでに環境を作成している場合は、代わりにその環境を選択してください:

azd env select my-claude

必要なデプロイ値を構成する

Claude モデル プロバイダー構成証明に使用する組織の値を設定します。

azd env set CLAUDE_ORGANIZATION_NAME "Contoso"
azd env set CLAUDE_COUNTRY_CODE "US"
azd env set CLAUDE_INDUSTRY "technology"

例の値を、組織の法人名、2 文字の国コード、業界に置き換えます。 スターターキットには国と業界のデフォルト値が用意されていますが、US国と業界technology が Claude を使用する組織を正確に表していない限り、それらの値は上書きしてください。

業界の値は小文字にする必要があります。 サポートされる値は次のとおりです。

  • technology
  • finance
  • healthcare
  • education
  • retail
  • manufacturing
  • government
  • media
  • other

Azureリージョンを設定します。

azd env set AZURE_LOCATION "eastus2"

スターター キットは、選択したクロード モデルが使用可能なリージョンをサポートします。 クイック スタートでは、 eastus2を使用します。 一般的なオール ファミリー 展開の場合、現在、 eastus2swedencentral は Haiku、Sonnet、Opus をホストしています。 westus2 は Sonnet と Opus を提供します。 可用性は変更される可能性があるため、ターゲット リージョンで使用可能なモデル ファミリがわからない場合は、ライブ カタログ スクリプトを使用します。

より多くのモデル ファミリをデプロイするか、容量を変更する

単純な最初のデプロイの場合は、優先されるファミリごとの変数を使用して Sonnet のみをデプロイします。

azd env set CLAUDE_SONNET_MODEL "claude-sonnet-4-6"

複数のモデル ファミリを同じ Foundry アカウントにデプロイするには、1 つ以上のファミリ変数を設定します。

azd env set CLAUDE_HAIKU_MODEL "claude-haiku-4-5"
azd env set CLAUDE_SONNET_MODEL "claude-sonnet-4-6"
azd env set CLAUDE_OPUS_MODEL "<opus-model-id-from-catalog>"

空でない各ファミリ変数は、個別のデプロイを作成します。 スキップするには、ファミリを未設定のままにします。 以前の CLAUDE_MODEL_NAME 設定は従来の単一展開フォールバックであり、 CLAUDE_HAIKU_MODELCLAUDE_SONNET_MODELCLAUDE_OPUS_MODEL がすべて空の場合にのみ使用されます。

クイック スタートでは、Sonnet 容量が 25に設定されます。 デプロイされたファミリの容量をオーバーライドするには、一致する容量変数を設定します。

azd env set CLAUDE_SONNET_CAPACITY 25

容量の値は、1 分あたり数千のトークンで測定されます。 たとえば、 25 は 25,000 TPM を要求します。

モデル呼び出しアクセスの構成

Microsoft Entra IDサンプルをデプロイ直後に機能させるには、ASSIGN_RBAC=trueの前にazd upを設定します。 このテンプレートでは、Foundry アカウントの最小特権Cognitive Services Userロールが、azdを通じて提供AZURE_PRINCIPAL_IDプリンシパル ID に割り当てられるため、通常は独自のオブジェクト ID を検索する必要はありません。

azd env set ASSIGN_RBAC true

別のユーザーまたはサービス プリンシパルへのアクセス権を付与する必要がある場合にのみ、 AZURE_PRINCIPAL_ID を手動で設定します。

azd env set AZURE_PRINCIPAL_ID "<object-id>"
azd env set ASSIGN_RBAC true

このオプションを有効にしない場合でも、リソースをデプロイできます。 ただし、Microsoft Entra IDサンプルでモデルを呼び出すには、ユーザーまたは管理者がモデル呼び出しのアクセス許可を付与する必要があります。

スターター キットは、キーレス モデル呼び出しの最小特権ロールであるため、 Cognitive Services User を割り当てます。 エージェントやエバリュエーターなど、後でより広範な Foundry プロジェクト機能を追加する予定の場合は、 Foundry UserAzure AI Developer などのより広範なデータ プレーン ロールを個別に付与できます。

azd up を使用してデプロイする

デプロイを実行します。

azd up

azd up コマンドは、次のタスクを実行します。

  1. 必要な設定、マーケットプレース カタログの可用性、クォータの余裕について事前チェックを実行します。
  2. Azure リソース グループを作成します。
  3. Microsoft Foundry アカウントとプロジェクトを作成します。
  4. 選択したクロード モデル ファミリを展開します。
  5. 必要に応じて、モデル呼び出しロールを割り当てます。
  6. CLAUDE_BASE_URLCLAUDE_DEPLOYMENT_NAME、ファミリごとの展開名などの出力値を書き込みます。
  7. プロビジョニング後フックを実行して、Claude Code アクティベーター ファイルを構成します。

デプロイには数分かかることがあります。 モデルデプロイは、ARM デプロイ操作でタイムアウトが返された後もプロビジョニングを続行できます。 その場合は、次のセクションの検証スクリプトを使用して、 azd upを再実行する前に実際のデプロイ状態を確認します。

デプロイメントを確認する

リポジトリのルートから、検証スクリプトを実行します。

cd ..
pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall

まだプロビジョニング中のモデルのデプロイが完了するまで待機するには、待機フラグを追加します。

pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall -WaitForDeployment

ライブ クロード コードのラウンド トリップを含めるには、スキップ フラグを省略します。

pwsh -File .\scripts\verify-claude-code.ps1

検証スクリプトは、生成されたアクティベーター、予期される環境変数、Azure CLIサインイン、表示されている Foundry リソース、モデルデプロイの状態、および Claude Code CLI の可用性を確認します。

デプロイされたモデルで Claude Code を使用する

Claude Code CLI を使用する

既定では、スターター キットはプロジェクト スコープのアクティベーター スクリプトと Claude ワークスペース構成をリポジトリ ルートに書き込みます。

  • claude-code.env.ps1 PowerShell の場合。
  • claude-code.env.sh Bash、macOS、Linux、Git Bash、または WSL の場合。
  • デプロイしたモデル ファミリに Claude Code をピン留めするための Claude ワークスペース構成。
. .\claude-code.env.ps1
claude

アクティベーターは、Microsoft Foundry を使用するように Claude Code を構成し、デプロイしたモデル ファミリのデプロイ名を設定します。 デプロイされた各ファミリについて、ポストプロビジョニング フックはアクティベーターに ANTHROPIC_DEFAULT_<FAMILY>_MODEL 値を書き込みます。そのため、Claude Code は、デプロイが存在する場合に Haiku、Sonnet、または Opus にルーティングできます。 Claude ワークスペース構成では、ワークスペースが既定でデプロイされたファミリにピン留めされるため、 claude は Foundry アカウントに存在するモデルに解決されます。

claude コマンドがインストールされていない場合は、プロビジョニング後フックによってプラットフォームのインストール コマンドが出力されます。 プロビジョニング中にスターター キットに Claude Code を自動的にインストールするには、 azd up実行する前にこの値を設定します。

azd env set CLAUDE_CODE_AUTO_INSTALL true

省略可能: VS Code 拡張機能を構成する

スターター キットでは、既定では .vscode/settings.json は書き込まれません。 Claude Code VS Code 拡張機能を使用していて、スターター キットに設定させたい場合は、azd upの前にオプトインしてください。

azd env set CLAUDE_WRITE_VSCODE_SETTINGS true

このオプションを有効にすると、プロビジョニング後にフックによってclaudeCode.environmentVariablesclaudeCode.disableLoginPrompt.vscode/settings.jsonに書き込まれるかマージされるため、拡張機能はAnthropic アカウントログインを求める代わりに Foundry デプロイを使用します。

Pythonから Claude を呼び出す

リポジトリには、srcの下Pythonサンプルが含まれています。 これらを使用して、Anthropic SDK とMicrosoft Entra IDを使用してアプリケーション スタイルのアクセスをテストします。

リポジトリ ルートから、インフラストラクチャバリアント フォルダーに戻り、 azd 出力をリポジトリ ルートで .env.local に書き込みます。

cd infra-bicep # or: cd infra-terraform
azd env get-values | Out-File -Encoding utf8 ..\.env.local

次に、仮想環境を作成し、依存関係をインストールします。

cd ..
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt

ワンショット サンプルを実行します。

python src\hello_claude.py

このサンプルでは、CLAUDE_BASE_URLCLAUDE_DEPLOYMENT_NAMEを読み込み、https://ai.azure.com/.defaultのMicrosoft Entra ID トークンを取得し、Foundry ベース URL を使用してAnthropic クライアントを作成し、Messages API 要求を送信します。

ストリーミングと実行時間の長いバリアントを試すこともできます。

python src\chat_stream.py
python src\hello_claude_token_refresh.py

1 つのMicrosoft Entra ID トークンの有効期間より長く実行される可能性があるサービス、デーモン、ノートブック、またはその他のプロセスには、トークン更新のサンプルを使用します。

詳細: API キーを使用してテストする

通常の開発および運用シナリオでは、Microsoft Entra IDを使用します。 迅速なローカル テストのために、リポジトリには API キーサンプルも含まれています。

リポジトリ のルートから、インフラストラクチャバリアント フォルダーに移動し、Foundry アカウント名とリソース グループを取得します。

cd infra-bicep # or: cd infra-terraform
azd env get-values

出力の FOUNDRY_ACCOUNT_NAME 値と AZURE_RESOURCE_GROUP 値を使用して、 CLAUDE_API_KEYを設定します。 次に、リポジトリ のルートから API キーサンプルを実行します。

$env:CLAUDE_API_KEY = (az cognitiveservices account keys list `
  --name "<foundry-account-name>" `
  --resource-group "<resource-group-name>" `
  --query key1 -o tsv)

cd ..
python src\hello_claude_apikey.py

API キーは、迅速な接続チェックに役立ちますが、Microsoft Entra IDと同じユーザーごとのアクセス制御と資格情報ライフサイクルの利点は提供されません。

使用条件

Bicepと Terraform の両方のバリアントは、各 Claude デプロイでmodelProviderData ブロックを送信します。 このブロックには、 organizationNamecountryCode、および industryが含まれます。 Cognitive Services リソース プロバイダーは、これらの値を使用して、お客様に代わって Anthropic Claude の Azure Marketplace のオファーに同意するため、azd up の際に別途手動でクリックして同意する操作は不要です。

デプロイする前に、次の手順を実行します。

  1. Microsoft Foundry を通じてクロードを管理する法的文書を確認します。
  2. 証明の値が組織を正確に表すように設定します。
    • CLAUDE_ORGANIZATION_NAME: 法人名。 この値は必須であり、既定値はありません。
    • CLAUDE_COUNTRY_CODE: 2 文字の国コード。 スターター キットの既定値は US です。
    • CLAUDE_INDUSTRY: 組織業界。 スターター キットの既定値は technology です。
  3. Azure サブスクリプションが、Microsoft Foundry にAnthropic Claude モデルをデプロイする資格があることを確認します。

国または業界の既定値が Claude を使用する組織を正確に表していない場合は、デプロイする前にそれらを上書きしてください。

手動パスで Foundry に表示されるダイアログをプレビューし、後で受け入れを監査する azd up

Claude SKU の Azure ポータルの [同意して続行] ダイアログは、ライブ Marketplace オファーのメタデータから生成されます。 Marketplace のテキストは変更される可能性があるため、コピーしたスナップショットに依存するのではなく、デプロイする予定の SKU のライブ リストを使用します。

azd upしたら、Azure CLIを使用して、受け入れられた Marketplace 契約のメタデータを監査できます。 このコマンドは、受け入れられた状態、署名、日付、ライセンス テキスト リンクなどのメタデータを返します。 ポータルの完全なダイアログ テキストは返されません。

az term show `
  --publisher anthropic `
  --product anthropic-claude-sonnet-4-6-offer `
  --plan <plan-name>

その他の Claude SKU の場合は、 --product の値を一致する Marketplace オファーに置き換えます。 ライブ オファーのメタデータまたはスターター キット カタログのチェックからプラン名を使用します。

Troubleshooting

その他のケースについては、 スターター キットのトラブルシューティングに関するセクションを参照してください

問題 何を試すか
サブスクリプションまたはオファーの利用資格の制限 azd up サブスクリプションと課金アカウントが、Microsoft Foundry の Claude モデルの対象であることを確認します。 組織で Marketplace への明示的な同意が必要な場合は、azd upを再実行する前に、一致するAnthropic オファーを受け入れます。
選択したモデルではリージョンを使用できません 選択したクロード ファミリが使用可能なリージョンを使用します。 クイック スタートでは、 eastus2を使用します。 swedencentral は一般的に Haiku、Sonnet、Opus をホストし、 westus2 は Sonnet と Opus をホストします。 可用性は変更される可能性があるため、不明な場合は、リポジトリ ルートから pwsh -File .\Get-ClaudeCatalog.ps1 -Latest を実行します。
クォータが不十分であるか、ライブ デプロイなしでクォータがいっぱいに表示される 一致する CLAUDE_*_CAPACITY 値を下げるか、未使用のデプロイを削除するか、クォータの引き上げを要求します。 ソフト削除された Foundry または AIServices アカウントは、最大 48 時間にわたって TPM クォータを予約できます。az cognitiveservices account list-deleted -o table でそれらを一覧表示し、不要になったアカウントを消去してください。
Terraform が不透明な 715-123420 エラーで失敗する 論理削除されたアカウントが保有するクオータも含め、これをクオータ超過の可能性が高いものとして扱います。 スターター キットの事前チェックを実行し、クオータの余裕を確認するか、容量を減らすか、あるいは Bicep バリアントで再試行して、より明確な InsufficientQuota メッセージを表示させます。
Claude Code または Python が 401 または 403 を返す az login実行し、Foundry リソースを所有するテナントにサインインしていることを確認し、呼び出し元にCognitive Services Userなどのモデル呼び出しアクセス権があることを確認します。 新しい RBAC の割り当てが反映されるまでに数分かかる場合があります。
GatewayTimeout モデルのデプロイ中に表示される モデルのデプロイは、ARM 操作がタイムアウトした後も続行できます。 azd up再実行する前に、 -WaitForDeployment または --wait-for-deployment を使用して検証スクリプトを実行し、実際のデプロイの状態を確認します。

リソースをクリーンアップする

リソースが不要になったら、インフラストラクチャのバリアント フォルダーから azd down を使用してリソースを削除します。

cd infra-bicep
azd down

または:

cd infra-terraform
azd down

確認する前に、削除する予定 azd リソースを確認します。 環境を削除すると、スターター キットによって作成された Foundry アカウント、プロジェクト、およびモデルのデプロイが削除されます。

デプロイを繰り返していて、予約済みの Claude TPM クォータをすぐに戻す必要がある場合は、 azd バージョンでサポートされている場合は、消去オプションを使用します。

azd down --purge

消去を行わないと、論理的に削除された Foundry または AIServices アカウントは、TPM クォータを最大 48 時間保持し続けることができます。 削除せずに既に環境を削除してもクォータがいっぱいになった場合は、 az cognitiveservices account list-deleted -o table を使用して削除されたアカウントを検索し、不要になったアカウントを消去します。

次のステップ