借助 Agent Registry,您可以手动将目标网址(例如外部 REST API)注册为代管式端点,以便集中管理您的代理群可以连接到哪些目标。
us 和 eu 多区域位置不支持端点注册;您必须使用受支持的区域或 global 位置。如需了解详情,请参阅 Agent Registry 位置。
准备工作
- 设置 Agent Registry。
对于单项目设置,请获取已启用 Agent Registry 的治理项目的项目 ID。如果您为多个项目配置了管理边界,请使用管理项目的 ID 进行边界范围内的发现和注册,或指定成员项目 ID 进行单项目操作。
如需使用本文档中的 Google Cloud CLI 命令,请设置 gcloud CLI 环境。
所需的角色
如需获得在 Agent Registry 中注册端点所需的权限,请让管理员为您授予已启用 Agent Registry 的治理项目的 Agent Registry API Editor (roles/agentregistry.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
注册端点
由于端点是自定义的外部目标,因此请使用手动注册将其添加到 Agent Registry:
控制台
在 Google Cloud 控制台中,前往 Agent Registry:
在项目选择器中,选择您设置 Agent Registry 的 Google Cloud 项目。
选择端点标签页。
点击添加端点。
在端点详细信息面板中,输入显示名称、说明、地理区域和目标网址。
(可选)点击此面板中的测试连接,以测试与目标网址的连接。
点击保存。
gcloud
您使用的规范标志决定了组件所属的资源集合。如需查看标志与资源集合的完整映射,请参阅 [服务资源和发现资源](/agent-registry/data-model#service-resources)。
如需将端点添加到 Agent Registry,请使用 gcloud agent-registry services create 命令创建 Service 资源,并将 --endpoint-spec-type 标志设置为 no-spec:
gcloud agent-registry services create ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--endpoint-spec-type=no-spec \
--interfaces=url=ENDPOINT_URL,protocolBinding=PROTOCOL
替换以下内容:
ENDPOINT_NAME:您要为端点指定的名称,例如my-external-api。名称必须包含 4 到 63 个字符,并且只能包含小写字母、数字和连字符。PROJECT_ID:项目 ID。REGION:注册表区域。DISPLAY_NAME:端点的人类可读名称,例如My External API。ENDPOINT_URL:目标网址,例如https://api.example.com/v1/data。PROTOCOL:接口的协议绑定。有效值为http-json、grpc或jsonrpc。
创建 Service 资源后,Agent Registry 会自动生成一个只读 Endpoint 资源,智能体和编排器可以发现并使用该资源。
Terraform
您配置的规范块决定了组件所属的资源集合。如需查看规范与资源集合的完整映射,请参阅 [服务资源和发现资源](/agent-registry/data-model#service-resources)。
如需注册外部端点,请使用 endpoint_spec 块配置 google_agent_registry_service 资源:
resource "google_agent_registry_service" "endpoint" {
location = "REGION"
service_id = "ENDPOINT_NAME"
display_name = "DISPLAY_NAME"
description = "An external REST API registered using Terraform."
interfaces {
url = "ENDPOINT_URL"
protocol_binding = "PROTOCOL"
}
endpoint_spec {
type = "NO_SPEC"
}
}
output "endpoint_resource_name" {
description = "The generated read-only Endpoint resource name."
value = google_agent_registry_service.endpoint.registry_resource
}
替换以下内容:
REGION:注册表区域。ENDPOINT_NAME:您要为端点指定的唯一名称,例如my-external-api。名称必须介于 4 到 63 个字符之间,且只能包含小写字母、数字和连字符。DISPLAY_NAME:端点的人类可读名称,例如My External API。ENDPOINT_URL:目标网址,例如https://api.example.com/v1/data。PROTOCOL:接口的协议绑定。有效值为HTTP_JSON、GRPC或JSONRPC。
注册复合 Google API 端点
在跨项目架构中,中央治理项目托管共享基础设施(例如智能体注册表和智能体网关),而单独的 Google Cloud 项目托管智能体计算实例。
当您通过出站流量模式下的 Agent Gateway 路由智能体流量时,出站网络流量默认会被屏蔽。如需让不同 Google Cloud 项目中的代理与基本Google Cloud API 通信,您可以将多个 API 接口分组到中央治理项目中的单个复合 Service 资源中。
将接口分组到单个端点中,可让您为整套核心 Google API 管理单个 Identity-Aware Proxy (IAP) 政策绑定,从而简化政策管理。
请按照以下步骤注册复合 Google API 端点:
gcloud
使用 gcloud agent-registry services create 命令在中央治理项目中注册具有多个接口网址的端点:
gcloud agent-registry services create SERVICE_NAME \
--project=CENTRAL_PROJECT_ID \
--location=REGION \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--endpoint-spec-type=no-spec \
--interfaces=protocolBinding=jsonrpc,url=API_URL \
--interfaces=protocolBinding=jsonrpc,url=ADDITIONAL_API_URL
替换以下内容:
SERVICE_NAME:服务的标识符,例如core-gapi-services。名称必须包含 4 到 63 个字符,并且只能包含小写字母、数字和连字符。CENTRAL_PROJECT_ID:托管 Agent Registry 和 Agent Gateway 的中央治理项目的项目 ID。REGION:网关和注册表所在的区域。DISPLAY_NAME:人类可读的名称,例如Core Google APIs。DESCRIPTION:简要说明,例如Essential Google APIs for agent operations。API_URL:主要 Google API 的网址,例如https://telemetry.googleapis.com。ADDITIONAL_API_URL:为代理所需的每个其他 Google API 网址或变体重复--interfaces标志,例如https://cloudresourcemanager.googleapis.com、https://iamcredentials.googleapis.com、https://agentregistry.googleapis.com或区域和 mTLS 变体(例如https://telemetry.mtls.googleapis.com)。
Terraform
如需使用 Terraform 注册复合 Google API 端点,请使用多个 interfaces 块定义 google_agent_registry_service 资源:
resource "google_agent_registry_service" "core_gapi_services" {
project = "CENTRAL_PROJECT_ID"
location = "REGION"
service_id = "SERVICE_NAME"
display_name = "DISPLAY_NAME"
description = "DESCRIPTION"
endpoint_spec {
type = "NO_SPEC"
}
interfaces {
url = "API_URL"
protocol_binding = "JSONRPC"
}
# Add an interfaces block for each additional Google API URL
interfaces {
url = "ADDITIONAL_API_URL"
protocol_binding = "JSONRPC"
}
}
替换以下内容:
CENTRAL_PROJECT_ID:中央治理项目的项目 ID。REGION:注册表区域。SERVICE_NAME:服务 ID,例如core-gapi-services。名称必须包含 4 到 63 个字符,并且只能包含小写字母、数字和连字符。DISPLAY_NAME:人类可读的名称,例如Core Google APIs。DESCRIPTION:端点说明。API_URL:主要 Google API 的网址,例如https://telemetry.googleapis.com。ADDITIONAL_API_URL:为代理所需的每个额外 Google API 网址或变体(例如https://cloudresourcemanager.googleapis.com、https://iamcredentials.googleapis.com、https://agentregistry.googleapis.com或区域和 mTLS 变体,例如https://telemetry.mtls.googleapis.com)重复interfaces块。
后续步骤
- 了解如何管理和发现已注册的端点。
- 了解如何为已注册的端点配置 Identity and Access Management (IAM) 出站政策。