概述

为了简化 Claude Code + AWS Bedrock 的配置过程,我们提供了 macOS 和 Windows 的一键配置方案,让用户无需手动设置复杂的环境变量。

注意:要使用AWS Bedrock请联系AWS的销售来开通权限,这种方法适合企业用户。不适合预算20美元/月的用户。

GitHub - s87343472/Claude-Code-AWS-Bedrock-Contribute to s87343472/Claude-Code-AWS-Bedrock- development by creating an account on GitHub.An image to describe postGitHubs87343472An image to describe post

macOS 一键配置方案

方案1:自动配置脚本

创建一个自动配置脚本,用户只需运行一次即可完成所有设置:

Claude-Code-AWS-Bedrock-/setup-claude-macos.sh at main · s87343472/Claude-Code-AWS-Bedrock-Contribute to s87343472/Claude-Code-AWS-Bedrock- development by creating an account on GitHub.An image to describe postGitHubs87343472An image to describe post

#!/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-Code-AWS-Bedrock-/setup-claude-windows.ps1 at main · s87343472/Claude-Code-AWS-Bedrock-Contribute to s87343472/Claude-Code-AWS-Bedrock- development by creating an account on GitHub.An image to describe postGitHubs87343472An image to describe post

# 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:批处理文件配置

Claude-Code-AWS-Bedrock-/setup-claude-windows.bat at main · s87343472/Claude-Code-AWS-Bedrock-Contribute to s87343472/Claude-Code-AWS-Bedrock- development by creating an account on GitHub.An image to describe postGitHubs87343472An image to describe post

@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

脚本会自动完成

  1. ✅ 检查并安装 AWS CLI
  2. ✅ 引导配置 AWS 凭证
  3. ✅ 验证 Bedrock 权限
  4. ✅ 配置环境变量
  5. ✅ 测试连接

配置流程图

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: 脚本会自动尝试两种方式:

  1. 如果有 Homebrew:brew install awscli
  2. 如果没有:下载官方安装包

Q: Windows 上需要管理员权限吗?

A: 建议以管理员身份运行,确保环境变量能正确设置到系统级别。

凭证配置问题

Q: 我没有 AWS Access Key 怎么办?

A: 脚本会暂停并提供详细指导:

  1. 登录 AWS 控制台
  2. 进入 IAM → 用户 → 安全凭证
  3. 创建访问密钥

Q: 区域应该选择哪个?

A: 推荐选择 us-east-1,因为:

  • Bedrock 服务最稳定
  • 模型支持最全面
  • 延迟通常较低

权限问题

Q: Bedrock 权限检查失败?

A: 脚本会提供具体步骤:

  1. 访问 Bedrock 控制台
  2. 申请模型访问权限
  3. 确保 IAM 角色有必要权限

测试问题

Q: 最终测试失败但配置看起来正确?

A: 可能的原因:

  • 网络连接问题(建议使用美国、新加坡、日版的稳定代理)
  • 模型暂时不可用
  • 配额限制

手动测试命令:

claude "Hello, how are you?"

优势

  1. 用户友好 :无需手动编辑配置文件
  2. 交互式配置 :引导用户选择合适的设置
  3. 错误处理 :自动检测和处理常见问题
  4. 备份机制 :自动备份现有配置
  5. 验证功能 :配置后自动验证
  6. 跨平台支持 :同时支持 macOS 和 Windows

这样的一键配置方案将大大降低新用户的使用门槛,提高配置成功率。