OpenAI Codex on Bedrock:用 AWS 凭证直接调用编码 Agent 实战

前两天亚马逊云科技在 "What's Next with AWS 2026" 上放了个大招——OpenAI 的 Codex 编码 Agent 正式进入 Amazon Bedrock。

说白了就是:你现在可以用 AWS 凭证直接调用 Codex,写代码、改 Bug、做 Code Review,走的是 Bedrock 基础设施,计费算在 AWS 账单里。不需要单独注册 OpenAI 账号,不需要维护额外的 API Key。

对于已经在 AWS 上跑业务的团队来说,这等于把最强的 AI 编码能力直接嵌入了现有工作流,零迁移成本。

Codex on Bedrock 是什么

Codex 是 OpenAI 的专用编码 Agent——不是简单的代码补全,是能理解上下文、执行多步骤编码任务的 Agent。

进入 Bedrock 之后,它支持三种使用方式:

  1. Codex CLI — 命令行直接调用,适合脚本化场景
  2. Codex Desktop App — 桌面客户端,适合日常开发
  3. VS Code Extension — 编辑器内嵌,写代码时随时用

这三种入口背后都走 Bedrock API,意味着你的代码不会离开 AWS 基础设施。

为什么这事对企业开发团队重要

之前用 AI 编码工具,企业安全团队最头疼的问题:

  • 代码发到第三方服务器了吗?
  • API Key 谁在管理?泄露了怎么办?
  • 用量怎么分摊到各团队?
  • 合规审计怎么做?

Codex on Bedrock 直接解决这些问题:

问题 解决方式
代码安全 推理在 Bedrock 基础设施上运行,VPC 内可控
认证管理 用现有 AWS IAM 凭证,不需要额外 API Key
成本分摊 计入 AWS 账单,可按标签归属到团队/项目
合规审计 CloudTrail 记录每次调用
预算承诺 用量算在 AWS 云承诺(Cloud Commitment)里

快速上手

配置 Bedrock 模型访问

# 确认 Codex 模型可用
aws bedrock list-foundation-models \
  --region us-east-1 \
  --query "modelSummaries[?contains(modelId, 'codex')].{Id:modelId,Name:modelName,Status:modelLifecycle.status}" \
  --output table

# 申请模型访问权限(Limited Preview 阶段需要先申请)
# Bedrock Console → Model access → OpenAI Codex → Request access

通过 Bedrock API 调用

import boto3
import json

bedrock_runtime = boto3.client('bedrock-runtime', region_name='us-east-1')

# 让 Codex 生成一个 Lambda 函数
response = bedrock_runtime.invoke_model(
    modelId='openai.codex-v1:0',
    contentType='application/json',
    accept='application/json',
    body=json.dumps({
        "messages": [
            {
                "role": "system",
                "content": "你是一个 AWS Lambda 开发专家。生成的代码要包含错误处理和日志。"
            },
            {
                "role": "user", 
                "content": """写一个 Lambda 函数:
                - 监听 S3 PutObject 事件
                - 读取上传的 CSV 文件
                - 逐行解析,写入 DynamoDB 表
                - 要求:批量写入(BatchWriteItem)、重试机制、进度日志"""
            }
        ],
        "max_tokens": 4096,
        "temperature": 0.2
    })
)

result = json.loads(response['body'].read())
code = result['choices'][0]['message']['content']
print(code)

Codex CLI 使用

# 安装 Codex CLI(配合 AWS 凭证)
npm install -g @openai/codex-cli

# 配置使用 Bedrock 后端
export CODEX_BACKEND=bedrock
export AWS_REGION=us-east-1
export AWS_PROFILE=dev  # 或者用 IAM Role

# 直接在项目目录里用
cd my-project

# 让 Codex 帮你重构
codex "把所有同步的 DynamoDB 调用改成异步批处理"

# 让 Codex 写测试
codex "给 src/handlers/ 下所有 Lambda 函数补充单元测试"

# 让 Codex 修 Bug
codex "Lambda 函数超时了,帮我分析 CloudWatch Logs 里的瓶颈并修复"

VS Code 集成

