

# 配置包传播和可观察性
<a name="gateway-rules-propagation"></a>

当网关通过规则解析配置包时，它会通过 OpenTelemetry (oTel) 行李标头将捆绑包传播到下游服务。这样可以跨网关和代理架构进行端到端的配置管理。

## 配置包如何传播
<a name="gateway-rules-propagation-how"></a>

网关使用以下密钥在 oTel 行李中设置已解析的捆绑包 ARN 和版本：


| 行李钥匙 | 说明 | 
| --- | --- | 
|  `aws.agentcore.configbundle_arn`  | 已解析的配置包的 ARN。 | 
|  `aws.agentcore.configbundle_version`  | 已解析的配置包的版本。 | 

传播流程的工作原理如下：

1. 网关评估规则并解析配置包。

1. 网关在传出请求时在 oTel 行李标题中设置捆绑包 ARN 和版本。

1. 代理运行时会收到带有行李标题的请求。运行时间由您控制。如果需要，您的代理代码可以从 oTel 行李中读取配置包 ARN 和版本。

1. 如果代理调用带有 MCP 目标的网关，则网关会从 oTel 行李中读取捆绑包，并在响应中应用工具描述优先选项。`tools/list`有关更多信息，请参阅 [MCP 目标上的行为](#gateway-rules-propagation-mcp)。

## MCP 目标上的行为
<a name="gateway-rules-propagation-mcp"></a>

网关仅对路径的 MCP 目标应用配置包覆盖。`tools/list``invoke_tool`和`search_tool`路径不支持配置包覆盖。

例如，如果配置包覆盖了目标的工具描述，则更新的描述会出现在`tools/list`响应中，但不会出现在`search_tool`响应中。

要应用这些替代，网关会调用`GetConfigurationBundleVersion`以读取捆绑包的内容。将此权限添加到网关的执行角色中：

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "bedrock-agentcore:GetConfigurationBundleVersion",
            "Resource": "arn:aws:bedrock-agentcore:us-west-2:123456789012:configuration-bundle/*"
        }
    ]
}
```

**注意**  
只有网关执行角色才需要此权限才能进行 MCP `tools/list` 操作。代理运行时无需访问捆绑包，也不需要此权限。

## 约束
<a name="gateway-rules-propagation-constraints"></a>
+ 配置包必须与网关在同一个账户中。 Cross-account 不支持捆绑包访问权限。
+ 带有 HTTP 目标的网关不会从 oTel 行李中读取配置包。他们只能通过自己的规则解析捆绑包。如果您将装有 oTel 行李的捆绑包传递到带有 HTTP 目标的网关，则该网关会将其忽略。
+ 具有 MCP 目标的网关从 oTel 行李中读取配置包，并仅在路径上应用覆盖。`tools/list`

## 规则解析的可观察性
<a name="gateway-rules-propagation-observability"></a>

当网关解析请求的规则时，它会在网关服务器跨度上发出跨度属性。您可以使用这些属性来观察应用了哪些配置包版本和路由决策。

 **配置包覆盖属性** 


| 跨度属性 | 说明 | 
| --- | --- | 
|  `aws.agentcore.configbundle_arn`  | 已解析的配置包的 ARN。 | 
|  `aws.agentcore.configbundle_version`  | 已解析的配置包的版本。 | 

 **目标路由属性** 


| 跨度属性 | 说明 | 
| --- | --- | 
|  `aws.agentcore.gateway.resolved_target_name`  | 已解析目标的名称。 | 

使用这些属性来验证规则是否按预期解析并对路由行为进行故障排除。