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)'

Cloud Run サービスの URL は、https://[TAG---]SERVICE_IDENTIFIER.run.app の形式です。ここで、TAG はリクエストしているリビジョンのトラフィック タグを表し、SERVICE_IDENTIFIER は Cloud Run サービスの安定した一意の識別子です。SERVICE_IDENTIFIER は固定された形式ではないため、解析しないでください。SERVICE_IDENTIFIER 生成のロジックは変更される可能性があります。

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 起動元権限を利用してサービスへのアクセスを制限する必要があります。

アプリケーション レベルの認可と認証のメカニズム(Identity Platform など)を使用してサービスへのアクセスを制限することもできます。

限定公開サービスをテストする

限定公開サービスをテストする場合、Google Cloud CLI の Cloud Run プロキシを使用するのが最も簡単な方法です。この方法では、限定公開サービスが http://localhost:8080(または --port で指定されたポート)にプロキシされ、アクティブなアカウントのトークンまたは指定した別のトークンが提供されます。これにより、ウェブブラウザや curl などのツールを使用できます。これは、ブラウザでウェブサイトや API を非公開でテストする場合におすすめの方法です。

次のコマンドラインを使用して、Linux、macOS、WSL(推奨)または Cygwin 環境のローカルでサービスをプロキシできます。

gcloud run services proxy SERVICE --project PROJECT-ID

curl などのツールを使用して、Authorization のヘッダーに認証トークンを渡すことで、プロキシを使用せずに限定公開サービスをテストすることもできます。

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

限定公開サービス間

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

限定公開サービスを呼び出すサンプルコード

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

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

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

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