SpyBara
Go Premium

github-actions-cloud-providers.md 2026-09-27 23:59 UTC to 2026-09-28 22:01 UTC

This page contains 1 addition and 1 deletion.

2026
Sat 12 03:02 Fri 18 23:58 Mon 28 22:59

使用 Claude Code GitHub Actions 搭配雲端提供者

透過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 執行 Claude Code GitHub Actions,而不是使用 Claude API

Claude Code GitHub Actions 預設會呼叫 Claude API。若要改為透過您自己的雲端帳戶路由推論,請設定 Claude Code GitHub Action 的 provider 輸入,並設定您的雲端以信任工作流程的 OpenID Connect (OIDC) 權杖。工作流程會使用該權杖進行驗證,因此您無需在儲存庫中儲存長期的雲端認證。

選擇您的提供者

Claude Code GitHub Action 支援三個提供者,以下設定步驟僅在雲端側設定上有所不同。請使用您的組織已經擁有 Claude 模型存取權的提供者。您可以在 anthropics/claude-code-action 步驟的 with: 區塊中使用一個輸入來告訴 Claude Code GitHub Action 要使用哪個提供者:

  • Amazon Bedrock:use_bedrock: "true"
  • Google Cloud 的 Agent Platform:use_vertex: "true"
  • Microsoft Foundry:use_foundry: "true"

設定整合 下的完整工作流程範例已經包含了每個提供者的輸入。

先決條件

在開始之前,您需要:

  • 對執行 Claude Code GitHub Action 的儲存庫的管理員存取權,以安裝 GitHub App 並新增密鑰
  • 在您的雲端帳戶中建立身分識別資源的權限:AWS 上的 IAM 角色和 OIDC 身分識別提供者、Google Cloud 上的 Workload Identity Federation 資源和服務帳戶,或 Azure 上的 Microsoft Entra 應用程式
  • 在您的提供者上擁有 Claude 模型存取權:

設定整合

除了先決條件外,您需要建立四項內容:Claude Code GitHub Action 的 GitHub 身分識別、雲端側信任設定、儲存庫密鑰和工作流程檔案。以下步驟將逐一說明每一項。

1

選擇 GitHub 身分識別

Claude Code GitHub Action 透過 GitHub 身分識別推送提交並發佈評論。快速設定 會為此安裝官方 Claude GitHub App。使用雲端提供者時,您可以自己選擇身分識別:

  • 官方 Claude GitHub App:在儲存庫上安裝它,或如果已經安裝,請跳到下一步
  • 自訂 GitHub App:當您只想要 Claude Code GitHub Action 使用的三個權限,而不是官方應用程式的完整集合時,建立您自己的應用程式
  • GitHub 的自動 GITHUB_TOKEN:無需建立或安裝應用程式,但 GitHub 不會在使用它進行的提交上觸發您的 CI 工作流程

第四步中的工作流程範例使用自訂應用程式進行驗證。該步驟也說明了其他兩個選項要變更的內容。

若要建立自訂應用程式,請註冊新的 GitHub App,並停用 Webhook,因為此整合不使用它們。授予它三個儲存庫權限:

  • Contents:讀取和寫入
  • Issues:讀取和寫入
  • Pull requests:讀取和寫入

註冊應用程式後,產生私密金鑰並保留下載的 .pem 檔案,從應用程式的設定頁面記下應用程式 ID,並在執行 Claude Code GitHub Action 的儲存庫上安裝應用程式。您將在第三步中將金鑰和 ID 新增為密鑰。

2

設定雲端驗證

設定您的雲端以信任 GitHub 向工作流程發出的 OIDC 權杖,以便每次工作流程執行都能獲得短期的雲端認證。每個標籤中的項目符號總結了要建立的內容,每個標籤都連結到雲端廠商自己的主控台級步驟指南。

