HTTPS リクエストによる呼び出し

HTTPS リクエストを送信する機能さえあれば、どこからでも HTTPS リクエストを送信して Cloud Run にホストされたサービスをトリガーできます。すべての Cloud Run サービスに対して、安定した HTTPS URL が割り当てられていることに注意してください。

ユースケースの一部を示します。

  • カスタム RESTful ウェブ API
  • 限定公開マイクロサービス
  • ウェブ アプリケーション用の HTTP ミドルウェアまたはリバース プロキシ
  • パッケージ化されたウェブ アプリケーション

一般公開サービスの作成

Cloud Run 一般公開のサービスを作成する際の要件は、次のとおりです。

  • 公共のインターネットからサービスへのアクセス
  • 一般公開用の URL

サービスを一般公開するには、デプロイ中またはデプロイ後にいつでも非認証(一般公開)アクセスを許可するようにサービスを設定します。

サービスを最初にデプロイしたときに提供される、安定した自動割り当て URL を Cloud Run の一般公開 URL として使用できます。デプロイされたサービスの URL を確認するには、次のコマンドを使用します。

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

独自のカスタム ドメインを使用して、サービスにマッピングすることもできます。これにより、マネージド SSL 証明書が自動的に提供されます。

Cloud Run はすべての HTTP リクエストを HTTPS にリダイレクトしますが、TLS はウェブサービスに到達する前に終了します。保護されていない URL(http://)を持つその他のウェブリソースを参照するウェブリソースがサービスで生成されると、混合コンテンツの警告やエラーが発生する場合があります。すべての参照ウェブ URI に対して https プロトコルを使用するか、または X-Forwarded-Proto HTTP ヘッダーなどの HTTP リクエストでプロキシ ディレクティブのアカウントを使用します。

HTTP と HTTP/2

デフォルトで、Cloud Run はリクエストがコンテナに送信される際、HTTP/2 リクエストを HTTP/1 にダウングレードします。エンドツーエンドで HTTP/2 を使用するようにサービスを明示的に設定する場合は、HTTP/2 の使用をご覧ください。

限定公開サービスの作成

Cloud Run で限定公開サービスを作成するには、サービスへのアクセスを制限する必要があります。

IAM を使用してサービスへのアクセスを制限するには、IAM を使用したアクセスの管理をご覧ください。

デベロッパーがプライベート サービスをテストする最も簡単な方法は、curl などのツールを使用し、Authorization ヘッダーに認証トークンを渡すことです。

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

Cloud Run サービスは、サービス間認証を使用して別のマネージド Cloud Run サービスを呼び出すことができます。

上記のアクセス制限方法に加えて、Identity Platform などのアプリケーション レベルの認証と認可のメカニズムを使用してサービスへのアクセスを制限できます。

HTTP リクエストを呼び出すサンプルコード

ID トークンを取得し、プライベート サービスに HTTP リクエストを送信する方法を示すコードサンプルについては、サービス間認証のトピックをご覧ください。

ミドルウェアを使用してサービスを強化する

HTTPS プロキシは、キャッシュ保存、リクエストの検証、認証など、HTTP サービスから一般的な機能をオフロードできます。マイクロサービスの場合、多くの HTTP プロキシは API ゲートウェイ ソリューションや Istio などのサービス メッシュの一部です。

Cloud Run サービスの拡張に使用できる Google Cloud プロダクトには、次のものがあります。