

# Amazon Bedrock AgentCore 執行期目標
<a name="gateway-target-http-runtime"></a>

您可以新增 Amazon Bedrock AgentCore 執行期代理程式做為閘道目標。閘道會將流量直接傳送至執行期代理程式，無需彙總或通訊協定轉譯。與將工具功能結合到統一虛擬 MCP 伺服器的 MCP 目標不同，AgentCore 執行期目標會在用戶端和執行期代理程式之間轉送請求和回應，而無需修改。

當您AgentCore想要：
+ 透過單一閘道端點，為您的執行階段代理程式提供集中式存取管理。
+ 為您的執行期代理程式使用閘道的內建身分驗證和可觀測性。
+ 當多個目標連接到閘道時，使用路徑型路由將請求路由到特定的執行期代理程式。
+ 使用 Amazon Bedrock AgentCore 最佳化來產生來自代理程式追蹤的建議、透過閘道即時流量的 A/B 測試變更，以及部署獲勝組態，以最佳化代理程式的效能。如需詳細資訊，請參閱 [AgentCore 最佳化](https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/optimization.html)。

**Topics**
+ [重要考量和限制](#gateway-target-http-runtime-considerations)
+ [目標組態](#gateway-target-http-runtime-config)
+ [叫用 AgentCore 執行期目標](#gateway-target-http-runtime-invoke)
+ [傳出授權](#gateway-target-http-runtime-auth)
+ [透過閘道強制執行流量](#gateway-target-http-runtime-source-validation)
+ [與 MCP 目標的功能比較](#gateway-target-http-runtime-comparison)

## 重要考量和限制
<a name="gateway-target-http-runtime-considerations"></a>

使用 AgentCore 執行期目標時，請注意下列考量：
+ 閘道會將流量直接傳送到 AgentCore 執行期目標，而不彙總功能。
+ AgentCore 執行期目標可以新增至未設定通訊協定類型的閘道。它們無法新增至 MCP 通訊協定類型閘道。
+ AgentCore 執行期目標無法使用功能同步或語意工具搜尋。用戶端必須透過路徑型路由個別處理每個目標。
+ AgentCore 執行期目標支援 Server-Sent Events (SSE) 串流。
+ 緩衝模式下支援請求和回應攔截器 Lambda 函數。串流模式中尚未支援攔截器。

## 目標組態
<a name="gateway-target-http-runtime-config"></a>

當您建立 AgentCore 執行期目標時，您會提供執行期 ARN 和選用的限定詞。閘道會在內部解析執行時間端點，因此您不需要自行建構執行時間 URL。

AgentCore 執行期目標的目標組態使用以下結構：

```
{
    "http": {
        "agentcoreRuntime": {
            "arn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID",
            "qualifier": "DEFAULT",
            "schema": {
                "source": {
                    "s3": {
                        "uri": "s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml"
                    }
                }
            }
        }
    }
}
```
+  **arn** （必要） – Amazon Bedrock AgentCore 執行期代理程式的 ARN。
+  **限定詞** （選用） – 執行時間限定詞。預設為 `DEFAULT`。
+  **結構描述** （選用） – 描述執行時間目標請求和回應結構的 API 結構描述。閘道使用此結構描述來啟用政策引擎功能，例如護欄。結構描述格式會自動偵測為 OpenAPI 或 Smithy。

  對於使用 MCP 或 A2A 通訊協定的執行期代理程式，會自動套用預設結構描述，您不需要提供。對於使用 HTTP 通訊協定的執行期代理程式，您必須提供結構描述才能使用護欄。

  `schema` 物件包含`source`指定結構描述內容位置的 ：
  +  **s3** – 指向結構描述檔案的 S3 URI （例如，`s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml`)。
  +  **inlinePayload** – 直接以字串形式提供的結構描述內容。

**注意**  
如果您的執行期代理程式使用 HTTP 通訊協定，而且您想要透過閘道的政策引擎套用護欄，則必須提供結構描述。對於使用 MCP 或 A2A 通訊協定的執行期代理程式，會自動套用預設結構描述。

## 叫用 AgentCore 執行期目標
<a name="gateway-target-http-runtime-invoke"></a>

若要透過閘道叫用 AgentCore 執行期目標，請將 POST 請求傳送至目標的叫用 URL。URL 格式為：

```
https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/{targetName}/invocations
```

`{gatewayId}` 將 取代為您的閘道 ID、`{region}`將 取代為 AWS 區域，並將 `{targetName}`取代為目標的名稱。

下列範例使用 curl 來叫用 AgentCore 執行期目標：

```
curl -X POST https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target/invocations \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <token>" \
    -d '{"input": {"prompt": "Hello"}}'
```

您也可以使用 Amazon Bedrock AgentCore SDK 搭配端點 URL 覆寫：

```
aws bedrock-agentcore invoke-agent-runtime \
    --endpoint-url https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target \
    --runtimeArn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID
```

## 傳出授權
<a name="gateway-target-http-runtime-auth"></a>

AgentCore 執行期目標支援下列傳出授權類型：
+  **IAM (SigV4)** – 閘道會擔任閘道服務角色，以取得憑證以簽署對執行時間目標的請求。當您設定 IAM 授權時，您可以使用 IAM 政策來限制僅對閘道角色的存取，以確保所有執行期請求都流經閘道。
+  **呼叫者 IAM 登入**資料 – 閘道會使用呼叫者的 IAM 登入資料來簽署對執行時間目標的請求。閘道會代表發起人擔任角色，並使用發起人的身分簽署傳出請求。
+  **OAuth (JWT)** – 閘道會透過 Amazon Bedrock AgentCore 身分服務，從目標中設定的憑證提供者擷取 OAuth 字符。
+  **權杖傳遞** – 閘道會驗證傳入權杖，並將其傳遞至執行期目標，無需修改。當執行時間處理自己的授權時，這會很有用。

## 透過閘道強制執行流量
<a name="gateway-target-http-runtime-source-validation"></a>

您可以使用 AgentCore Gateway 預付 AgentCore 執行期，讓閘道成為執行期的單一受管進入點 — 為您提供以政策為基礎的授權、Amazon Bedrock Guardrails、請求和回應攔截器，以及統一的可觀測性，這些都適用於代理程式自己的環境之外。如需完整理由，請參閱[使用 AgentCore Gateway 開啟您的執行時間](runtime-security-best-practices.md#security-bp-front-with-gateway)。但這只有在您無法略過閘道並直接存取執行時間時才有用。您現在可以達成此目標，無論執行時間是使用 IAM (SigV4) 還是 OAuth (JWT) 傳入授權。

您可以在執行時間上設定此限制。閘道會為轉送的每個請求的來源加上戳記，而執行時間會驗證傳入的來源。特定機制取決於執行時間的傳入授權類型：
+  **IAM (SigV4) 執行時間** – 連接以資源為基礎的政策，將調用限制在閘道的執行角色。如需政策及其所需的信任政策強化，請參閱[限制對閘道的 IAM (SigV4) 傳入呼叫](runtime-oauth.md#runtime-restrict-iam-gateway)。
+  **OAuth (JWT) 執行時間** – 在執行時間的 `allowedWorkloadConfiguration`上設定 `customJWTAuthorizer`，以僅允許閘道的工作負載。如需組態和欄位參考，請參閱[限制對閘道的呼叫](runtime-oauth.md#deploy-agent-allowed-workload)。

## 與 MCP 目標的功能比較
<a name="gateway-target-http-runtime-comparison"></a>

您可以使用兩種方法將 MCP 伺服器與 Amazon Bedrock AgentCore 閘道整合：在彙總模式下使用 MCP 目標類型，或使用 AgentCore 執行期目標類型。下表會比較每種方法的功能。


| 功能 | 具有 MCP 目標的 MCP 閘道 | AgentCore 執行期目標 | 
| --- | --- | --- | 
| 工具/功能彙總 | 將所有 MCP 目標的功能彙總到單一統一虛擬 MCP 伺服器。用戶端會看到一個合併`tools/list`回應。 | 獨立運作。閘道會將流量直接傳送至目標，而不合併功能。用戶端必須透過路徑型路由個別處理每個目標。 | 
| 語意工具搜尋 | 索引工具描述，並透過自然語言查詢啟用探索。 | 不可用。閘道不會擷取或索引功能。用戶端必須知道確切的工具名稱或使用伺服器自己的 `tools/list`。 | 
| 回應攔截器 Lambda | 支援非串流 MCP 操作的請求和回應攔截器。 | 在緩衝模式下支援請求和回應攔截器 Lambda 函數。串流模式中尚未支援攔截器。 | 