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 などのアプリケーション レベルの認証と認可のメカニズムを使用してサービスへのアクセスを制限できます。

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

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

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