Dienst mit einer HTTPS-Anfrage aufrufen

Sie können HTTPS-Anfragen von einem beliebigen dafür geeigneten Ausgangspunkt senden, um einen in Cloud Run gehosteten Dienst zu starten. Alle Cloud Run-Dienste haben eine stabile HTTPS-URL.

Beispiele für Anwendungsfälle sind:

  • Benutzerdefinierte RESTful-Web-API
  • Privater Mikrodienst
  • HTTP-Middleware oder Reverse-Proxy für Ihre Webanwendungen
  • Vorgepackte Webanwendung

Öffentliche Dienste erstellen

Für das Erstellen eines öffentlichen Dienstes in Cloud Run ist Folgendes erforderlich:

  • Zugriff auf den Dienst über das öffentliche Internet
  • Eine URL zur öffentlichen Verwendung

Wenn Sie einen Dienst öffentlich machen möchten, legen Sie bei der Bereitstellung oder nach der Bereitstellung fest, dass Sie nicht authentifizierten (öffentlichen) Zugriff auf den Dienst zulassen möchten.

Sie können die stabile, automatisch zugewiesene URL, die Sie bei der ersten Bereitstellung Ihres Dienstes erhalten haben, als öffentliche URL in Cloud Run verwenden. So ermitteln Sie die URL eines bereitgestellten Dienstes:

gcloud run services describe SERVICE --format 'value(status.url)'

Die URL für einen Cloud Run-Dienst hat das Format https://[TAG---]SERVICE_IDENTIFIER.run.app, wobei sich TAG auf das Traffic-Tag bezieht für die angeforderte Überarbeitung und SERVICE_IDENTIFIER ist eine stabile und eindeutige Kennung für einen Cloud Run-Dienst. Parsen Sie die SERVICE_IDENTIFIER nicht, da sie kein festes Format hat und sich die Logik für die SERVICE_IDENTIFIER-Generierung ändern kann.

Sie können auch eine eigene benutzerdefinierte Domain verwenden, die dem Dienst zugeordnet ist. Damit werden automatisch verwaltete SSL-Zertifikate bereitgestellt.

Cloud Run leitet alle HTTP-Anfragen an HTTPS weiter, beendet jedoch TLS, bevor sie Ihren Webdienst erreichen. Wenn Ihr Dienst Webressourcen generiert, die auf andere Webressourcen mit nicht gesicherten URLs verweisen, etwa http://, können bei Ihrer Seite Warnungen oder Fehler bei gemischten Inhalten auftreten. Verwenden Sie das Protokoll https für alle Referenzweb-URIs oder berücksichtigen Sie Proxyanweisungen in der HTTP-Anfrage wie den HTTP-Header X-Forwarded-Proto.

HTTP und HTTP/2

Standardmäßig werden für Cloud Run HTTP/2-Anfragen auf HTTP/1 herabgestuft, wenn diese Anfragen an den Container gesendet werden. Wenn Sie für Ihren Dienst explizit HTTP/2 einstellen möchten, finden Sie weitere Informationen unter HTTP/2 verwenden.

Private Dienste erstellen

Um einen privaten Dienst in Cloud Run zu erstellen, müssen Sie den Zugriff auf den Dienst beschränken, indem Sie die IAM-Aufrufer-Berechtigung nutzen.

Sie können den Zugriff auf einen Dienst auch mithilfe eines Autorisierungs- und Authentifizierungsmechanismus auf Anwendungsebene beschränken, z. B. mit der Identity Platform.

Private Dienste testen

Am einfachsten können Sie private Dienste mit dem Cloud Run-Proxy in der Google Cloud CLI testen. Dadurch wird der private Dienst an http://localhost:8080 (oder an den mit --port angegebenen Port) weitergeleitet und das Token des aktiven Kontos oder ein anderes von Ihnen angegebenes Token bereitgestellt. So können Sie einen Webbrowser oder ein Tool wie curl verwenden. Dies ist die empfohlene Methode zum privaten Testen einer Website oder API in Ihrem Browser.

Mit folgendem Befehl können Sie einen Dienst lokal weiterleiten:

gcloud run services proxy SERVICE --project PROJECT-ID

Sie können private Dienste auch ohne den Proxy testen. Dazu verwenden Sie ein Tool wie curl und übergeben ein Authentifizierungstoken im Header Authorization:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

Privater Dienst-zu-Dienst

Ein Cloud Run-Dienst kann einen anderen Cloud Run-Dienst mit Dienst-zu-Dienst-Authentifizierung aufrufen.

Beispielcode, der einen privaten Dienst aufruft

Codebeispiele zum Abrufen eines ID-Tokens und zum Senden einer HTTP-Anfrage an einen privaten Dienst finden Sie unter Dienst-zu-Dienst-Authentifizierung.

Middleware zur Optimierung Ihres Dienstes verwenden

HTTPS-Proxys können allgemeine Funktionen aus einem HTTP-Dienst wie Caching, Anfragevalidierung oder Autorisierung auslagern. Bei Mikrodiensten sind viele HTTP-Proxys Teil einer API-Gateway-Lösung oder eines Servicenetzwerks wie Istio.

Google Cloud-Produkte, mit denen Sie Ihren Cloud Run-Dienst optimieren können, sind: