Agent Registry では、エンドポイントは、エージェントがアクセスするターゲット URL(通常は REST API)を表します。これらの宛先を Agent Registry 内のマネージド エージェント コンポーネントとして登録することで、エージェントのフリートが接続できる外部エンドポイントを一元的に管理できます。
このドキュメントでは、レジストリに外部エンドポイントを明示的に登録する方法について説明します。
始める前に
始める前に、Agent Registry を設定します。これらのタスクを実行するには、プロジェクト ID が必要です。
このドキュメントの Google Cloud CLI コマンドを使用するには、gcloud CLI 環境を設定していることを確認してください。
必要なロール
エージェント レジストリにエンドポイントを登録するために必要な権限を取得するには、プロジェクトに対する Agent Registry API 編集者 (roles/agentregistry.editor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
エンドポイントを登録する
エンドポイントはカスタムの外部宛先であるため、手動登録を使用して Agent Registry に追加します。
コンソール
Google Cloud コンソールで、[Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
[エンドポイントを追加] をクリックします。
[エンドポイントの詳細] パネルで、表示名、説明、地理的リージョン、リンク先 URL を入力します。
必要に応じて、このパネルの [接続をテスト] をクリックして、リンク先 URL への接続をテストします。
[保存] をクリックします。
gcloud
no-spec の endpoint-spec-type を使用して Service リソースを作成します。
エンドポイントを登録し、インターフェース接続の詳細を定義します。
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)。PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。DISPLAY_NAME: エンドポイントの人が読める形式の名前。ENDPOINT_URL: ターゲット URL(https://api.example.com/v1/dataなど)。PROTOCOL: インターフェースのプロトコル バインディング。有効な値はhttp-json、grpc、jsonrpcです。
Service リソースが作成されると、Agent Registry は、エージェントとオーケストレーターが検出して使用できる読み取り専用の Endpoint リソースをコンシューマー側に自動的に生成します。
Terraform
外部エンドポイントを登録するには、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)。DISPLAY_NAME: エンドポイントの人が読める形式の名前。ENDPOINT_URL: ターゲット URL(https://api.example.com/v1/dataなど)。PROTOCOL: インターフェースのプロトコル バインディング。有効な値はHTTP_JSON、GRPC、JSONRPCです。
複合 Google API エンドポイントを登録する
クロス プロジェクト アーキテクチャでは、中央のガバナンス プロジェクトが Agent Registry や Agent Gateway などの共有インフラストラクチャをホストし、個々のワークロード プロジェクトがエージェント コンピューティング インスタンスをホストします。
下り(外向き)モードで Agent Gateway を介してエージェント トラフィックをルーティングすると、送信ネットワーク トラフィックはデフォルトでブロックされます。ワークロード プロジェクトのエージェントが重要な Google Cloud API と通信できるようにするには、複数の API インターフェースを中央ガバナンス プロジェクトの単一の複合 Service エンドポイントにグループ化します。
インターフェースを 1 つのエンドポイントにグループ化すると、コア Google API のスイート全体に対して 1 つの IAP ポリシー バインディングを管理できるため、ポリシー管理が簡素化されます。
複合 Google API エンドポイントを登録する手順は次のとおりです。
gcloud
中央ガバナンス プロジェクトに複数のインターフェース URL を持つエンドポイントを登録します。
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)。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 の URL(https://telemetry.googleapis.comなど)。ADDITIONAL_API_URL: エージェントで必要な追加の Google API URL またはバリアント(https://cloudresourcemanager.googleapis.com、https://iamcredentials.googleapis.com、https://agentregistry.googleapis.com、リージョン バリアントや mTLS バリアント(https://telemetry.mtls.googleapis.comなど))ごとに、--interfacesフラグを繰り返します。
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。DISPLAY_NAME: 人が読める形式の名前。DESCRIPTION: サービスの説明。API_URL: プライマリ Google API の URL(https://telemetry.googleapis.comなど)。ADDITIONAL_API_URL: エージェントに必要な追加の Google API URL またはバリアント(https://cloudresourcemanager.googleapis.com、https://iamcredentials.googleapis.com、https://agentregistry.googleapis.com、リージョン バリアントや mTLS バリアント(https://telemetry.mtls.googleapis.comなど))ごとに、interfacesブロックを繰り返します。
次のステップ
- 登録済みエンドポイントを管理して検出する方法を学習する。
- 登録済みエンドポイントの IAM 下り(外向き)ポリシーを構成する方法を学習する。