🦔
Google Vertex AI経由でClaude Code Actionを実行する完全ガイド
概要
Claude Code GitHub ActionsをGoogle Vertex AI経由で実行することで、エンタープライズ環境でのデータの所在地と請求を制御しながら、AIを活用した自動化機能を利用できます。
前提条件
1. Google Cloud Platform の準備
- Vertex AIが有効なGoogle Cloudプロジェクト
- GitHub Actions用のWorkload Identity Federation設定
- 必要な権限を持つサービスアカウント
- Claude Sonnet 3.7とClaude Haiku 3.5へのアクセス権
2. リージョン要件
- 現在、
us-east5
リージョンのみサポート - プロジェクトにこのリージョンでのクォータが割り当てられていることを確認
セットアップ手順
ステップ1: GCP認証の設定
1.1 標準的なGCP認証情報の設定
gcloud auth application-default login
1.2 Workload Identity Federationの設定(GitHub Actions用)
GCPコンソールまたはCLIで以下を設定:
- Workload Identity Poolの作成
- GitHub OIDCプロバイダーの追加
- サービスアカウントへのロールバインディング
ステップ2: 環境変数の設定
2.1 基本的な環境変数
# Google Vertex AI接続設定
export ANTHROPIC_VERTEX_PROJECT_ID="your-gcp-project-id"
export ANTHROPIC_VERTEX_REGION="us-east5"
# モデル設定(オプション)
export CLAUDE_CODE_ENDPOINT="vertex"
export CLAUDE_CODE_PRIMARY_MODEL="claude-opus-4-20250514"
export CLAUDE_CODE_ASSISTANT_MODEL="claude-sonnet-4-20250514"
2.2 プロンプトキャッシング無効化時の追加設定
export ANTHROPIC_VERTEX_ENABLE_PROMPT_CACHING=false
ステップ3: GitHubアプリの作成(推奨)
3.1 カスタムGitHubアプリの作成
-
以下の情報を入力:
- GitHub App名: 一意の名前(例:「YourOrg Claude Assistant」)
- ホームページURL: 組織のウェブサイトまたはリポジトリURL
- Webhooks: 「Active」のチェックを外す
-
必要な権限を設定:
- Contents: Read & Write
- Issues: Read & Write
- Pull requests: Read & Write
-
アプリを作成後:
- 秘密鍵(.pemファイル)を生成してダウンロード
- App IDをメモ
3.2 アプリのインストール
- アプリ設定ページから「Install App」をクリック
- 対象のリポジトリを選択してインストール
ステップ4: GitHubシークレットの設定
リポジトリの設定 → Secrets and variables → Actionsで以下を追加:
4.1 GCP認証用シークレット
-
GCP_WORKLOAD_IDENTITY_PROVIDER
: Workload Identity ProviderのID -
GCP_SERVICE_ACCOUNT
: サービスアカウントのメールアドレス
4.2 GitHubアプリ用シークレット(カスタムアプリ使用時)
-
APP_ID
: GitHubアプリのID -
APP_PRIVATE_KEY
: 秘密鍵(.pem)の内容
ステップ5: GitHub Actionsワークフローの作成
.github/workflows/claude-vertex.yml
ファイルを作成:
name: Claude Code with Vertex AI
on:
issue_comment:
types: [created]
pull_request_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
issues: write
pull-requests: write
steps:
# カスタムGitHubアプリトークンの生成
- name: Generate GitHub App Token
id: app-token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
# リポジトリのチェックアウト
- uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
# GCP認証
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v2
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
# Claude Code Actionの実行
- uses: anthropics/claude-code-action@v1
env:
# Vertex AI設定
ANTHROPIC_VERTEX_PROJECT_ID: ${{ vars.GCP_PROJECT_ID }}
ANTHROPIC_VERTEX_REGION: us-east5
CLAUDE_CODE_ENDPOINT: vertex
# モデル設定(オプション)
CLAUDE_CODE_PRIMARY_MODEL: claude-opus-4-20250514
CLAUDE_CODE_ASSISTANT_MODEL: claude-sonnet-4-20250514
# プロンプトキャッシング設定(オプション)
ANTHROPIC_VERTEX_ENABLE_PROMPT_CACHING: true
with:
github_token: ${{ steps.app-token.outputs.token }}
prompt: |
@claudeメンションのコメントに基づいて対応してください。
リポジトリのCLAUDE.mdファイルのガイドラインに従ってください。
max_turns: 10
timeout_minutes: 30
allowed_tools: |
- 'Bash(npm install)'
- 'Bash(npm test)'
- 'str_replace_editor'
高度な設定
プロキシ経由での接続
プロキシサーバー経由で接続する場合:
env:
ANTHROPIC_VERTEX_BASE_URL: "https://your-proxy-server.com/vertex"
# プロキシが独自の認証を管理する場合
CLAUDE_CODE_SKIP_VERTEX_AUTH: true
設定ファイルでの管理
環境変数の代わりに設定ファイルを使用する場合、.claude-code/config.json
を作成:
{
"env": {
"ANTHROPIC_VERTEX_PROJECT_ID": "your-project-id",
"ANTHROPIC_VERTEX_REGION": "us-east5",
"CLAUDE_CODE_ENDPOINT": "vertex"
}
}
APIキーヘルパーの設定(動的認証)
起動時に動的にトークンを取得する場合:
{
"apiKeyHelper": "path/to/your/auth-script.sh",
"env": {
"CLAUDE_CODE_API_KEY_HELPER_TTL_MS": "3600000"
}
}
セキュリティのベストプラクティス
1. 明示的なツール許可
ワイルドカードを避け、具体的なコマンドを指定:
allowed_tools: |
- 'Bash(npm install)'
- 'Bash(npm test)'
- 'str_replace_editor'
# 避けるべき例: 'Bash(*)'
2. 適切な権限の設定
GitHub Actionsのpermissionsを必要最小限に:
permissions:
id-token: write # GCP認証用
contents: write # コード変更用
issues: write # Issue操作用
pull-requests: write # PR操作用
3. タイムアウトとターン数の制限
max_turns: 10 # 過剰な繰り返しを防ぐ
timeout_minutes: 30 # 暴走を防ぐ
トラブルシューティング
1. 認証エラー
- GCPプロジェクトIDとリージョンが正しいか確認
- サービスアカウントに必要な権限があるか確認
- Workload Identity Federationが正しく設定されているか確認
2. モデルアクセスエラー
- Claude Sonnet 3.7とClaude Haiku 3.5の両方にアクセス権があるか確認
- us-east5リージョンでクォータが割り当てられているか確認
3. レート制限
- Googleにレート制限の引き上げを依頼
- ワークフローの同時実行を制限
使用例
課題をPRに変換
@claude この課題の説明に基づいて実装を作成し、PRを作成してください。
コードレビュー
# プルリクエスト作成時の自動レビュー
on:
pull_request:
types: [opened, synchronize]
バグ修正
@claude このエラーを修正して、テストが通るようにしてください。
コスト最適化
- 特定の@claudeコマンドを使用して不要なAPI呼び出しを削減
- max_turnsを適切に設定して過剰な繰り返しを防ぐ
- プロンプトキャッシングを有効化してコストを削減
- CLAUDE.mdファイルでプロジェクト固有のガイドラインを定義
Discussion