View a markdown version of this page

同步来自外部来源的记录 - Amazon Bedrock AgentCore

同步来自外部来源的记录

即将进行的命名空间迁移

AWS Agent Registry 目前在 bedrock-agentcore 命名空间下处于公开预览状态。从 2026 年 8 月 6 日起,该服务将移至代理注册表命名空间。如果您使用 AWS 代理注册表,则必须更新您的终端节点、IAM 策略、SDK 客户端、CLI 脚本和注册表数据。有关从公共预览版迁移的更多信息,请参阅注册表迁移综合指南

概述

AWS Agent Registry 可以通过使用出站凭据连接到提供的 URL 来自动同步来自外部来源的记录元数据。当您提供 URL 和凭据提供者(对于不需要任何授权即可访问的公共资源是可选的)时,系统会提取服务器和工具定义并填充符合官方协议架构的记录描述符。如果在源代码中找到这些值,它还会更新记录的名称、描述和版本。

从公共 MCP 服务器进行同步

对于不需要身份验证或授权的公共 MCP 服务器:

控制台

  1. 打开注册表详情页面。

  2. 在 “注册记录” 部分,选择 “创建记录”。

  3. 选择从端点同步

  4. 记录详细信息下,选择 MCP 作为记录类型。

  5. 对于端点,输入公共 MCP 服务器网址(例如https://knowledge-mcp.global.api.aws)。必须是有效的 HTTPS 网址。

  6. 在 “凭据类型” 下,选择 “”。

  7. 选择创建记录

    该记录的创建状态为 “正在创建”。注册表连接到端点,提取服务器和工具定义,并填充记录的描述符。同步完成后,记录将转换为 “草稿”。如果同步失败,则记录将转换为 CREATE_FAILED 状态,错误详细信息显示在 “状态原因” 字段中。有关疑难解答,请参阅记录同步错误

AWS CLI

aws bedrock-agentcore-control create-registry-record \ --registry-id $REGISTRY_ID \ --name "aws-knowledge-server" \ --descriptor-type MCP \ --synchronization-type URL \ --synchronization-configuration '{ "fromUrl": { "url": "https://knowledge-mcp.global.api.aws" } }' \ --region us-east-1

AWS SDK

import boto3 client = boto3.client('bedrock-agentcore-control') response = client.create_registry_record( registryId='<registryId>', name='aws-knowledge-server', descriptorType='MCP', synchronizationType='URL', synchronizationConfiguration={ 'fromUrl': { 'url': 'https://knowledge-mcp.global.api.aws' } } ) print(f"Record ARN: {response['recordArn']}") print(f"Status: {response['status']}") # CREATING

该记录的创建状态为 “正在创建”。同步时间从几秒到几分钟不等,具体取决于元数据的大小。同步完成后,它将转换为 DRAFT,其中包含从 MCP 服务器中提取的描述符,包括服务器和工具定义。

从 OAuth-protected MCP 服务器进行同步

当 MCP 服务器受到 OAuth 保护时,您需要在授权服务器上创建 M2M 客户端,然后从 Ident AgentCore ity 中配置一个包含客户端 ID 和密钥许可名单的凭证提供商,以调用 MCP 服务器。获得凭据提供商后,可以将其提供给注册表进行同步:

控制台

  1. 打开注册表详情页面。

  2. 在 “注册记录” 部分,选择 “创建记录”。

  3. 选择从端点同步

  4. 记录详细信息下,选择 MCP 作为记录类型。

  5. 对于端点,输入 OAuth-protected MCP 服务器 URL。必须是有效的 HTTPS 网址。

  6. 在 “凭据类型” 下,选择 OAuth

  7. 对于凭证提供者,请从 “身份” 中选择或输入凭证提供者 ARN。 AgentCore

  8. (可选)展开其他配置以配置:

    1. 范围 — 获取访问令牌时要请求的 OAuth 范围。

    2. 自定义参数-OAuth 令牌请求的其他键值参数。

  9. 选择创建记录

    该记录的创建状态为 “正在创建”。注册表使用 OAuth 凭据连接到端点,提取服务器和工具定义,并填充记录的描述符。同步完成后,记录将转换为 “草稿”。如果同步失败,则记录将转换为 CREATE_FAILED 状态,错误详细信息显示在 “状态原因” 字段中。有关疑难解答,请参阅记录同步错误

AWS CLI

aws bedrock-agentcore-control create-registry-record \ --registry-id $REGISTRY_ID \ --name "oauth-mcp-server" \ --descriptor-type MCP \ --synchronization-type URL \ --synchronization-configuration '{ "fromUrl": { "url": "$MCP_OAUTH_URL", "credentialProviderConfigurations": [ { "credentialProviderType": "OAUTH", "credentialProvider": { "oauthCredentialProvider": { "providerArn": "$OAUTH_PROVIDER_ARN", "grantType": "CLIENT_CREDENTIALS" } } } ] } }' \ --region us-east-1

需要其他 IAM 权限:

{ "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:GetWorkloadAccessToken" ], "Resource": [ "arn:aws:bedrock-agentcore:*:<account>:workload-identity-directory/*" ] }, { "Effect": "Allow", "Action": [ "bedrock-agentcore:GetResourceOauth2Token" ], "Resource": [ "arn:aws:bedrock-agentcore:*:<account>:token-vault/*" ] } ] }

