本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
项目 (OpenAI-compatible)
Amazon Bedrock Projects API 使用 API 为您的生成式 AI 工作负载提供应用程序级隔离。 OpenAI-compatible 项目使您能够通过改进整个组织的访问控制、成本跟踪和可观察性来组织和管理您的 AI 应用程序。
提示
对于新应用程序,我们推荐使用bedrock-runtime终端节点。如果您不需要项目 API,请使用推理配置文件进行隔离、标记和成本跟踪。bedrock-runtime
注意
项目只能与对基岩地壳端点使用 OpenAI-compatible API 的模型一起使用。如果您使用的是基础运行时端点,请使用推理配置文件而不是标记和可观察性。
什么是项目?
项目是一个逻辑边界,用于在 Amazon Bedrock 中隔离应用程序、环境或实验等工作负载。项目提供以下功能:
-
成本监控:使用 AWS 标签和 AWS Cost Explorer 跟踪项目层面的支出
项目允许您在生产环境中管理多个生成式 AI 工作负载,无需创建单独的 AWS 账户或组织,从而降低运营复杂性,同时保持安全性和监管。
每个 AWS 账户都有一个默认项目,所有推理请求都与该项目相关联。您可以使用项目 API 在您的账户中创建更多项目。
注意
对项目的支持因端点而异。在bedrock-mantle终端节点上,您可以使用项目 API 创建和管理自己的项目。在bedrock-runtime端点上,只有默认项目可用——你还不能在那里创建项目。请求bedrock-runtime解析到您账户的默认项目,其 ARN 为arn:aws:bedrock:。默认项目无法被标记或删除,其数据保留设置始终继承自账户,也永远不是计费锚点:使用量归因region:account-id:project/defaultbedrock-runtime于推理目标,就像今天一样。有关引用默认项目的权限,请参阅运行模型推理的先决条件。
何时使用项目
当你需要时,你应该使用项目 API:
-
按业务结构组织:根据您的组织分类法(例如业务单位、团队、应用程序或成本中心)管理 Bedrock 使用情况
-
准确跟踪成本:监控并将 AI 支出分配给特定团队、项目或环境
-
强制执行访问策略:应用精细的 IAM 权限来控制谁可以访问特定的 AI 工作负载
-
扩展生产工作负载:在明确的操作边界和监控下运行多个生产应用程序
项目与推理概况
项目 API 和推理配置文件都在 Amazon Bedrock 中提供隔离、标记和访问控制功能,但它们因您使用的终端节点而异。如果你使用带有 b edrock-mantle 端点 OpenAI-compatible 的 API,请使用项目 API。如果你使用的是基准运行时端点(推荐用于新应用程序),请使用推理配置文件。聊天完成 API 在两个端点上都可用;项目 API 仅在上bedrock-mantle可用。
| 功能 | 项目 API | 推理概况 |
|---|---|---|
| 支持的 API | OpenAI-compatible API(响应、聊天完成) | 原生 Bedrock API(调用、交谈)、 OpenAI-compatible API(聊天完成) |
| 端点 | bedrock-mantle.{region}.api.aws |
bedrock-runtime.{region}.amazonaws.com |
| 使用场景 | 使用 OpenAI-compatible 端点的应用程序 | 使用原生 Bedrock API 的应用程序 |
| 访问控制 | 在 IAM 政策中将项目作为资源 | 关于推理配置文件 ARN 的 IAM 政策 |
| 成本跟踪 | AWS 项目上的标签 | AWS 推理配置文件上的标签 |
项目 vs. AWS accounts
AWS 账户和AWS 组织代表基础设施层面的账单和所有权边界。项目代表单个账户中的工作负载和应用程序边界。
使用项目代替单独的 AWS 账户可以:
-
更快的设置:通过 API 调用在几秒钟内创建项目。
-
降低复杂性:无需账户蔓延即可管理多个工作负载
-
简化操作:在单个账户内进行集中管理
-
降低开销:无需跨账户 IAM 角色或资源共享
项目入门
此页面引导您创建第一个项目、将其与推理请求关联以及管理项目资源。
先决条件
开始之前,请确保您已具备以下条件:
-
拥有亚马逊 Bedrock 访问权限的 AWS 账户
-
创建和管理 Bedrock 项目的 IAM 权限
-
已安装 Python 3.7 或更新版本
-
安装了 OpenAI Python SDK:
pip install openai boto3 -
亚马逊 Bedrock 身份验证的 API 密钥
第 1 步:设置您的环境
使用您的亚马逊 Bedrock 凭证配置您的环境变量:
export OPENAI_API_KEY="<your-bedrock-key>" export OPENAI_BASE_URL="https://bedrock-mantle.<your-region>.api.aws/v1"
<your-region>替换为您的 AWS 区域(例如,us-east-1、us-west-2)。
注意
亚马逊 Bedrock 提供两种类型的密钥:短期和长期。虽然您可以使用长期 API 密钥来探索 Amazon Bedrock,但我们建议对安全要求更高的应用程序使用短期密钥。如果您在项目中使用长期密钥,请注意,附加到长期密钥的默认策略仅允许您获取和列出项目,而不允许您 create/update /存档项目。如果您希望使用长期密钥来管理项目,则必须为密钥分配额外的 IAM 策略以启用这些操作。
第 2 步:发现可用模型
使用 list() API 检索与项目 API 兼容的模型列表:
curl -X GET $OPENAI_BASE_URL/models \ -H "Authorization: Bearer $OPENAI_API_KEY"
第 3 步:创建你的第一个项目
使用带有用于成本监控和可观察性的标签的创建项目 API。请注意,目前 SDK 仅支持 cURL。
curl -X POST $OPENAI_BASE_URL/organization/projects \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Project ABC", "tags": { "Project": "CustomerChatbot", "Environment": "Production", "Owner": "TeamAlpha", "CostCenter": "21524" } }' -v
响应:
{ "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/proj_5d5ykleja6cwpirysbb7", "created_at": 1772135628, "id": "proj_5d5ykleja6cwpirysbb7", "name": "Project ABC", "object": "organization.project", "status": "active", "tags": { "Owner": "TeamAlpha", "Project": "CustomerChatbot", "Environment": "Production", "CostCenter": "21524" } }
重要注意事项:
-
亚马逊 Bedrock 忽略了 OpenAI API 规范中的地理参数。
-
该区域由您的终端节点配置决定。
-
arn 字段专用于亚马逊 Bedrock,为 IAM 政策附件提供 ARN。
-
标签可以在项目创建期间指定,并在所有项目响应中返回。
第 4 步:将推理请求与您的项目关联起来
要将您的项目关联到推理请求,请在创建客户端时提供项目 ID:
使用该客户端提出的所有推理请求都将与指定的项目相关联,从而确保适当的隔离、成本跟踪和访问控制。
第 5 步:验证您的项目设置
列出所有项目以验证您的项目是否已成功创建:
curl -X GET $OPENAI_BASE_URL/organization/projects \ -H "Authorization: Bearer $OPENAI_API_KEY"
响应:
{ "data": [ { "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/default", "created_at": 1764460800, "id": "default", "name": "default", "object": "organization.project", "status": "active", "tags": {} }, { "arn": "arn:aws:bedrock-mantle:ap-northeast-1:673693429514:project/proj_2z766pfxmkij5vwubv75", "created_at": 1771823259, "id": "proj_2z766pfxmkij5vwubv75", "name": "Project ABC", "object": "organization.project", "status": "active", "tags": {} } ], "first_id": "default", "has_more": false, "last_id": "proj_znaruqn723npmjqnxqfd", "object": "list" }
后续步骤
现在你已经创建了你的第一个项目,你可以:
-
配置访问控制:附加 IAM 策略以限制项目访问权限
-
设置成本跟踪:为成本分配添加 AWS 标签
-
启用监控:配置 CloudWatch 指标和警报
-
创建其他项目:按团队、环境或应用程序组织工作负载
处理 项目
此页面提供有关在项目的整个生命周期中管理项目的详细信息。
创建项目
基础项目创建
使用名称、描述和标签创建项目:
curl -X POST $OPENAI_BASE_URL/organization/projects \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Development Environment", "tags": { "Project": "InternalTools", "Environment": "Development", "Owner": "TeamAlpha", "CostCenter": "30156" } }'
每个账户最多可以有 1000 个项目。
推荐的命名规范
使用清晰的描述性名称来反映您的组织结构:
-
按应用程序: CustomerChatbot-Prod, InternalSearch-Dev
-
按团队划分: TeamAlpha-Production, DataScience-Experiments
-
按环境划分: Production-WebApp, Staging-MobileApp
-
按成本中心划分: CostCenter-2152-Production
列出项目
列出所有项目
检索您账户中的所有项目:
curl -X GET $OPENAI_BASE_URL/organization/projects \ -H "Authorization: Bearer $OPENAI_API_KEY"
检索项目详情
获取有关特定项目的详细信息:
curl -X GET $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \ -H "Authorization: Bearer $OPENAI_API_KEY"
更新项目
修改项目属性,例如名称:
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Production Chatbot v2" }'
管理项目标签
添加新标签或更新现有标签值:
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "add_tags": { "Application": "WebApp", "Version": "2.0", "Team": "Engineering" } }'
通过其密钥删除特定标签:
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_5d5ykleja6cwpirysbb7 \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "remove_tag_keys": ["Version", "OldTagKey"] }'
重要提示
-
无法完全替换:没有一次替换整个标签集的操作。必须明确指定要添加和移除哪些标签。
-
错误处理:实施正确的错误处理和验证
存档项目
存档不再使用的项目:
curl -X POST $OPENAI_BASE_URL/organization/projects/proj_abc123/archive \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -H "Content-Type: application/json"
重要
存档项目不能用于新的推理请求,但历史数据和指标最多可访问 30 天。
使用具有不同 API 的项目
最佳实践
推荐的项目结构
每个应用程序一个项目:为每个不同的应用程序或服务创建单独的项目。
├── CustomerChatbot-Production ├── CustomerChatbot-Staging ├── CustomerChatbot-Development ├── InternalSearch-Production └── InternalSearch-Development
-
单独的环境:将不同的项目用于开发、暂存和生产环境。
-
实验隔离:为实验和概念验证创建专门的项目。
项目生命周期管理
-
尽早创建项目:在部署应用程序之前设置项目
-
使用一致的命名:遵循组织命名规范
-
记录项目目的:包括清晰的描述
-
定期审计:定期审查和存档未使用的项目
-
监控使用情况:跟踪项目指标以确定优化机会