Agent Registry を使用すると、登録済みのエンドポイントを検出、更新、削除して、エージェントが有効なターゲット URL にトラフィックをルーティングできるようにします。プロジェクト全体で使用可能なエンドポイントを検査し、インフラストラクチャの変更に応じて接続の詳細を更新し、使用されなくなったエンドポイントを削除できます。
始める前に
- Agent Registry を設定する。
単一プロジェクトの設定の場合は、Agent Registry が有効になっているガバナンス プロジェクトのプロジェクト ID を取得します。複数のプロジェクトに管理境界を構成した場合は、境界全体の検出と登録に管理プロジェクトの ID を使用するか、単一プロジェクトのオペレーションにメンバー プロジェクト ID を指定します。
Agent Registry にエンドポイントを登録します。
このドキュメントの Google Cloud CLI コマンドを使用するには、gcloud CLI 環境を設定します。
必要なロール
Agent Registry でエンドポイントを管理するために必要な権限を取得するには、Agent Registry が有効になっているガバナンス プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
エンドポイントを検出する: Agent Registry API 閲覧者 (
roles/agentregistry.viewer) -
エンドポイントの更新と削除: Agent Registry API 編集者 (
roles/agentregistry.editor)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
エンドポイントを検出する
環境に登録されているターゲット URL と REST API を参照するには、使用可能な Endpoint リソースを一覧表示します。
すべてのエンドポイントを一覧表示する
環境内の登録済みエンドポイントをすべて一覧表示します。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
このページには、登録されているすべてのエンドポイントのリストと、名前、説明、ロケーションなどの詳細が表示されます。
エンドポイントの接続の詳細を表示するには、エンドポイントの名前をクリックします。
gcloud
特定のロケーションのすべてのエンドポイントを一覧表示するには、gcloud agent-registry endpoints list コマンドを実行します。
gcloud agent-registry endpoints list \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。
登録済みエンドポイントをフィルタする
複数のエンドポイントがある場合は、エンドポイントのメタデータでリストをフィルタできます。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
このページには、登録されているすべてのエンドポイントのリストと、名前、説明、ロケーションなどの詳細が表示されます。
ロケーションでフィルタするには、[ロケーション] メニューをクリックし、フィルタするロケーションを選択して、[適用] をクリックします。
選択した条件に一致する登録済みエンドポイントのフィルタされたリストが表示されます。
gcloud
gcloud agent-registry endpoints list コマンドに --filter フラグを渡して、特定のメタデータに一致するリソースのみを返すようにリストをフィルタします。
gcloud agent-registry endpoints list \
--project=PROJECT_ID \
--location=REGION \
--filter="FILTER_EXPRESSION"
次のように置き換えます。
PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。FILTER_EXPRESSION: フィルタするエンドポイントのフィルタ式。たとえば、表示名でフィルタするには、displayName='DISPLAY_NAME'を使用します。グローバルに一意のエンドポイント識別子(URN)でフィルタするには、endpointId='urn:endpoint:ENDPOINT_URN'を使用します。
Terraform
メタデータでフィルタして特定の登録済みエンドポイントを取得するには、filter 引数を使用して google_agent_registry_endpoint データソースを構成します。
data "google_agent_registry_endpoint" "filtered_endpoint" {
location = "REGION"
filter = "displayName=\"DISPLAY_NAME\""
}
次のように置き換えます。
REGION: レジストリ リージョン。DISPLAY_NAME: フィルタするエンドポイントの人が読める形式の名前(例:Example API Endpoint)。
エンドポイントの詳細を表示する
接続の詳細やプロトコル バインディングなど、特定のエンドポイントの詳細を表示します。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
このページには、登録されているすべてのエンドポイントのリストと、名前、説明、ロケーションなどの詳細が表示されます。
表示するエンドポイントの名前をクリックします。
[概要] ページには、エンドポイントの名前、説明、ロケーション、接続の詳細(リンク先 URL やプロトコル バインディングなど)が表示されます。
gcloud
gcloud agent-registry endpoints describe コマンドを実行して、特定のインターフェースの完全な URL やプロトコル バインディングなど、特定のエンドポイントに関する詳細なメタデータを取得します。
gcloud agent-registry endpoints describe ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
PROJECT_ID: プロジェクト ID。REGION: レジストリ リージョン。ENDPOINT_NAME: エンドポイントの名前(例:my-external-api)。
Terraform
ID を使用して特定の登録済みエンドポイントの詳細を取得するには、google_agent_registry_endpoint データソースを構成します。
data "google_agent_registry_endpoint" "my_endpoint" {
location = "REGION"
endpoint_id = "ENDPOINT_NAME"
}
output "endpoint_create_time" {
description = "The timestamp when the endpoint was registered."
value = data.google_agent_registry_endpoint.my_endpoint.create_time
}
output "endpoint_update_time" {
description = "The timestamp when the endpoint was last updated."
value = data.google_agent_registry_endpoint.my_endpoint.update_time
}
次のように置き換えます。
REGION: レジストリ リージョン。ENDPOINT_NAME: エンドポイントの固有識別子(例:my-external-api)。
エンドポイントを更新する
外部ターゲット エンドポイントの基盤となる URL が変更された場合は、エンドポイント インターフェースの詳細を更新できます。
Agent Registry では、Endpoint リソースは読み取り専用の検出リソースです。したがって、登録済みエンドポイントを更新するには、書き込み可能な Service リソースを直接更新する必要があります。
エンドポイントを更新する手順は次のとおりです。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
このページには、登録されているすべてのエンドポイントのリストと、名前、説明、ロケーションなどの詳細が表示されます。
更新するエンドポイントの名前をクリックします。
[概要] ページには、エンドポイントの名前、説明、ロケーション、接続の詳細(リンク先 URL やプロトコル バインディングなど)が表示されます。
[ 編集] をクリックします。
[サービスを編集] パネルで、エンドポイントの更新された情報(表示名、説明、リンク先 URL など)を入力します。このパネルからエンドポイントへの接続をテストできます。
[保存] をクリックします。
gcloud
--interfaces フラグを指定して gcloud agent-registry services update コマンドを実行し、新しいターゲット URL を指定します。
gcloud agent-registry services update ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION \
--interfaces=url=ENDPOINT_URL,protocolBinding=PROTOCOL
次のように置き換えます。
ENDPOINT_NAME: エンドポイントの名前(例:my-external-api)。PROJECT_ID:Serviceリソースが作成されたプロジェクト ID。REGION: レジストリ リージョン。ENDPOINT_URL: 新しいターゲット URL(例:https://new-api.example.com/v1/data)。PROTOCOL: インターフェースのプロトコル バインディング。有効な値はhttp-json、grpc、jsonrpcです。
Terraform
Terraform を使用してエンドポイント URL またはプロトコル バインディングを更新するには、構成内の既存の google_agent_registry_service リソースの interfaces ブロックを変更し、terraform apply を実行します。
resource "google_agent_registry_service" "endpoint" {
location = "REGION"
service_id = "ENDPOINT_NAME"
display_name = "DISPLAY_NAME"
interfaces {
url = "ENDPOINT_URL"
protocol_binding = "PROTOCOL"
}
endpoint_spec {
type = "NO_SPEC"
}
}
次のように置き換えます。
REGION: レジストリ リージョン。ENDPOINT_NAME: エンドポイントの名前。DISPLAY_NAME: エンドポイントの人が読める形式の名前。ENDPOINT_URL: 新しいターゲット URL(例:https://new-api.example.com/v1/data)。PROTOCOL: インターフェースのプロトコル バインディング。有効な値はHTTP_JSON、GRPC、JSONRPCです。
エンドポイントを削除する
レジストリからエンドポイントを削除するには、Service リソースを削除する必要があります。この操作により、エンドポイントは検出検索結果からすぐに削除されます。
レジストリからエンドポイントを削除する手順は次のとおりです。
コンソール
Google Cloud コンソールで [Agent Registry] に移動します。
プロジェクト選択ツールから、Agent Registry を設定した Google Cloud プロジェクトを選択します。
[エンドポイント] タブを選択します。
このページには、登録されているすべてのエンドポイントのリストと、名前、説明、ロケーションなどの詳細が表示されます。
削除するエンドポイントの名前をクリックします。
[概要] ページには、エンドポイントの名前、説明、ロケーション、接続の詳細(リンク先 URL やプロトコル バインディングなど)が表示されます。
[削除] をクリックします。
[エンドポイントの削除] ウィンドウで「
DELETE」と入力して、操作を確定します。[削除] をクリックします。
gcloud
gcloud agent-registry services delete コマンドを実行します。
gcloud agent-registry services delete ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
次のように置き換えます。
ENDPOINT_NAME: 削除するエンドポイントの名前(例:my-external-api)。PROJECT_ID:Serviceリソースが作成されたプロジェクト ID。REGION: レジストリ リージョン。
Terraform
エンドポイントを表す google_agent_registry_service リソースを Terraform 構成から削除し、terraform apply を実行します。