限制:

  • CreateRegistryRecord 或的调用者 UpdateRegistryRecord 必须拥有与 GetWorkloadAccessToken 注册表关联的工作负载身份和凭据提供者的 GetResourceOauth2Token 权限。

  • 凭证提供者必须来自同一个账户。

从 IAM-protected MCP 服务器进行同步

对于 AgentCore 运行时或 AgentCore 网关上的 MCP 服务器,请为 Sigv4 签名指定 IAM 角色。该角色必须具有访问目标服务的权限。例如:bedrock-agentcore:InvokeAgentRuntime或者bedrock-agentcore:InvokeAgentRuntimeForUser在 AgentCore 运行时上;bedrock-agentcore:InvokeGateway在 AgentCore 网关上。

除了 IAM 角色外,您还必须为 Sigv4 签名指定service字段。如果您的 MCP 在 R AgentCore untime 或 AgentCore Gateway 上运行,则该值应bedrock-agentcore为。如果您的 MCP 在 API 网关上运行,则应该execute-api如此;如果您的 MCP 在 lambda 上运行,则应该如此。lambda

region值是可选的。默认情况下,请求将使用与注册表相同的区域进行签名。

控制台

  1. 打开注册表详情页面。

  2. 在 “注册记录” 部分,选择 “创建记录”。

  3. 选择从端点同步

  4. 记录详细信息下,选择 MCP 作为记录类型。

  5. 对于端点,输入 IAM-protected MCP 服务器 URL。必须是有效的 HTTPS 网址。

  6. 凭证类型下,选择 IAM

  7. 对于角色 ARN,请输入要代入的 IAM 角色 ARN 以进行 Sigv4 签名。

  8. 对于服务,输入 Sigv4 签名的服务名称(例如、bedrock-agentcoreexecute-apilambda)。

  9. (可选)展开其他配置并选择 Sigv4 签名的区域。如果未指定,则使用注册表自己的区域。

  10. 选择创建记录

    该记录的创建状态为 “正在创建”。注册表使用 IAM 证书连接到终端节点,提取服务器和工具定义,并填充记录的描述符。同步完成后,记录将转换为 “草稿”。如果同步失败,则记录将转换为 CREATE_FAILED 状态,错误详细信息显示在 “状态原因” 字段中。有关疑难解答,请参阅记录同步错误

AWS CLI

aws bedrock-agentcore-control create-registry-record \ --registry-id $REGISTRY_ID \ --name "gateway-mcp-server" \ --descriptor-type MCP \ --synchronization-type URL \ --synchronization-configuration '{ "fromUrl": { "url": "$MCP_IAM_URL", "credentialProviderConfigurations": [ { "credentialProviderType": "IAM", "credentialProvider": { "iamCredentialProvider": { "roleArn": "$IAM_ROLE_ARN", "service": "$SIGNING_SERVICE", "region": "$SIGNING_REGION" } } } ] } }' \ --region us-east-1

