

# 組態套件傳播和可觀測性
<a name="gateway-rules-propagation"></a>

當閘道透過規則解析組態套件時，它會透過 OpenTelemetry (OTel) 套件標頭將套件傳播到下游服務。這可讓您跨閘道和代理程式架構end-to-end組態管理。

## 組態套件如何傳播
<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>

閘道只會將組態套件覆寫套用至`tools/list`路徑的 MCP 目標。`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`操作的閘道執行角色需要此許可。代理程式執行時間會將套件傳遞至 ，而不加以存取，而且不需要此許可。

## Constraints
<a name="gateway-rules-propagation-constraints"></a>
+ 組態套件必須與閘道位於相同的帳戶中。不支援跨帳戶套件存取。
+ 具有 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`  | 已解析目標的名稱。 | 

使用這些屬性來驗證規則是否如預期解析，並對路由行為進行疑難排解。