概述
为了简化 Claude Code + AWS Bedrock 的配置过程,我们提供了 macOS 和 Windows 的一键配置方案,让用户无需手动设置复杂的环境变量。
注意:要使用AWS Bedrock请联系AWS的销售来开通权限,这种方法适合企业用户。不适合预算20美元/月的用户。
macOS 一键配置方案
方案1:自动配置脚本
创建一个自动配置脚本,用户只需运行一次即可完成所有设置:
#!/bin/bash
# claude-bedrock-setup.sh - Claude Code Bedrock 一键配置脚本
echo "🚀 Claude Code + AWS Bedrock 一键配置向导"
echo "========================================"
# 步骤1: 检查并安装 AWS CLI
echo ""
echo "📦 步骤1: 检查必要工具..."
if ! command -v aws &> /dev/null; then
echo "❌ AWS CLI 未安装,正在安装..."
if command -v brew &> /dev/null; then
echo "✅ 检测到 Homebrew,使用 Homebrew 安装 AWS CLI..."
brew install awscli
else
echo "❌ Homebrew 未安装"
echo ""
echo "请选择安装方式:"
echo " [1] 先安装 Homebrew,然后安装 AWS CLI(推荐)"
echo " [2] 直接使用官方安装包安装 AWS CLI"
read -p "请选择 [1-2]: " install_choice
case $install_choice in
1)
echo "正在安装 Homebrew..."
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 验证 Homebrew 安装
if command -v brew &> /dev/null; then
echo "✅ Homebrew 安装成功"
echo "正在使用 Homebrew 安装 AWS CLI..."
brew install awscli
else
echo "❌ Homebrew 安装失败,改用官方安装包..."
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
echo "请输入管理员密码以安装 AWS CLI:"
sudo installer -pkg AWSCLIV2.pkg -target /
rm AWSCLIV2.pkg
fi
;;
2)
echo "使用官方安装包安装 AWS CLI..."
echo "正在下载 AWS CLI..."
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
echo "请输入管理员密码以安装 AWS CLI:"
sudo installer -pkg AWSCLIV2.pkg -target /
rm AWSCLIV2.pkg
;;
*)
echo "无效选择,使用官方安装包..."
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
echo "请输入管理员密码以安装 AWS CLI:"
sudo installer -pkg AWSCLIV2.pkg -target /
rm AWSCLIV2.pkg
;;
esac
fi
# 验证安装
echo ""
echo "🔍 验证 AWS CLI 安装..."
if command -v aws &> /dev/null; then
echo "✅ AWS CLI 安装成功: $(aws --version)"
else
echo "❌ AWS CLI 安装失败"
echo ""
echo "请尝试以下解决方案:"
echo "1. 手动下载安装:https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html"
echo "2. 如果使用了官方安装包,可能需要重新打开终端"
echo "3. 检查 PATH 环境变量是否包含 AWS CLI"
echo ""
read -p "手动安装完成后,按 Enter 继续,或 Ctrl+C 退出..."
# 再次验证
if ! command -v aws &> /dev/null; then
echo "❌ 仍然无法检测到 AWS CLI,请手动安装后重新运行此脚本"
exit 1
else
echo "✅ AWS CLI 现在可用了"
fi
fi
else
echo "✅ AWS CLI 已安装: $(aws --version)"
fi
# 检查 Claude Code
if ! command -v claude &> /dev/null; then
echo "❌ Claude Code 未检测到"
echo ""
echo "请选择安装方式:"
echo " [1] npm 安装(需要 Node.js)"
echo " [2] Homebrew 安装(仅 macOS)"
echo " [3] 手动安装指导"
echo " [4] 跳过,稍后手动安装"
read -p "请选择 [1-4]: " claude_choice
case $claude_choice in
1)
echo "检查 Node.js 和 npm..."
if command -v npm &> /dev/null; then
echo "✅ npm 可用,正在安装 Claude Code..."
npm install -g @anthropic-ai/claude-code
# 验证安装
if command -v claude &> /dev/null; then
echo "✅ Claude Code 安装成功"
else
echo "❌ Claude Code 安装可能失败,请检查 npm 全局安装路径"
echo "尝试运行: npm list -g @anthropic-ai/claude-code"
fi
else
echo "❌ npm 未安装,请先安装 Node.js"
echo "Node.js 下载: https://nodejs.org/"
echo "安装 Node.js 后重新运行此脚本"
exit 1
fi
;;
2)
if [[ "$OSTYPE" == "darwin"* ]]; then
if command -v brew &> /dev/null; then
echo "正在使用 Homebrew 安装 Claude Code..."
brew install anthropic-ai/claude/claude-code
else
echo "❌ Homebrew 未安装,请选择其他安装方式"
exit 1
fi
else
echo "❌ Homebrew 仅支持 macOS,请选择其他安装方式"
exit 1
fi
;;
3)
echo ""
echo "📋 Claude Code 手动安装指导:"
echo ""
echo "方式1 - npm (推荐):"
echo " 1. 安装 Node.js: https://nodejs.org/"
echo " 2. 运行: npm install -g @anthropic-ai/claude-code"
echo ""
echo "方式2 - macOS Homebrew:"
echo " brew install anthropic-ai/claude/claude-code"
echo ""
echo "方式3 - 直接下载:"
echo " 访问: https://docs.anthropic.com/en/docs/claude-code"
echo ""
read -p "安装完成后按 Enter 继续..."
# 再次检查
if ! command -v claude &> /dev/null; then
echo "❌ 仍然检测不到 Claude Code"
echo "请确保安装成功并且 claude 命令在 PATH 中"
exit 1
else
echo "✅ Claude Code 现在可用了"
fi
;;
4)
echo "⚠️ 跳过 Claude Code 安装"
echo "请稍后手动安装: npm install -g @anthropic-ai/claude-code"
echo "安装文档: https://docs.anthropic.com/en/docs/claude-code"
echo ""
echo "注意: 没有 Claude Code,此配置脚本只能设置环境变量"
read -p "继续配置环境变量?按 Enter 继续,或 Ctrl+C 退出..."
;;
*)
echo "无效选择,跳过安装"
;;
esac
else
echo "✅ Claude Code 已安装"
fi
# 步骤2: 配置 AWS 凭证
echo ""
echo "🔑 步骤2: 配置 AWS 凭证..."
# 检查是否已有 AWS 配置
if aws sts get-caller-identity &> /dev/null; then
echo "✅ 检测到现有的 AWS 配置"
aws sts get-caller-identity --query 'Account' --output text | xargs echo "当前账户 ID:"
read -p "是否要重新配置 AWS 凭证?[y/N]: " reconfigure
if [[ $reconfigure =~ ^[Yy]$ ]]; then
echo "请输入您的 AWS 凭证信息..."
aws configure
fi
else
echo "❌ 未检测到 AWS 配置"
echo ""
echo "请准备以下信息:"
echo " • AWS Access Key ID"
echo " • AWS Secret Access Key"
echo " • 默认区域(推荐: us-east-1)"
echo ""
echo "💡 如果您还没有 AWS 凭证,请:"
echo " 1. 登录 AWS 控制台"
echo " 2. 进入 IAM > 用户 > 创建访问密钥"
echo " 3. 确保有 Bedrock 访问权限"
echo ""
read -p "准备好了吗?按 Enter 开始配置..."
aws configure
# 验证配置
echo ""
echo "🔍 验证 AWS 配置..."
if aws sts get-caller-identity &> /dev/null; then
echo "✅ AWS 配置成功"
aws sts get-caller-identity --query 'Account' --output text | xargs echo "账户 ID:"
else
echo "❌ AWS 配置失败,请检查凭证是否正确"
exit 1
fi
fi
# 步骤3: 检查 Bedrock 权限
echo ""
echo "🛡️ 步骤3: 检查 Bedrock 访问权限..."
AWS_REGION_TEMP=$(aws configure get region)
if [ -z "$AWS_REGION_TEMP" ]; then
AWS_REGION_TEMP="us-east-1"
fi
if aws bedrock list-foundation-models --region "$AWS_REGION_TEMP" &> /dev/null; then
echo "✅ Bedrock 访问权限正常"
else
echo "❌ Bedrock 访问权限不足"
echo ""
echo "请确保:"
echo " 1. 在 AWS Bedrock 控制台申请了模型访问权限"
echo " 2. IAM 用户/角色有相应的 Bedrock 权限"
echo ""
echo "Bedrock 控制台: https://console.aws.amazon.com/bedrock/"
read -p "配置完成后按 Enter 继续..."
fi
# 检测当前 Shell
SHELL_TYPE=$(basename "$SHELL")
if [ "$SHELL_TYPE" = "zsh" ]; then
CONFIG_FILE="$HOME/.zshrc"
elif [ "$SHELL_TYPE" = "bash" ]; then
CONFIG_FILE="$HOME/.bash_profile"
else
CONFIG_FILE="$HOME/.profile"
fi
echo ""
echo "📝 步骤4: 配置 Claude Code 环境变量..."
echo "检测到您使用的是: $SHELL_TYPE"
echo "配置文件路径: $CONFIG_FILE"
# 交互式配置
echo ""
echo "请选择您的配置:"
# AWS 区域选择
echo "1. 选择 AWS 区域:"
echo " [1] us-east-1 (推荐)"
echo " [2] us-west-2"
echo " [3] eu-west-1"
echo " [4] 自定义"
read -p "请选择 [1-4]: " region_choice
case $region_choice in
1) AWS_REGION="us-east-1" ;;
2) AWS_REGION="us-west-2" ;;
3) AWS_REGION="eu-west-1" ;;
4)
read -p "请输入自定义区域: " AWS_REGION
;;
*) AWS_REGION="us-east-1" ;;
esac
# 模型选择
echo ""
echo "2. 选择 Claude 模型:"
echo " [1] Claude 3.7 Sonnet (推荐,平衡性能)"
echo " [2] Claude Sonnet 4 (最新最强)"
echo " [3] Claude 3.5 Haiku (快速经济)"
echo " [4] 自定义模型"
read -p "请选择 [1-4]: " model_choice
case $model_choice in
1) ANTHROPIC_MODEL="us.anthropic.claude-3-7-sonnet-20250219-v1:0" ;;
2) ANTHROPIC_MODEL="us.anthropic.claude-sonnet-4-20250514-v1:0" ;;
3) ANTHROPIC_MODEL="us.anthropic.claude-3-5-haiku-20241022-v1:0" ;;
4)
read -p "请输入自定义模型 ID: " ANTHROPIC_MODEL
;;
*) ANTHROPIC_MODEL="us.anthropic.claude-3-7-sonnet-20250219-v1:0" ;;
esac
# 备份现有配置
if [ -f "$CONFIG_FILE" ]; then
cp "$CONFIG_FILE" "${CONFIG_FILE}.backup.$(date +%Y%m%d_%H%M%S)"
echo "✅ 已备份现有配置文件"
fi
# 写入配置
echo ""
echo "📝 正在写入配置..."
# 检查是否已存在配置,如果存在则替换
sed -i.bak '/# Claude Code Bedrock Configuration/,/# End Claude Code Configuration/d' "$CONFIG_FILE" 2>/dev/null || true
cat >> "$CONFIG_FILE" << EOF
# Claude Code Bedrock Configuration - $(date)
export ANTHROPIC_PROVIDER=bedrock
export AWS_REGION=$AWS_REGION
export ANTHROPIC_MODEL=$ANTHROPIC_MODEL
# End Claude Code Configuration
EOF
echo "✅ 配置已写入 $CONFIG_FILE"
# 步骤5: 最终验证和测试
echo ""
echo "🧪 步骤5: 验证配置..."
echo "环境变量配置:"
echo " ANTHROPIC_PROVIDER: $ANTHROPIC_PROVIDER"
echo " AWS_REGION: $AWS_REGION"
echo " ANTHROPIC_MODEL: $ANTHROPIC_MODEL"
echo ""
echo "测试 Claude Code 连接..."
if claude --help &> /dev/null; then
echo "✅ Claude Code 工作正常"
echo ""
echo "🎯 进行简单测试..."
echo "正在发送测试消息..."
if claude "Hello, please respond with just 'Configuration test successful'" 2>/dev/null | grep -q "successful"; then
echo "✅ Claude Code + Bedrock 配置测试成功!"
else
echo "⚠️ 测试消息发送有问题,但基本配置已完成"
echo "请手动运行: claude \"Hello, how are you?\""
fi
else
echo "❌ Claude Code 测试失败"
fi
# 重新加载配置
echo ""
echo "🔄 重新加载配置..."
source "$CONFIG_FILE"
# 显示配置摘要
echo ""
echo "📋 配置摘要:"
echo " Provider: $ANTHROPIC_PROVIDER"
echo " Region: $AWS_REGION"
echo " Model: $ANTHROPIC_MODEL"
echo ""
echo "🎉 配置完成!"
echo ""
echo "下一步操作:"
echo "1. 重新打开终端或运行: source $CONFIG_FILE"
echo "2. 配置 AWS 凭证: aws configure"
echo "3. 测试连接: claude \"Hello, how are you?\""
echo ""
echo "如需重新配置,请再次运行此脚本"
方案2:配置文件模板
提供预配置的模板文件,用户可以直接导入:
claude-bedrock-config.template
# Claude Code + AWS Bedrock 配置模板
# 使用方法:
# 1. 复制此内容到您的 ~/.zshrc 或 ~/.bash_profile
# 2. 根据需要修改下面的值
# 3. 运行 source ~/.zshrc 重新加载
# === Claude Code Bedrock 配置 ===
export ANTHROPIC_PROVIDER=bedrock
export AWS_REGION=us-east-1
export ANTHROPIC_MODEL=us.anthropic.claude-3-7-sonnet-20250219-v1:0
# === 可选配置 ===
# 如果您启用了提示缓存,请注释下面这行
# export DISABLE_PROMPT_CACHING=true
# === 快速命令别名 ===
alias claude-test='claude "Hello, how are you?"'
alias claude-status='echo "Provider: $ANTHROPIC_PROVIDER, Region: $AWS_REGION, Model: $ANTHROPIC_MODEL"'
Windows 一键配置方案
方案1:PowerShell 配置脚本
# claude-bedrock-setup.ps1 - Windows 一键配置脚本
Write-Host "🚀 Claude Code + AWS Bedrock 一键配置向导" -ForegroundColor Green
Write-Host "========================================"
# 步骤1: 检查并安装 AWS CLI
Write-Host "`n📦 步骤1: 检查必要工具..." -ForegroundColor Cyan
if (-not (Get-Command aws -ErrorAction SilentlyContinue)) {
Write-Host "❌ AWS CLI 未安装" -ForegroundColor Red
Write-Host "请按照以下步骤安装 AWS CLI:"
Write-Host "1. 访问: https://aws.amazon.com/cli/"
Write-Host "2. 下载并安装 AWS CLI for Windows"
Write-Host "3. 安装完成后重新运行此脚本"
Read-Host "`n按 Enter 键退出..."
exit 1
} else {
$awsVersion = aws --version 2>$null
Write-Host "✅ AWS CLI 已安装: $awsVersion" -ForegroundColor Green
}
# 检查 Claude Code
if (-not (Get-Command claude -ErrorAction SilentlyContinue)) {
Write-Host "❌ Claude Code 未检测到" -ForegroundColor Red
Write-Host "`n📝 重要提示: Claude Code 在 Windows 上的安装选项:" -ForegroundColor Yellow
Write-Host "1. 推荐使用 WSL (Windows Subsystem for Linux)"
Write-Host "2. 或在 Windows 上直接安装 Node.js + npm"
Write-Host "`n请选择安装方式:"
Write-Host " [1] npm 安装(需要 Node.js)"
Write-Host " [2] WSL 环境安装指导"
Write-Host " [3] 手动安装指导"
Write-Host " [4] 跳过,稍后手动安装"
$claudeChoice = Read-Host "请选择 [1-4]"
switch ($claudeChoice) {
"1" {
Write-Host "检查 Node.js 和 npm..."
try {
$nodeVersion = node --version 2>$null
$npmVersion = npm --version 2>$null
Write-Host "✅ Node.js: $nodeVersion, npm: $npmVersion" -ForegroundColor Green
Write-Host "正在安装 Claude Code..."
npm install -g @anthropic-ai/claude-code
# 验证安装
if (Get-Command claude -ErrorAction SilentlyContinue) {
Write-Host "✅ Claude Code 安装成功" -ForegroundColor Green
} else {
Write-Host "❌ Claude Code 安装可能失败" -ForegroundColor Red
Write-Host "请检查 npm 全局安装路径,或尝试以管理员身份运行"
Write-Host "调试命令: npm list -g @anthropic-ai/claude-code"
}
} catch {
Write-Host "❌ Node.js 或 npm 未安装" -ForegroundColor Red
Write-Host "请先安装 Node.js: https://nodejs.org/"
Write-Host "安装完成后重新运行此脚本"
Read-Host "按 Enter 键退出..."
exit 1
}
}
"2" {
Write-Host "`n📋 WSL 环境安装指导:" -ForegroundColor Cyan
Write-Host "1. 启用 WSL:"
Write-Host " wsl --install"
Write-Host "2. 重启计算机"
Write-Host "3. 在 WSL 中安装 Node.js:"
Write-Host " curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -"
Write-Host " sudo apt-get install -y nodejs"
Write-Host "4. 安装 Claude Code:"
Write-Host " npm install -g @anthropic-ai/claude-code"
Write-Host "5. 在 WSL 中运行本配置脚本"
Write-Host "`n💡 WSL 优势: 更好的 Linux 兼容性,推荐开发者使用"
Read-Host "`n按 Enter 键退出,请在 WSL 中重新运行..."
exit 0
}
"3" {
Write-Host "`n📋 Claude Code 手动安装指导:" -ForegroundColor Cyan
Write-Host "方式1 - npm (Windows 原生):"
Write-Host " 1. 安装 Node.js: https://nodejs.org/"
Write-Host " 2. 以管理员身份运行命令提示符"
Write-Host " 3. 运行: npm install -g @anthropic-ai/claude-code"
Write-Host "`n方式2 - WSL (推荐):"
Write-Host " 1. 安装 WSL: wsl --install"
Write-Host " 2. 在 WSL 中安装 Node.js 和 Claude Code"
Write-Host "`n方式3 - 查看官方文档:"
Write-Host " https://docs.anthropic.com/en/docs/claude-code"
Read-Host "`n安装完成后按 Enter 继续..."
# 再次检查
if (-not (Get-Command claude -ErrorAction SilentlyContinue)) {
Write-Host "❌ 仍然检测不到 Claude Code" -ForegroundColor Red
Write-Host "请确保安装成功并且 claude 命令在 PATH 中"
Read-Host "按 Enter 键退出..."
exit 1
} else {
Write-Host "✅ Claude Code 现在可用了" -ForegroundColor Green
}
}
"4" {
Write-Host "⚠️ 跳过 Claude Code 安装" -ForegroundColor Yellow
Write-Host "请稍后手动安装:"
Write-Host " Windows: npm install -g @anthropic-ai/claude-code"
Write-Host " WSL: 推荐在 WSL 环境中安装"
Write-Host " 文档: https://docs.anthropic.com/en/docs/claude-code"
Write-Host "`n注意: 没有 Claude Code,此配置脚本只能设置环境变量"
$continue = Read-Host "继续配置环境变量?按 Enter 继续,或输入 'exit' 退出"
if ($continue -eq "exit") { exit 0 }
}
default {
Write-Host "无效选择,跳过安装" -ForegroundColor Yellow
}
}
} else {
Write-Host "✅ Claude Code 已安装" -ForegroundColor Green
}
# 步骤2: 配置 AWS 凭证
Write-Host "`n🔑 步骤2: 配置 AWS 凭证..." -ForegroundColor Cyan
# 检查是否已有 AWS 配置
try {
$identity = aws sts get-caller-identity 2>$null | ConvertFrom-Json
if ($identity) {
Write-Host "✅ 检测到现有的 AWS 配置" -ForegroundColor Green
Write-Host "当前账户 ID: $($identity.Account)"
$reconfigure = Read-Host "是否要重新配置 AWS 凭证?[y/N]"
if ($reconfigure -match "^[Yy]$") {
Write-Host "请输入您的 AWS 凭证信息..."
aws configure
}
}
} catch {
Write-Host "❌ 未检测到有效的 AWS 配置" -ForegroundColor Red
Write-Host "`n请准备以下信息:"
Write-Host " • AWS Access Key ID"
Write-Host " • AWS Secret Access Key"
Write-Host " • 默认区域(推荐: us-east-1)"
Write-Host "`n💡 如果您还没有 AWS 凭证,请:"
Write-Host " 1. 登录 AWS 控制台"
Write-Host " 2. 进入 IAM > 用户 > 创建访问密钥"
Write-Host " 3. 确保有 Bedrock 访问权限"
Read-Host "`n准备好了吗?按 Enter 开始配置..."
aws configure
# 验证配置
Write-Host "`n🔍 验证 AWS 配置..."
try {
$identity = aws sts get-caller-identity 2>$null | ConvertFrom-Json
if ($identity) {
Write-Host "✅ AWS 配置成功" -ForegroundColor Green
Write-Host "账户 ID: $($identity.Account)"
} else {
throw "配置验证失败"
}
} catch {
Write-Host "❌ AWS 配置失败,请检查凭证是否正确" -ForegroundColor Red
Read-Host "按 Enter 键退出..."
exit 1
}
}
# 步骤3: 检查 Bedrock 权限
Write-Host "`n🛡️ 步骤3: 检查 Bedrock 访问权限..." -ForegroundColor Cyan
$awsRegionTemp = aws configure get region 2>$null
if (-not $awsRegionTemp) { $awsRegionTemp = "us-east-1" }
try {
aws bedrock list-foundation-models --region $awsRegionTemp 2>$null | Out-Null
Write-Host "✅ Bedrock 访问权限正常" -ForegroundColor Green
} catch {
Write-Host "❌ Bedrock 访问权限不足" -ForegroundColor Red
Write-Host "`n请确保:"
Write-Host " 1. 在 AWS Bedrock 控制台申请了模型访问权限"
Write-Host " 2. IAM 用户/角色有相应的 Bedrock 权限"
Write-Host "`nBedrock 控制台: https://console.aws.amazon.com/bedrock/"
Read-Host "配置完成后按 Enter 继续..."
}
Write-Host "`n📝 步骤4: 配置 Claude Code 环境变量..." -ForegroundColor Cyan
# AWS 区域选择
Write-Host "1. 选择 AWS 区域:"
Write-Host " [1] us-east-1 (推荐)"
Write-Host " [2] us-west-2"
Write-Host " [3] eu-west-1"
Write-Host " [4] 自定义"
$regionChoice = Read-Host "请选择 [1-4]"
switch ($regionChoice) {
"1" { $awsRegion = "us-east-1" }
"2" { $awsRegion = "us-west-2" }
"3" { $awsRegion = "eu-west-1" }
"4" { $awsRegion = Read-Host "请输入自定义区域" }
default { $awsRegion = "us-east-1" }
}
# 模型选择
Write-Host "`n2. 选择 Claude 模型:"
Write-Host " [1] Claude 3.7 Sonnet (推荐,平衡性能)"
Write-Host " [2] Claude Sonnet 4 (最新最强)"
Write-Host " [3] Claude 3.5 Haiku (快速经济)"
Write-Host " [4] 自定义模型"
$modelChoice = Read-Host "请选择 [1-4]"
switch ($modelChoice) {
"1" { $anthropicModel = "us.anthropic.claude-3-7-sonnet-20250219-v1:0" }
"2" { $anthropicModel = "us.anthropic.claude-sonnet-4-20250514-v1:0" }
"3" { $anthropicModel = "us.anthropic.claude-3-5-haiku-20241022-v1:0" }
"4" { $anthropicModel = Read-Host "请输入自定义模型 ID" }
default { $anthropicModel = "us.anthropic.claude-3-7-sonnet-20250219-v1:0" }
}
# 设置环境变量
Write-Host "`n📝 正在设置环境变量..."
try {
[Environment]::SetEnvironmentVariable("ANTHROPIC_PROVIDER", "bedrock", "User")
[Environment]::SetEnvironmentVariable("AWS_REGION", $awsRegion, "User")
[Environment]::SetEnvironmentVariable("ANTHROPIC_MODEL", $anthropicModel, "User")
# 同时设置当前会话变量
$env:ANTHROPIC_PROVIDER = "bedrock"
$env:AWS_REGION = $awsRegion
$env:ANTHROPIC_MODEL = $anthropicModel
Write-Host "✅ 环境变量设置成功" -ForegroundColor Green
} catch {
Write-Host "❌ 环境变量设置失败: $($_.Exception.Message)" -ForegroundColor Red
exit 1
}
# 步骤5: 最终验证和测试
Write-Host "`n🧪 步骤5: 验证配置..." -ForegroundColor Cyan
Write-Host "环境变量配置:"
Write-Host " ANTHROPIC_PROVIDER: $env:ANTHROPIC_PROVIDER"
Write-Host " AWS_REGION: $env:AWS_REGION"
Write-Host " ANTHROPIC_MODEL: $env:ANTHROPIC_MODEL"
Write-Host "`n测试 Claude Code 连接..."
try {
claude --help | Out-Null
Write-Host "✅ Claude Code 工作正常" -ForegroundColor Green
Write-Host "`n🎯 进行简单测试..."
Write-Host "正在发送测试消息..."
$testResult = claude "Hello, please respond with just 'Configuration test successful'" 2>$null
if ($testResult -match "successful") {
Write-Host "✅ Claude Code + Bedrock 配置测试成功!" -ForegroundColor Green
} else {
Write-Host "⚠️ 测试消息发送有问题,但基本配置已完成" -ForegroundColor Yellow
Write-Host "请手动运行: claude `"Hello, how are you?`""
}
} catch {
Write-Host "❌ Claude Code 测试失败" -ForegroundColor Red
}
# 创建快捷方式脚本
$shortcutScript = @"
@echo off
echo Claude Code 配置状态:
echo Provider: %ANTHROPIC_PROVIDER%
echo Region: %AWS_REGION%
echo Model: %ANTHROPIC_MODEL%
echo.
echo 快速测试: claude "Hello, how are you?"
pause
"@
$shortcutPath = "$env:USERPROFILE\Desktop\Claude-Bedrock-Status.bat"
$shortcutScript | Out-File -FilePath $shortcutPath -Encoding ASCII
Write-Host "✅ 已创建桌面快捷方式: Claude-Bedrock-Status.bat" -ForegroundColor Green
# 显示配置摘要
Write-Host "`n📋 配置摘要:" -ForegroundColor Cyan
Write-Host " Provider: $env:ANTHROPIC_PROVIDER"
Write-Host " Region: $env:AWS_REGION"
Write-Host " Model: $env:ANTHROPIC_MODEL"
Write-Host "`n🎉 配置完成!" -ForegroundColor Green
Write-Host "`n下一步操作:"
Write-Host "1. 重新打开命令提示符或 PowerShell"
Write-Host "2. 配置 AWS 凭证: aws configure"
Write-Host "3. 测试连接: claude `"Hello, how are you?`""
Write-Host "`n如需重新配置,请再次运行此脚本"
Read-Host "`n按 Enter 键退出..."
方案2:批处理文件配置
@echo off
REM claude-bedrock-setup.bat - Windows 批处理配置脚本
chcp 65001 >nul
cls
echo 🚀 Claude Code + AWS Bedrock 一键配置向导
echo ========================================
echo.
echo 请选择 AWS 区域:
echo [1] us-east-1 (推荐)
echo [2] us-west-2
echo [3] eu-west-1
set /p region_choice=请输入选择 [1-3]:
if "%region_choice%"=="1" set AWS_REGION=us-east-1
if "%region_choice%"=="2" set AWS_REGION=us-west-2
if "%region_choice%"=="3" set AWS_REGION=eu-west-1
if "%AWS_REGION%"=="" set AWS_REGION=us-east-1
echo.
echo 请选择 Claude 模型:
echo [1] Claude 3.7 Sonnet (推荐)
echo [2] Claude Sonnet 4 (最新)
echo [3] Claude 3.5 Haiku (快速)
set /p model_choice=请输入选择 [1-3]:
if "%model_choice%"=="1" set ANTHROPIC_MODEL=us.anthropic.claude-3-7-sonnet-20250219-v1:0
if "%model_choice%"=="2" set ANTHROPIC_MODEL=us.anthropic.claude-sonnet-4-20250514-v1:0
if "%model_choice%"=="3" set ANTHROPIC_MODEL=us.anthropic.claude-3-5-haiku-20241022-v1:0
if "%ANTHROPIC_MODEL%"=="" set ANTHROPIC_MODEL=us.anthropic.claude-3-7-sonnet-20250219-v1:0
echo.
echo 📝 正在设置环境变量...
REM 设置用户环境变量
setx ANTHROPIC_PROVIDER "bedrock" >nul
setx AWS_REGION "%AWS_REGION%" >nul
setx ANTHROPIC_MODEL "%ANTHROPIC_MODEL%" >nul
if %errorlevel% equ 0 (
echo ✅ 环境变量设置成功
) else (
echo ❌ 环境变量设置失败
pause
exit /b 1
)
echo.
echo 📋 配置摘要:
echo Provider: bedrock
echo Region: %AWS_REGION%
echo Model: %ANTHROPIC_MODEL%
echo.
echo 🎉 配置完成!
echo.
echo 下一步操作:
echo 1. 重新打开命令提示符
echo 2. 配置 AWS 凭证: aws configure
echo 3. 测试连接: claude "Hello, how are you?"
pause
配置验证工具
跨平台验证脚本
创建一个验证脚本来检查配置是否正确:
#!/bin/bash
# verify-claude-config.sh - 配置验证脚本
echo "🔍 Claude Code + AWS Bedrock 配置验证"
echo "===================================="
# 检查环境变量
echo "1. 检查环境变量..."
if [ -z "$ANTHROPIC_PROVIDER" ]; then
echo "❌ ANTHROPIC_PROVIDER 未设置"
else
echo "✅ ANTHROPIC_PROVIDER: $ANTHROPIC_PROVIDER"
fi
if [ -z "$AWS_REGION" ]; then
echo "❌ AWS_REGION 未设置"
else
echo "✅ AWS_REGION: $AWS_REGION"
fi
if [ -z "$ANTHROPIC_MODEL" ]; then
echo "❌ ANTHROPIC_MODEL 未设置"
else
echo "✅ ANTHROPIC_MODEL: $ANTHROPIC_MODEL"
fi
# 检查工具安装
echo ""
echo "2. 检查必要工具..."
if command -v aws &> /dev/null; then
echo "✅ AWS CLI: $(aws --version)"
else
echo "❌ AWS CLI 未安装"
fi
if command -v claude &> /dev/null; then
echo "✅ Claude Code: 已安装"
else
echo "❌ Claude Code 未安装"
fi
# 检查 AWS 连接
echo ""
echo "3. 检查 AWS 连接..."
if aws sts get-caller-identity &> /dev/null; then
echo "✅ AWS 连接正常"
aws sts get-caller-identity --query 'Account' --output text | xargs echo "账户 ID:"
else
echo "❌ AWS 连接失败,请运行 'aws configure'"
fi
# 检查 Bedrock 权限
echo ""
echo "4. 检查 Bedrock 权限..."
if aws bedrock list-foundation-models --region "$AWS_REGION" &> /dev/null; then
echo "✅ Bedrock 访问正常"
else
echo "❌ Bedrock 访问失败,请检查权限"
fi
echo ""
echo "验证完成!"
使用说明
对于 macOS 用户:
一键安装命令 :
# 方法1: 直接运行(推荐)
bash <(curl -s https://github.com/s87343472/Claude-Code-AWS-Bedrock-/blob/main/setup-claude-macos.sh)
# 方法2: 下载后运行
curl -O https://github.com/s87343472/Claude-Code-AWS-Bedrock-/blob/main/setup-claude-macos.sh
chmod +x setup-claude-macos.sh
./setup-claude-macos.sh
脚本会自动完成 :
- ✅ 检查并安装 AWS CLI
- ✅ 引导配置 AWS 凭证
- ✅ 验证 Bedrock 权限
- ✅ 配置环境变量
- ✅ 测试连接
配置流程图
graph TD
A[开始配置] --> B{检查 AWS CLI}
B -->|未安装| C[自动安装 AWS CLI]
B -->|已安装| D[检查 AWS 凭证]
C --> D
D -->|未配置| E[引导用户配置 aws configure]
D -->|已配置| F[验证 Bedrock 权限]
E --> F
F -->|权限不足| G[提示用户申请权限]
F -->|权限正常| H[配置环境变量]
G --> H
H --> I[验证配置]
I --> J[测试连接]
J -->|成功| K[配置完成 🎉]
J -->|失败| L[显示诊断信息]
常见问题处理
安装阶段问题
Q: macOS 上 AWS CLI 安装失败怎么办?
A: 脚本会自动尝试两种方式:
- 如果有 Homebrew:
brew install awscli - 如果没有:下载官方安装包
Q: Windows 上需要管理员权限吗?
A: 建议以管理员身份运行,确保环境变量能正确设置到系统级别。
凭证配置问题
Q: 我没有 AWS Access Key 怎么办?
A: 脚本会暂停并提供详细指导:
- 登录 AWS 控制台
- 进入 IAM → 用户 → 安全凭证
- 创建访问密钥
Q: 区域应该选择哪个?
A: 推荐选择 us-east-1,因为:
- Bedrock 服务最稳定
- 模型支持最全面
- 延迟通常较低
权限问题
Q: Bedrock 权限检查失败?
A: 脚本会提供具体步骤:
- 访问 Bedrock 控制台
- 申请模型访问权限
- 确保 IAM 角色有必要权限
测试问题
Q: 最终测试失败但配置看起来正确?
A: 可能的原因:
- 网络连接问题(建议使用美国、新加坡、日版的稳定代理)
- 模型暂时不可用
- 配额限制
手动测试命令:
claude "Hello, how are you?"
优势
- 用户友好 :无需手动编辑配置文件
- 交互式配置 :引导用户选择合适的设置
- 错误处理 :自动检测和处理常见问题
- 备份机制 :自动备份现有配置
- 验证功能 :配置后自动验证
- 跨平台支持 :同时支持 macOS 和 Windows
这样的一键配置方案将大大降低新用户的使用门槛,提高配置成功率。