按照 AWS 建立 OIDC 身分識別提供者指南,在您的 AWS 帳戶中建立信任設定:

  • 新增 GitHub OIDC 身分識別提供者,提供者 URL 為 https://token.actions.githubusercontent.com,對象為 sts.amazonaws.com
  • 建立由該提供者信任的 IAM 角色作為網路身分識別,並附加來自 IAM 設定 的範圍調用原則,該原則授予 bedrock:InvokeModel、bedrock:InvokeModelWithResponseStream、bedrock:ListInferenceProfiles 和 bedrock:GetInferenceProfile,以及兩個 aws-marketplace 訂閱動作
  • 使用主體條件(例如 repo:your-org/your-repo:*)將角色的信任原則限制在您的儲存庫。請參閱 GitHub 的 OIDC 強化指南以了解聲明格式

記下角色的 ARN。您將在下一步中將其新增為密鑰。

3

新增儲存庫密鑰

在執行 Claude Code GitHub Action 的儲存庫中,為您的提供者新增密鑰,如果您在第一步中建立了自訂 GitHub App,還要新增兩個應用程式密鑰。請參閱 GitHub 的 在 GitHub Actions 中使用密鑰指南。

密鑰 需要用於 值
AWS_ROLE_TO_ASSUME Amazon Bedrock IAM 角色的 ARN
GCP_WORKLOAD_IDENTITY_PROVIDER Google Cloud 的 Agent Platform 提供者的完整資源名稱
GCP_SERVICE_ACCOUNT Google Cloud 的 Agent Platform 服務帳戶的電子郵件地址
AZURE_CLIENT_ID Microsoft Foundry Entra 應用程式的用戶端 ID
AZURE_TENANT_ID Microsoft Foundry 您的 Microsoft Entra 租用戶 ID
AZURE_SUBSCRIPTION_ID Microsoft Foundry 您的 Azure 訂閱 ID
APP_ID 自訂 GitHub App GitHub App 的 ID
APP_PRIVATE_KEY 自訂 GitHub App .pem 私密金鑰檔案的內容
4

建立工作流程檔案

為您的提供者建立工作流程檔案,例如 .github/workflows/claude.yml。每個範例都會回應 @claude 提及,使用自訂應用程式向 GitHub 進行驗證,並包含 id-token: write 權限,GitHub 需要此權限來發出 OIDC 權杖,您的雲端提供者可以將其交換為認證。

如果您在第一步中選擇了不同的 GitHub 身分識別,請調整範例:

  • 官方 Claude GitHub App:刪除「產生 GitHub App 權杖」步驟和 github_token 行
  • GitHub 的自動權杖:刪除權杖產生步驟,並將 github_token 行變更為 github_token: ${{ secrets.GITHUB_TOKEN }}

將 aws-region 值替換為您自己的值。認證步驟會將其匯出為 AWS_REGION,供工作的其餘部分使用。

name: Claude PR Action

permissions:
contents: write
pull-requests: write
issues: write
id-token: write

on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened]

jobs:
claude-pr:
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Generate GitHub App token
id: app-token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}

- name: Configure AWS Credentials (OIDC)
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: us-west-2

- uses: anthropics/claude-code-action@v1
with:
github_token: ${{ steps.app-token.outputs.token }}
use_bedrock: "true"
claude_args: '--model us.anthropic.claude-sonnet-4-6'

使用任何提供者,您可以透過將 --max-turns 新增到 claude_args 來限制執行長度和成本。請參閱管理成本。

5

測試設定

在問題或 PR 評論中提及 @claude,然後在儲存庫的 Actions 標籤中觀看執行。Claude 會在同一問題或 PR 上的評論中回覆。

疑難排解

失敗的執行通常會在以下兩個地方之一中斷:

  • 驗證錯誤:通常是 OIDC 設定錯誤。檢查工作流程是否包含 id-token: write 權限、信任設定的儲存庫條件是否與您的儲存庫完全相符,以及工作流程中的密鑰名稱是否與您新增的名稱相符
  • 觸發和 CI 問題:這些的行為與 Claude Code GitHub Action 呼叫 Claude API 時相同。請參閱主頁的疑難排解部分和 Claude Code GitHub Action 的 FAQ

接下來