Claude on Foundry 入門套件可透過 Azure Developer CLIazd()將 Anthropic Claude 模型部署至 Microsoft Foundry。 它也幫助你設定本地認證,並從 Claude Code 或 Python 呼叫已部署的模型。
在本文中,您將學會如何:
- 使用 Bicep 版本的入門套件,將 Claude Sonnet 部署到 Microsoft Foundry。
- 設定所需的 Anthropic 模型-提供者證明值。
- 將 Claude Code 設定為使用 Foundry 託管的模型。
- 使用 Microsoft Entra ID,從 Python 呼叫已部署的 Claude 模型。
- 可依 Terraform、更多模型族、其他區域或其他容量自訂部署方式。
Important
使用此入門套件執行 azd up 即表示接受 Anthropic Marketplace 條款,並會隨請求一併傳送證明值 CLAUDE_ORGANIZATION_NAME、CLAUDE_COUNTRY_CODE 和 CLAUDE_INDUSTRY。 設定用模型描述真實組織的數值。 詳情請參閱 使用條款。
快速入門
這條「快樂路徑」透過使用 Bicep eastus2 以容量25(每分鐘 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 將 Contoso、US 和 technology 替換為實際組織的值。 如果你的帳號無法建立角色指派,跳過 ASSIGN_RBAC 並讓管理員授權模型調用權限再執行範例。
驗證並執行 Claude 程式碼
在儲存庫根目錄中,驗證已產生的設定與部署狀態。 跳過旗標可避免在進行驗證時發出即時的 Claude 呼叫。
cd ..
pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall -WaitForDeployment
. .\claude-code.env.ps1
claude
執行 Python 範例
將輸出寫入 .env.localazd,安裝相依性,並使用 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 範例。 它也包含針對常見 Marketplace、市集區域及配額問題的事前檢查,讓你能在佈建前先排除阻礙。 更多細節請參閱「部署所創造的內容」並「自訂部署」。
先決條件
- 可在 Microsoft Foundry 中部署 Anthropic Claude 模型的 Azure 訂閱。 Claude 模型的可用性取決於訂閱類型、帳單狀態、區域以及 Anthropic 支援的區域。
- 建立和管理目標 Azure 資源的權限。 你通常必須在訂閱或目標資源群組上具有
Contributor或Owner。 - 可進入 Azure Marketplace 以獲取合作夥伴模式的服務。
- Azure CLI。
- Azure 開發人員 CLI。
- Git。
- Python 範例需使用 Python 3.10 以上版本。
- 如果您選擇 Terraform 變體,則需使用 Terraform 1.6 以上版本。
Tip
該倉庫也支援 GitHub Codespaces 和 VS Code 開發容器。 這些環境包含必要的開發工具,所以如果你不想在本地安裝 az、 和 azdPython,這些環境是不錯的選擇。
部署所創造的
入門套件會建立以下資源與本地設定檔:
- 一個用於
azd環境的 Azure 資源群組。 - 一個 Microsoft Foundry 帳號。
- 一個 Microsoft Foundry 專案。
- 在 Foundry 帳號中部署一個或多個 Claude 模型。
- 模型叫用時的可選角色指派。
- 在 repo 根節點放置本地 Claude Code 啟用腳本。
- Claude 工作區設定,將 Claude Code 釘選到已部署的模型族。
- 當您設定
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 前,先檢查即時的 Claude 目錄。 這個輔助工具在入門套件中僅支援 PowerShell。
pwsh -File .\Get-ClaudeCatalog.ps1 -Latest
目錄會隨時間改變。 使用腳本輸出確認你計畫部署區域內可用的 Claude 型號 ID。
選擇基礎設施變體
入門套件包含兩種等效的基礎設施變體:
| 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"
請將範例值替換為貴組織的法人名稱、兩字母國家代碼及產業。 入門套件提供國家和產業的預設值,但除非準確UStechnology描述使用 Claude 的組織,否則會覆蓋這些值。
產業值必須為小寫。 支援的值為:
technologyfinancehealthcareeducationretailmanufacturinggovernmentmediaother
設定 Azure 區域:
azd env set AZURE_LOCATION "eastus2"
入門套件支援所選 Claude 模型可用的區域。 快速入門使用 eastus2。 對於常見的全系列部署,eastus2 和 swedencentral 目前承載 Haiku、Sonnet 和 Opus。
westus2 支援 Sonnet 和 Opus。 可用性可能會變動,如果你不確定目標區域有哪些型號家族可用,請使用 live catalog 腳本。
部署更多模型系列或變更容量
若要進行首次的簡單部署,只部署 Sonnet,請使用每個產品家族的首選變數:
azd env set CLAUDE_SONNET_MODEL "claude-sonnet-4-6"
要將多個模型族部署到同一個 Foundry 帳號中,請設定一個或多個族變數:
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_MODEL、 CLAUDE_SONNET_MODEL、 CLAUDE_OPUS_MODEL 皆為空時使用。
快速啟動將 Sonnet 容量設定為 25。 若要覆蓋任何已部署家庭的容量,請設定匹配容量變數:
azd env set CLAUDE_SONNET_CAPACITY 25
容量值以每分鐘數千個代幣計算。 例如,25 請求 25,000 TPM。
設定模型叫用權限
為了讓 Microsoft Entra ID 範例在部署後立即生效,請在 之前設定ASSIGN_RBAC=trueazd 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 User 或 Azure AI Developer。
使用azd up部署
執行部署:
azd up
該 azd up 指令執行以下任務:
- 會針對所需設定、市集目錄的可用性及配額餘量進行事前檢查。
- 建立 Azure 資源群組。
- 建立 Microsoft Foundry 帳號與專案。
- 部署所選的 Claude 模型系列。
- 可選擇性地指派模型調用角色。
- 會寫入輸出值,例如
CLAUDE_BASE_URL、CLAUDE_DEPLOYMENT_NAME以及各系列的部署名稱。 - 執行 postprovision hook 來設定 Claude Code 啟用檔。
部署可能需要數分鐘的時間。 即使 ARM 部署作業因逾時而返回,模型部署仍可繼續進行佈建。 如果發生這種情況,請使用下一節的驗證腳本檢查實際部署狀態,再重新執行 azd up。
驗證部署
從 repo 根執行驗證腳本:
cd ..
pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall
若要等待仍在配置中的模型部署,請新增等待標記:
pwsh -File .\scripts\verify-claude-code.ps1 -SkipClaudeCall -WaitForDeployment
若要包含即時的 Claude Code 完整往返流程,請省略 skip 旗標:
pwsh -File .\scripts\verify-claude-code.ps1
驗證腳本會檢查產生的啟用器、預期的環境變數、Azure CLI 登入、可見的 Foundry 資源、模型部署狀態,以及 Claude Code CLI 可用性。
在已部署的模型中使用 Claude 程式碼
使用 Claude Code CLI
預設情況下,入門套件會在倉庫根目錄撰寫專案範圍的啟動腳本和 Claude 工作區設定:
-
claude-code.env.ps1適用於 PowerShell。 -
claude-code.env.sh適用於 Bash、macOS、Linux、Git Bash 或 WSL。 - 透過 Claude 工作區設定,將 Claude Code 固定至你已部署的模型系列。
. .\claude-code.env.ps1
claude
啟用器會設定 Claude Code 以使用 Microsoft Foundry,並為你部署的模型族設定部署名稱。 對於每個已部署的系列,postprovision 鉤子都會將 ANTHROPIC_DEFAULT_<FAMILY>_MODEL 值寫入 activator,讓 Claude Code 能在這些部署存在的情況下路由至 Haiku、Sonnet 或 Opus。 Claude 工作區設定會將工作區的預設模型固定為已部署的模型系列,因此 claude 會對應到你 Foundry 帳戶中已有的模型。
如果沒有安裝該 claude 指令,Postprovision 鉤子會為你的平台印出安裝指令。 要讓入門套件在配置時自動安裝 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
啟用此選項後,postprovision hook 會將 claudeCode.environmentVariables 和 claudeCode.disableLoginPrompt 寫入或合併到 .vscode/settings.json 中,讓擴充功能使用你的 Foundry 部署,而不是提示你登入 Anthropic 帳號。
用 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_URL 和 CLAUDE_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
對於服務、常駐程式、Notebook 或其他執行時間可能長於單一 Microsoft Entra ID 權杖存留期限的處理程序,請使用權杖重新整理範例。
進階:用 API 金鑰測試
一般開發和生產情境請使用 Microsoft Entra ID。 為了快速本地測試,該倉庫也包含 API 金鑰範例。
從 repo 根目錄,切換到 infrastructure variant 資料夾,取得 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 區塊。 該區塊包含 organizationName、 countryCode、 industry和 。 認知服務資源提供者會使用這些值,代表您接受 Azure Marketplace 上 Anthropic Claude 的供應項目,因此在 azd up 期間不需要另外手動點選確認。
部署前:
- 透過 Microsoft Foundry 檢視管理 Claude 的法律文件:
- Anthropic 商業服務條款。
- Anthropic 使用 政策,也稱為可接受使用政策。
- Anthropic 支持的區域政策。
- Microsoft Product Terms for Azure.
- 設定認證值,使其能準確描述您的組織:
-
CLAUDE_ORGANIZATION_NAME: 法人名稱。 此值為必需且無預設值。 -
CLAUDE_COUNTRY_CODE:兩字母國家代碼。 入門套組的預設是US。 -
CLAUDE_INDUSTRY:組織產業。 入門套組的預設是technology。
-
- 確認您的 Azure 訂閱是否符合在 Microsoft Foundry 中部署 Anthropic Claude 模型的資格。
如果國家或產業的預設設定無法準確描述使用 Claude 的組織,部署前先覆蓋它們。
預覽 Foundry 在手動流程中顯示的對話方塊,並在 azd up 之後稽核接受情況
Azure 入口網站中適用於 Claude SKU 的「同意並繼續」對話方塊,是根據 Marketplace 供應項目的即時中繼資料產生的。 由於 Marketplace 上的文字內容可能會變動,請使用你計劃部署之 SKU 的即時刊載頁面,而不要依賴複製的快照。
- Sonnet 4.6:https://azuremarketplace.microsoft.com/en-us/marketplace/apps/anthropic.anthropic-claude-sonnet-4-6-offer
- Opus 4.6: https://azuremarketplace.microsoft.com/en-us/marketplace/apps/anthropic.anthropic-claude-opus-4-6-offer
- 俳句 4.5: https://azuremarketplace.microsoft.com/en-us/marketplace/apps/anthropic.anthropic-claude-haiku-4-5-offer
- Anthropic 的所有方案:https://azuremarketplace.microsoft.com/en-us/marketplace/apps?search=anthropic
之後azd up,你可以使用 Azure CLI 審核已接受的市場協議元資料。 指令會回傳中繼資料,例如已接受的狀態、簽章、日期和授權文字連結。 它不會回傳完整的入口對話文字。
az term show `
--publisher anthropic `
--product anthropic-claude-sonnet-4-6-offer `
--plan <plan-name>
對於其他 Claude SKU,請將 --product 的值替換為相符的 Marketplace 優惠方案。 使用來自即時優惠中繼資料或入門套件目錄檢查中的方案名稱。
故障排除
更多案例請參考 入門套件故障排除章節。
| Problem | 可嘗試的項目 |
|---|---|
訂閱或優惠資格限制 azd up |
請確認您的訂閱與帳單帳號是否符合 Microsoft Foundry 中 Claude 型號的資格。 如果您的組織明確要求市場接受,請在重新執行azd up前接受匹配的 Anthropic 報價。 |
| 所選模型不適用於此區域 | 使用所選 Claude 系列可用的區域。 快速入門使用 eastus2;swedencentral 也常提供 Haiku、Sonnet 和 Opus,而 westus2 提供 Sonnet 和 Opus。 可用性可能會變動,所以如果不確定,可以從 repo 根執行 pwsh -File .\Get-ClaudeCatalog.ps1 -Latest 。 |
| 配額不足,或配額似乎已滿卻沒有實際部署 | 降低配對 CLAUDE_*_CAPACITY 值、刪除未使用的部署,或要求增加配額。 已虛刪除的 Foundry 或 AIServices 帳戶最多可保留 TPM 配額達 48 小時;使用 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 來尋找已刪除的帳號並清除不再需要的帳號。