

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 工作空间 () Anthropic-compatible
<a name="workspaces"></a>

Amazon Bedrock Workspaces 使用终端节点上的 Anthropic-compatible 消息 API 为您的生成式 AI 工作负载提供应用程序级隔离。`bedrock-mantle`Workspaces 使您能够对 AI 应用程序进行细分，以实现成本跟踪、可观察性和访问控制。

**注意**  
工作空间只能与在`bedrock-mantle`端点上支持消息 API 的模型一起使用。要查看哪些型号支持消息 API，请参阅[Amazon Bedrock 支持的 API](apis.md)。  
如果您使用的是 OpenAI-compatible API（响应 API、聊天完成），请[项目 (OpenAI-compatible)](projects.md)改用。

## 什么是工作空间？
<a name="workspaces-what-is"></a>

工作区是一个逻辑边界，用于在使用 Anthropic Messages API 时在 Amazon Bedrock 中隔离应用程序、环境或实验等工作负载。工作空间与底层资源相同[项目 (OpenAI-compatible)](projects.md)，它们使用 Projects API 进行管理，并提供相同的功能：
+ **访问隔离**：使用 [Amazon Bedrock Projects 的 IAM 策略](security-iam-projects.md)控制谁可以访问特定的工作空间资源
+ **成本监控**：使用 [AWS 标签和 AWS](https://docs.aws.amazon.com/whitepapers/latest/tagging-best-practices/what-are-tags.html) Cost [Explorer](https://docs.aws.amazon.com/cost-management/latest/userguide/ce-what-is.html) 跟踪工作空间级别的支出
+ **可观察性**：跟踪每个工作空间的使用指标和模式，以进行监控和优化。

Workspaces 允许您在生产环境中管理多个生成式 AI 工作负载，无需创建单独的 AWS 账户或组织，从而降低运营复杂性，同时保持安全性和治理。

每个 AWS 账户都有一个默认的工作空间（项目），所有推理请求都与之关联。您可以使用 Projects API 创建其他工作空间，并使用`anthropic-workspace`标头在消息 API 请求中引用它们。

## 何时使用工作区
<a name="workspaces-when-to-use"></a>

当你需要执行以下操作时，你应该使用工作区：
+ **按业务结构整理**：根据您的组织分类（例如业务部门、团队、应用程序或成本中心）管理 Amazon Bedrock 的使用情况
+ **准确跟踪成本**：监控人工智能支出并将其分配给特定团队、项目或环境
+ **强制执行访问策略**：应用精细的 IAM 权限来控制谁可以访问特定 AI 工作负载
+ **扩展生产工作负载**：在明确的运营界限和监控的情况下运行多个生产应用程序

## 工作空间与项目
<a name="workspaces-vs-projects"></a>

工作空间和[项目 (OpenAI-compatible)](projects.md)是相同的底层资源，两者都通过 Projects API 进行管理。不同之处在于你在推理请求中如何引用它们，具体取决于你使用的 API：


| 功能 | Workspaces | Projects | 
| --- | --- | --- | 
| 支持的 API | 人类信息 API | OpenAI-compatible API（回复、聊天完成） | 
| 端点 | bedrock-mantle.{region}.api.aws/anthropic/v1/messages | bedrock-mantle.{region}.api.aws/v1 | 
| 标题 | anthropic-workspace: {project-id} | OpenAI-Project: {project-id} | 
| 管理 API | 项目 API | 项目 API | 
| 访问控制 | 在 IAM 策略中将项目作为资源 | 在 IAM 策略中将项目作为资源 | 
| 成本跟踪 | AWS 项目上的标签 | AWS 项目上的标签 | 

## 工作空间入门
<a name="workspaces-getting-started"></a>

本部分将指导您创建工作空间、将其与 Messages API 请求关联以及验证您的设置。

### 先决条件
<a name="workspaces-prerequisites"></a>

在开始之前，请确保您满足以下条件：
+ 具有 Amazon Bedrock 访问权限的 AWS 账户
+ 创建和管理 Amazon Bedrock 项目的 IAM 权限
+ 用于 Amazon Bedrock 身份验证的 [API 密钥](api-keys.md)
+ 访问 Claude 模型（参见[请求访问模型](model-access.md)）

### 第 1 步：设置环境
<a name="workspaces-setup-environment"></a>

使用您的 Amazon Bedrock 凭证配置您的环境变量：

```
export BEDROCK_API_KEY="<your-bedrock-key>"
export BEDROCK_REGION="us-east-1"
```

### 步骤 2：创建工作区
<a name="workspaces-create"></a>

工作空间是使用项目 API 创建的。创建一个带有名称和标签的工作空间（项目），用于成本监控：

```
curl -X POST "https://bedrock-mantle.$BEDROCK_REGION.api.aws/v1/organization/projects" \
  -H "Authorization: Bearer $BEDROCK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Claude Chatbot Production",
    "tags": {
      "Application": "CustomerChatbot",
      "Environment": "Production",
      "Team": "NLPEngineering",
      "CostCenter": "41250"
    }
  }'
```

响应：

```
{
  "arn": "arn:aws:bedrock-mantle:us-east-1:123456789012:project/proj_abc123def456",
  "created_at": 1772135628,
  "id": "proj_abc123def456",
  "name": "Claude Chatbot Production",
  "object": "organization.project",
  "status": "active",
  "tags": {
    "Application": "CustomerChatbot",
    "Environment": "Production",
    "Team": "NLPEngineering",
    "CostCenter": "41250"
  }
}
```

请注意该`id`字段 — 这是您在`anthropic-workspace`标题中传递的值。

### 步骤 3：将请求与您的工作区关联
<a name="workspaces-associate-requests"></a>

要将您的 Messages API 请求与工作空间相关联，请在`anthropic-workspace`标题中添加项目 ID：

------
#### [ curl ]

```
curl -X POST "https://bedrock-mantle.$BEDROCK_REGION.api.aws/anthropic/v1/messages" \
  -H "x-api-key: $BEDROCK_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "anthropic-workspace: proj_abc123def456" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic.claude-sonnet-4-6-v1",
    "max_tokens": 1024,
    "messages": [
        {"role": "user", "content": "Hello, how can you help me today?"}
    ]
  }'
```

------
#### [ Python (Anthropic SDK) ]

```
import anthropic

client = anthropic.Anthropic(
    base_url=f"https://bedrock-mantle.{region}.api.aws/anthropic",
    api_key=bedrock_api_key,
)

response = client.messages.create(
    model="anthropic.claude-sonnet-4-6-v1",
    max_tokens=1024,
    extra_headers={"anthropic-workspace": "proj_abc123def456"},
    messages=[
        {"role": "user", "content": "Hello, how can you help me today?"}
    ]
)

print(response.content[0].text)
```

------

使用相同的工作空间 ID 发出的所有推理请求都归为一组，从而实现了每个工作空间的成本跟踪、访问控制和可观察性。

### 步骤 4：验证您的工作区设置
<a name="workspaces-verify"></a>

列出所有工作空间（项目）以验证您的工作空间已成功创建：

```
curl -X GET "https://bedrock-mantle.$BEDROCK_REGION.api.aws/v1/organization/projects" \
  -H "Authorization: Bearer $BEDROCK_API_KEY"
```

## 管理工作空间
<a name="workspaces-managing"></a>

由于工作区是通过 Projects API 管理的，因此所有项目管理操作都适用。有关以下[处理 项目](projects.md#projects-working-with)内容的详细说明，请参阅：
+ **列出工作空间**：检索您账户中的所有工作空间
+ **检索详细信息**：获取有关特定工作空间的信息
+ **更新工作空间**：修改工作空间名称或标签
+ **管理标签**：添加或移除标签以进行成本分配
+ **存档工作空间**：存档不再使用的工作空间

## 最佳实践
<a name="workspaces-best-practices"></a>

### 推荐的工作区结构
<a name="workspaces-recommended-structure"></a>

**每个应用程序一个工作区**：为每个不同的应用程序或服务创建单独的工作区。

```
├── Claude-Chatbot-Production
├── Claude-Chatbot-Staging
├── Claude-Chatbot-Development
├── Claude-Summarizer-Production
└── Claude-Summarizer-Development
```
+ **单独的环境**：为开发、暂存和生产环境使用不同的工作空间。
+ **实验隔离**：创建用于实验和概念验证的专用工作空间。

### 工作空间生命周期管理
<a name="workspaces-lifecycle-management"></a>
+ **尽早创建工作空间**：在部署应用程序之前设置工作空间
+ **使用一致的命名**：遵循组织命名惯例
+ **成本分配标签**：始终包括成本中心和团队标签
+ **定期审计**：定期审查和存档未使用的工作空间
+ **监控使用情况**：跟踪工作空间指标以确定优化机会