Wenn eine ausgehende Anfrage von Ihrem Cloud Run-Agenten fehlschlägt oder das Agent Gateway umgeht, können Sie den Anfragepfad mit den folgenden Prüfungen verfolgen oder sich die häufigen Probleme und Lösungen ansehen. Eine Anleitung zur Einrichtung finden Sie unter Agenten mit Agent Gateway verwalten.
Bevor der Traffic das Agent Gateway erreicht, ruft der Cloud Run Envoy-Sidecar die Routing- und Zertifikatskonfiguration von der Traffic Director API ab. Der Sidecar-Proxy sendet ausgehenden Traffic über einen mTLS-CONNECT-Tunnel an Secure Web Proxy.
Ausgehendes Routing in den Envoy-Sidecar-Zugriffslogs prüfen
Wenn der Cloud Run Envoy-Sidecar eine ausgehende TCP-Verbindung abfängt, schreibt er einen JSON-Zugriffslogeintrag mit dem Feld jsonPayload.upstream_host in run.googleapis.com%2Fvar%2Flog%2Fenvoy_sidecar_log.
Lösen Sie eine ausgehende Anfrage von Ihrem Cloud Run-Dienst aus und fragen Sie die Sidecar-Zugriffslogs ab:
gcloud logging read \ 'resource.type="cloud_run_revision" AND resource.labels.service_name="SERVICE_NAME" AND logName=~"envoy_sidecar_log$" AND jsonPayload.upstream_host:*' \ --project=PROJECT_ID \ --freshness=7d \ --limit=20 \ --format="table(timestamp, jsonPayload.sni, jsonPayload.upstream_host, jsonPayload.response_flags, jsonPayload.bytes_sent, jsonPayload.bytes_received, jsonPayload.duration)"
Ersetzen Sie Folgendes:
SERVICE_NAME: der Name Ihres Cloud Run-Agentendienstes.PROJECT_ID: Projekt-ID in Google Cloud .
Eine fehlerfreie Verbindung über das Gateway gibt eine Ausgabe ähnlich der folgenden zurück:
TIMESTAMP SNI UPSTREAM_HOST RESPONSE_FLAGS BYTES_SENT BYTES_RECEIVED DURATION 2026-10-09T05:07:48.340693Z example.com envoy://tunnel_internal_listener/ - 4101 2899 489
Prüfen Sie die Werte UPSTREAM_HOST und RESPONSE_FLAGS:
- Wenn
UPSTREAM_HOSTden Wertenvoy://tunnel_internal_listener/undRESPONSE_FLAGSden Wert-hat, ist die Verbindung fehlerfrei. Der Envoy-Sidecar hat IhreEgressRouting-Richtlinie abgeglichen und die Verbindung an das Agent Gateway weitergeleitet. - Wenn
UPSTREAM_HOSTeine Ziel-IP-Adresse und ein Port wie93.184.216.34:443ist, konnte die Traffic Director API IhreEgressRouting-Richtlinie nicht abgleichen oder das Ziel-Gateway nicht auflösen. Envoy hatORIGINAL_DST-Passthrough verwendet und das Agent Gateway umgangen. Weitere Informationen finden Sie unter Ressourcen-URIs für EgressRouting und AgentGateway prüfen. - Wenn
UPSTREAM_HOSTden Wertenvoy://tunnel_internal_listener/hat undRESPONSE_FLAGSden WertUFoderUHhat oderBYTES_RECEIVEDden Wert0hat, konnte Envoy denCONNECT-Tunnel zu Secure Web Proxy nicht öffnen. Prüfen Sie die Subnetzverbindung Ihrer Virtual Private Cloud (VPC) oder lesen Sie den Abschnitt Aktualisierung des Secure Web Proxy-Gateways unterbricht Envoy-Tunneling. - Wenn keine Zeilen angezeigt werden, prüfen Sie
run.googleapis.com%2Frequests, ob die Anfrage Ihren Cloud Run-Container erreicht hat. Prüfen Sie, ob die aktive Überarbeitung--ambient-networkingaktiviert. Wenn immer noch keine Zeilen angezeigt werden, lesen Sie den Abschnitt Envoy-Sidecar-xDS- und Verbindungslogs prüfen.
Envoy-Sidecar-xDS- und Verbindungsprotokolle prüfen
Wenn die Envoy-Sidecar-Zugriffslogs keine Einträge zurückgeben oder einen Verbindungsfehler anzeigen, prüfen Sie die Sidecar-xDS- und Upstream-Verbindungslogs:
Prüfen Sie, ob xDS-Streamfehler der Traffic Director API oder Startstatusfehler vorliegen:
gcloud logging read \ 'resource.type="cloud_run_revision" AND resource.labels.service_name="SERVICE_NAME" AND logName=~"envoy_sidecar_log$" AND (severity>=INFO OR textPayload:"DeltaAggregatedResources")' \ --project=PROJECT_ID \ --freshness=7d \ --limit=30 \ --format="table(timestamp, severity, textPayload, jsonPayload.message)"
Prüfen Sie die Versuche, eine Upstream-Tunnelverbindung zu
ambient-swp-connect-clusterherzustellen:gcloud logging read \ 'resource.type="cloud_run_revision" AND resource.labels.service_name="SERVICE_NAME" AND logName=~"envoy_sidecar_log$" AND (textPayload:"ambient-swp-connect-cluster" OR jsonPayload.message:"ambient-swp-connect-cluster" OR jsonPayload.message:"tunnel_internal_listener")' \ --project=PROJECT_ID \ --freshness=7d \ --limit=30 \ --format="table(timestamp, severity, textPayload, jsonPayload.message)"
Ersetzen Sie Folgendes:
SERVICE_NAME: der Name Ihres Cloud Run-Agentendienstes.PROJECT_ID: Projekt-ID in Google Cloud .
Prüfen Sie die Logeinträge:
- Wenn die Logs
DeltaAggregatedResources gRPC config streamundThe caller does not have permissionenthalten, fehlt der Dienstidentitätroles/trafficdirector.client. Weitere Informationen finden Sie unter Envoy-Sidecar kann keine xDS-Konfiguration empfangen. - Wenn die Logs
Creating connection to cluster ambient-swp-connect-clusterenthalten, hat Envoy dieEgressRouting-Konfiguration empfangen und versucht, eine Verbindung zum Secure Web Proxy herzustellen.
Ressourcen-URIs für EgressRouting und AgentGateway prüfen
Wenn Sie gcloud alpha network-services egress-routings create oder gcloud beta network-services agent-gateways import ausführen, validiert die API die URI-Syntax, ohne zu prüfen, ob die Zielressourcen vorhanden sind. Ein Tippfehler in einem Ressourcennamen oder einer Region führt dazu, dass die Traffic Director API die EgressRouting-Übersetzung überspringt und Envoy Passthrough-Routing verwendet.
Prüfen Sie die gespeicherten URIs und vergleichen Sie sie mit Ihren bereitgestellten Ressourcen:
Prüfen Sie die Ressource
EgressRouting. In der Ausgabe werden Projekt-IDs in Projektnummern normalisiert:gcloud alpha network-services egress-routings describe EGRESS_ROUTING_NAME \ --location=REGION \ --project=PROJECT_ID
Listen Sie alle
EgressRouting-Ressourcen in der Region auf, um zu prüfen, ob keine doppelte Richtlinie auf denselben Dienst abzielt:gcloud alpha network-services egress-routings list \ --location=REGION \ --project=PROJECT_ID
Prüfen Sie, ob das Secure Web Proxy-Zielgateway mit dem URI in
EgressRouting.gatewayundAgentGateway.selfManaged.resourceUrisübereinstimmt:gcloud network-services gateways describe SWP_NAME \ --location=REGION \ --project=PROJECT_ID
Ersetzen Sie Folgendes:
EGRESS_ROUTING_NAME: der Name IhrerEgressRouting-Ressource.REGION: die Region Ihrer Bereitstellung.PROJECT_ID: Projekt-ID in Google Cloud .SWP_NAME: der Name Ihres Secure Web Proxy-Gateways.
Prüfen Sie, ob alle drei URIs mit Ihrer Projekt-ID oder -nummer, der Region und dem Ressourcennamen übereinstimmen:
EgressRouting.sources[].workloadUri:- Dienstbezogen:
//run.googleapis.com/projects/PROJECT_ID/locations/REGION/services/SERVICE_NAME - Projektbezogen:
//run.googleapis.com/projects/PROJECT_IDoder//run.googleapis.com/projects/PROJECT_NUMBER
- Dienstbezogen:
EgressRouting.gateway://networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/SWP_NAMEAgentGateway.selfManaged.resourceUris[]:projects/PROJECT_ID/locations/REGION/gateways/SWP_NAME
Secure Web Proxy-Transaktionslogs prüfen
Wenn der Envoy-Sidecar Traffic an Secure Web Proxy weiterleitet, die Anfragen aber fehlschlagen, prüfen Sie die Proxy-Logs wie unter Proxy-Transaktionslogs ansehen beschrieben:
- Wenn in den Proxy-Logs kein Traffic angezeigt wird, erreichen die Anfragen den Secure Web Proxy nicht. Prüfen Sie Ihre
EgressRouting-Konfiguration unter Ressourcen-URIs für EgressRouting und AgentGateway prüfen und Häufige Probleme und Lösungen. - Wenn Sie unerwartete
DENY- oderALLOW-Entscheidungen sehen, prüfen SiejsonPayload.authzPolicyInfoundjsonPayload.agentGatewayInfoim Logeintrag, um die übereinstimmendenAuthzPolicy- und Zielmetadaten zu untersuchen, und prüfen Sie alleExtensionBinding-Regeln, die an Ihre Agent Gateway-Ressource angehängt sind. Nachdem Sie eineExtensionBinding-Ressource erstellt oder aktualisiert haben, kann es bis zu fünf Minuten dauern, bis Konfigurationsänderungen an das Gateway weitergegeben werden.
Häufige Probleme und Lösungen
In den folgenden Abschnitten werden häufige Probleme und deren Behebung beschrieben.
Ausgehender Traffic umgeht das Agent Gateway aufgrund eines nicht übereinstimmenden Ressourcen-URI
Ausgehender Traffic von Cloud Run umgeht das Agent-Gateway oder es kommt zu einer Zeitüberschreitung, nachdem egress-routings create erfolgreich war. In envoy_sidecar_log zeigt jsonPayload.upstream_host die Ziel-IP-Adresse und den Port anstelle von envoy://tunnel_internal_listener/ an.
Einer der Ressourcen-URIs EgressRouting oder AgentGateway verweist auf einen nicht vorhandenen Ressourcennamen oder eine nicht übereinstimmende Region. Wenn die Traffic Director API die Kette vom Cloud Run-Dienst zum Secure Web Proxy nicht auflösen kann, wird die Tunnelübersetzung übersprungen und ORIGINAL_DST bereitgestellt.
Führen Sie die Befehle unter Ressourcen-URIs für EgressRouting und AgentGateway prüfen aus, um den nicht übereinstimmenden URI zu finden. Aktualisieren Sie die Konfiguration mit dem entsprechenden Ressourcennamen und der Region und erstellen Sie die Ressource AgentGateway oder EgressRouting neu.
Envoy-Sidecar kann keine xDS-Konfiguration empfangen
Ausgehende Anfragen vom Cloud Run-Container werden abgebrochen oder schlagen fehl und envoy_sidecar_log enthält den folgenden Fehler:
DeltaAggregatedResources gRPC config stream to trafficdirector.REGION.rep.googleapis.com:443 closed: 7, The caller does not have permission
Die Cloud Run-Laufzeitdienstidentität hat nicht die Berechtigung roles/trafficdirector.client. Wenn Sie einen Dienst mit --functional-type=agent und --identity-type=agent-identity bereitstellen, wird standardmäßig roles/run.agentDefaultAccess gewährt, einschließlich roles/trafficdirector.client und roles/cloudtrace.agent. Wenn Ihrer Dienstidentität diese Berechtigungen fehlen, weisen Sie die Rollen zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/run/projects/PROJECT_NUMBER/locations/REGION/services/SERVICE_NAME" \ --role="roles/trafficdirector.client" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/run/projects/PROJECT_NUMBER/locations/REGION/services/SERVICE_NAME" \ --role="roles/cloudtrace.agent"
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .ORGANIZATION_ID: Ihre Google Cloud Organisations-ID.PROJECT_NUMBER: Ihre Google Cloud -Projektnummer.REGION: die Region Ihres Dienstes.SERVICE_NAME: der Name Ihres Cloud Run-Agentendienstes. Wenn Ihr Dienst ein Dienstkonto anstelle der Agent-Identität verwendet, setzen Sie--memberaufserviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.
Prüfen Sie, ob der Cloud Run-Dienst-Agent auf Ihr VPC-Netzwerk zugreifen kann. Standardmäßig enthält roles/run.serviceAgent diese Berechtigungen. Wenn Sie die Berechtigungen des Dienst-Agents geändert haben, weisen Sie roles/compute.networkUser zu:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@serverless-robot-prod.iam.gserviceaccount.com" \ --role="roles/compute.networkUser"
Durch das Aktualisieren des Secure Web Proxy-Gateways wird das Envoy-Tunneling unterbrochen.
Nachdem Sie die ServerTlsPolicy, das Zertifikat, die IP-Adresse oder den Port eines vorhandenen Secure Web Proxy-Gateways aktualisiert haben, schlagen ausgehende Anfragen mit den Fehlern 502, 503 oder 504 fehl oder envoy_sidecar_log meldet RESPONSE_FLAGS: UF.
Sie können addresses oder ports nach dem Erstellen eines Secure Web Proxy-Gateways nicht mehr ändern. Darüber hinaus werden Aktualisierungen von serverTlsPolicy oder certificateUrls auf einem vorhandenen Secure Web Proxy-Gateway nicht an EgressRouting-Endpunkte in der Traffic Director API weitergegeben.
So ändern Sie diese Secure Web Proxy-Felder ohne Ausfallzeit der Arbeitslast:
- Erstellen Sie ein Secure Web Proxy-Ersatz-Gateway mit einem anderen Ressourcennamen und der aktualisierten Konfiguration.
- Aktualisieren Sie
selfManaged.resourceUrisin der RessourceAgentGateway, um auf den Ersatz-URI des Secure Web Proxy-Gateways zu verweisen. - Erstellen Sie die
EgressRouting-Ressource neu, sodass sie auf das Ersatz-Secure Web Proxy-Gateway verweist. - Nachdem das Ersatz-Gateway Traffic weitergeleitet hat, entfernen Sie das alte Secure Web Proxy-Gateway aus der
AgentGateway-Ressource und löschen Sie das alte Secure Web Proxy-Gateway.
Secure Web Proxy lehnt den gesamten ausgehenden Traffic ab
Alle ausgehenden Anfragen von Ihrem Cloud Run-Agenten schlagen mit 403-Fehlern fehl, nachdem Sie eine EgressRouting-Richtlinie erstellt oder eine ExtensionBinding angehängt haben.
Secure Web Proxy lehnt standardmäßig den gesamten Traffic ab, bis eine ALLOW-AuthzPolicy für Ihre Agent Gateway-Ressource ihn zulässt. Wenn Sie eine ExtensionBinding anhängen, wird Traffic ohne ALLOW-AuthzPolicy nicht zugelassen. Richtlinien, die an die zugrunde liegende Secure Web Proxy-Gateway-Ressource angehängt sind, werden ignoriert.
Wenn Sie autorisierten Traffic zulassen möchten, hängen Sie eine ALLOW-AuthzPolicy an, die auf Ihre Agent Gateway-Ressource ausgerichtet ist. Eine Anleitung finden Sie unter Ausgehenden Baseline- und MCP-Traffic zulassen.
Ausgehende Modellanfragen schlagen mit 403-Fehlern fehl
Ausgehende Aufrufe von Ihrem Cloud Run-Agenten an Modellendpunkte wie Vertex AI unter REGION-aiplatform.googleapis.com schlagen mit 403 Forbidden-Fehlern fehl, nachdem Sie Richtlinien im Agent Gateway konfiguriert haben.
Da --vpc-egress=all den gesamten ausgehenden Container-Traffic über Secure Web Proxy weiterleitet, schlagen Modellanfragen fehl, wenn Ihre ALLOW-AuthzPolicy nur mit MCP-Methoden (Model Context Protocol) übereinstimmt oder wenn Ihre IAP-ExtensionBinding (Identity-Aware Proxy) mit Nicht-MCP-Hosts ohne Zulassungsregel in Ihrer Unified Access Policy von Identity and Access Management (IAM) übereinstimmt.
Wenn Sie ausgehende Modellaufrufe zulassen möchten, müssen Sie Ihre Modellendpunkte in einer ALLOW-AuthzPolicy für Ihre Agent Gateway-Ressource zulassen. Außerdem müssen Sie entweder den Bereich matchConditions in Ihrer IAP-ExtensionBinding auf prefix: "urn:mcp" festlegen oder eine destination.unregistered.host-Zulassungsregel in Ihrer IAM Unified Access Policy hinzufügen. Eine Anleitung finden Sie unter Ausgehenden Baseline-Traffic und MCP-Traffic zulassen und IAP-Richtlinien für ausgehenden Traffic konfigurieren.
Secure Web Proxy ignoriert GatewaySecurityPolicyRules
Sie haben GatewaySecurityPolicyRules erstellt oder eine AuthzPolicy an die Secure Web Proxy-Ressource Gateway angehängt, aber diese haben keine Auswirkungen auf den ausgehenden Agent-Traffic.
Wenn Secure Web Proxy mit einer AgentGateway-Ressource verknüpft ist, erzwingt Secure Web Proxy nur die Autorisierungsrichtlinien und Erweiterungsbindungen, die an die AgentGateway-Ressource angehängt sind. Alle GatewaySecurityPolicyRules- oder AuthzPolicy-Ressourcen, die an den zugrunde liegenden Secure Web Proxy Gateway angehängt sind, werden ignoriert.
Hängen Sie stattdessen Ihre AuthzPolicy- und ExtensionBinding-Ressourcen an Ihre Agent Gateway-Ressource an. Eine Anleitung finden Sie unter Richtlinien auf dem Agent-Gateway konfigurieren.
Ausgehende Anfragen bestehen die TLS-Prüfung nicht
Ausgehende Anfragen von Ihrem Cloud Run-Agenten schlagen bei jeder Verbindung mit TLS-Fehlern fehl.
Das Secure Web Proxy-Dienstkonto hat nicht die Berechtigung roles/privateca.certificateManager für Ihren Certificate Authority Service-Pool.
Gewähren Sie Ihrem Secure Web Proxy-Dienstkonto die Berechtigung roles/privateca.certificateManager für den CA-Pool. Informationen dazu finden Sie im Artikel Dienstkonto erstellen.
Ausgehende TLS-geprüfte Verbindungen schlagen mit SSLV3_ALERT_HANDSHAKE_FAILURE oder RemoteDisconnected fehl
Ausgehende Anfragen von Ihrem Agenten schlagen bei der ersten Verbindung zu einem Zielhost mit SSLV3_ALERT_HANDSHAKE_FAILURE oder mit RemoteDisconnected fehl.
Bei der ersten TLS-geprüften Verbindung zu einem Zielhost erstellt Secure Web Proxy ein untergeordnetes Zertifikat vom CA-Dienst und speichert es im Cache. Dies kann zu einem vorübergehenden Handshake-Fehler führen. HTTP-Clients, die standardmäßig Connection: close senden, z. B. urllib.request.urlopen, können während der TLS-Prüfung mit RemoteDisconnected fehlschlagen.
So vermeiden Sie diese Fehler in Ihrem KI-Agenten-Code:
- Verwenden Sie HTTP-Clients, die persistente Verbindungen wiederverwenden, z. B.
httpx.AsyncClientoderrequests.Session(). - Konfigurieren Sie Wiederholungsversuche für Verbindungen und Handshakes auf Ihrem HTTP-Client, z. B.
httpx.AsyncHTTPTransport(retries=2)oderurllib3.util.Retry.
Nächste Schritte
- KI-Agenten mit Agent Gateway verwalten
- Ambient Networking für Cloud Run konfigurieren
- Probleme mit Cloud Run beheben