需要其他 IAM 权限:

{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account>:role/<sync-role>" ], "Condition": { "StringEquals": { "iam:PassedToService": "bedrock-agentcore.amazonaws.com" } } } ] }

从 A2A 代理卡进行同步

提供.well-known/agent-card.json可以找到的代理卡片网址或代理的基本网址:

控制台

  1. 打开注册表详情页面。

  2. 在 “注册记录” 部分,选择 “创建记录”。

  3. 选择从端点同步

  4. 在 “记录详细信息” 下,选择 “代理” 作为记录类型。

  5. 对于 E ndpoint,输入代理卡片网址(例如https://agent.example.com/.well-known/agent-card.json)。必须是有效的 HTTPS 网址。

  6. 在 “凭据类型” 下,选择相应的授权方法:

    1. — 适用于可公开访问的代理卡。

    2. IAM — 适用于托管在 AgentCore 运行时或网关上的代理。提供角色 ARN服务名称。

    3. OAuth-适用于 OAuth-protected 代理。选择或输入凭证提供商 AR N。

  7. 选择创建记录

    该记录的创建状态为 “正在创建”。注册表连接到端点,提取代理卡元数据并填充记录的描述符。同步完成后,记录将转换为 “草稿”。如果同步失败,则记录将转换为 CREATE_FAILED 状态,错误详细信息显示在 “状态原因” 字段中。有关疑难解答,请参阅记录同步错误

AWS CLI

aws bedrock-agentcore-control create-registry-record \ --registry-id $REGISTRY_ID \ --name "travel-agent" \ --descriptor-type A2A \ --synchronization-type URL \ --synchronization-configuration '{"fromUrl": {"url": "https://agent.example.com/.well-known/agent-card.json"}}' \ --region us-east-1

您还可以为 A2A 同步指定凭据提供程序,例如,您可以从托管在以下位置的代理进行同步: AgentCore

aws bedrock-agentcore-control create-registry-record \ --registry-id $REGISTRY_ID \ --name "a2a_agent_record" \ --descriptor-type A2A \ --synchronization-type URL \ --synchronization-configuration "{ \"fromUrl\": { \"url\": \"$A2A_URL\", \"credentialProviderConfigurations\": [{ \"credentialProviderType\": \"IAM\", \"credentialProvider\": { \"iamCredentialProvider\": { \"roleArn\": \"$IAM_INVOKER_ROLE\", \"service\": \"bedrock-agentcore\" } } }] } }"

触发现有记录的同步

控制台

  1. 打开已配置同步的 MCP 或 Agent 记录的记录详细信息页面。

  2. 在标题操作中选择 “同步” 按钮。

  3. 在确认对话框中,查看同步会将记录恢复为草稿状态的消息。

  4. 选择 “同步” 进行确认。

同步期间,记录将变为 “正在更新” 状态。完成后,它将返回到草稿,其中包含来自源代码的更新的描述符。如果同步失败,则记录将转换为 UPDATE_FAILED 状态,错误详细信息显示在 “状态原因” 字段中。有关疑难解答,请参阅记录同步错误

或者,你可以在编辑期间触发同步:

  1. 在记录详情页面中,选择三点菜单 (‹),然后选择编辑

  2. 在 “从端点同步” 下,选中 “Re-sync 从端点同步” 复选框。

  3. 选择保存更改

AWS CLI

aws bedrock-agentcore-control update-registry-record \ --registry-id $REGISTRY_ID \ --record-id $RECORD_ID \ --trigger-synchronization \ --region us-east-1

AWS SDK

import boto3 client = boto3.client('bedrock-agentcore-control') response = client.update_registry_record( registryId='<registryId>', recordId='<recordId>', triggerSynchronization=True ) print(f"Status: {response['status']}")
注意

如果记录处于非草稿状态(例如 “已批准”),则更新会创建新的草稿修订版。已批准的修订版仍可搜索。

疑难解答:请参阅记录同步错误