// .vscode/settings.json
{
  "codex.backend": "bedrock",
  "codex.awsRegion": "us-east-1",
  "codex.modelId": "openai.codex-v1:0",
  "codex.maxTokens": 4096
}

配置好之后,在 VS Code 里选中代码块,右键就能让 Codex 重构、解释、生成测试。

团队管理

IAM 权限控制

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowCodexForDevTeam",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": "arn:aws:bedrock:us-east-1::foundation-model/openai.codex-v1:0",
      "Condition": {
        "StringEquals": {
          "aws:PrincipalTag/department": "engineering"
        }
      }
    }
  ]
}

成本追踪

# 按团队标签看 Bedrock 用量
aws ce get-cost-and-usage \
  --time-period Start=2026-05-01,End=2026-05-31 \
  --granularity MONTHLY \
  --metrics "BlendedCost" "UsageQuantity" \
  --group-by Type=TAG,Key=team \
  --filter '{
    "Dimensions": {
      "Key": "SERVICE",
      "Values": ["Amazon Bedrock"]
    }
  }'

实际场景

场景一:老项目迁移

团队有个 Python 2 的 ETL 脚本要迁到 Python 3 + Lambda:

codex "把 etl_legacy.py 从 Python 2 迁移到 Python 3,
改成 Lambda 函数格式(handler 入口),
依赖从 boto 换成 boto3,
日志从 print 换成 logging,
保留原有的业务逻辑不变"

场景二:Code Review 自动化

import subprocess
import json

def automated_review(pr_diff):
    """在 CI/CD 里自动对 PR 做 Code Review"""
    response = bedrock_runtime.invoke_model(
        modelId='openai.codex-v1:0',
        contentType='application/json',
        body=json.dumps({
            "messages": [
                {
                    "role": "system",
                    "content": """作为 Code Reviewer,检查以下方面:
                    1. 安全漏洞(SQL注入、硬编码密钥等)
                    2. 性能问题(N+1查询、内存泄漏)
                    3. AWS 最佳实践(IAM 最小权限、错误重试)
                    4. 代码风格一致性
                    输出 JSON 格式:{issues: [{severity, line, description, suggestion}]}"""
                },
                {"role": "user", "content": f"PR Diff:\n{pr_diff}"}
            ],
            "max_tokens": 2048,
            "temperature": 0.1
        })
    )
    return json.loads(response['body'].read())

场景三:生成 IaC

codex "用 CDK Python 写一个完整的无服务器 API:
- API Gateway REST API
- 3 个 Lambda 函数(CRUD)
- DynamoDB 单表设计
- Cognito 用户池做认证
- CloudWatch 告警(错误率 > 5% 触发 SNS)
- 所有资源加环境标签"

和直接用 OpenAI API 的区别

对比项 直接用 OpenAI Codex on Bedrock
认证 OpenAI API Key AWS IAM
计费 OpenAI 账单 AWS 统一账单
数据驻留 OpenAI 服务器 AWS 区域
审计日志 有限 CloudTrail 完整记录
网络隔离 公网 可走 VPC Endpoint
预算控制 余额制 AWS Budgets + 标签
云承诺 不算 算在 AWS 承诺额度内

最后一条特别重要——如果你公司跟 AWS 签了 EDP(Enterprise Discount Program),Codex 的用量可以算在承诺消费里。

限制

当前是 Limited Preview:

  1. 需要申请才能用
  2. 区域有限(初期可能只有 us-east-1)
  3. 并发限制可能比正式版严格
  4. 功能可能还在迭代

我的判断

Codex on Bedrock 的核心价值不是"多了一个 AI 编码工具",而是解决了企业用 AI 编码的合规门槛。

很多企业安全团队不让用外部 AI 工具(代码外泄风险),但如果走 Bedrock——数据在 AWS 基础设施上、IAM 控制权限、CloudTrail 审计——安全团队就没理由拒绝了。

这可能会加速 AI 编码工具在大企业里的落地。之前被安全策略卡住的团队,现在有了一条合规的路径。


相关链接:

posted @ 2026-05-27 09:06  亚马逊云开发者  阅读(7)  评论(0)    收藏  举报