HTTP トリガー

Cloud Functions では、HTTP トリガーによって HTTP(S) リクエストに応じて関数を実行できます。関数に HTTP トリガーを指定すると、関数にはリクエストを受信できる URL が割り当てられます。HTTP トリガーは、GETPOSTPUTDELETEOPTIONS の各リクエスト メソッドをサポートしています。

Cloud Functions(第 2 世代)では、関数 URL へのリクエストには常に HTTPS が必要です。Cloud Functions(第 1 世代)では、デプロイ中に HTTPS を必須にするかどうかを選択できます。

デフォルトでは、HTTP トリガーを使用して関数を実行する場合、認証が必要になります。デプロイ中に、未認証の呼び出しを許可するよう選択できます。詳細については、未認証の HTTP 関数呼び出しを許可するをご覧ください。

HTTP 関数を使用して、一般的な HTTP(S) リクエストを処理できる Cloud Functions を実装します。

デプロイ

関数のデプロイ時に HTTP トリガーを指定できます。関数をデプロイする一般的な手順については、Cloud Functions の関数のデプロイをご覧ください。デプロイ中に HTTP トリガーを構成するための追加情報については、このセクションをご覧ください。

gcloud

gcloud CLI を使用してデプロイする場合は、以下のフラグを使用して HTTP トリガーを構成します。

gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-http \
[--allow-unauthenticated] \
[--security-level=SECURITY_LEVEL] \
...
  • --trigger-http フラグは、関数が HTTP トリガーを使用することを指定します。
  • --allow-unauthenticated フラグは、認証なしで関数を呼び出せることを指定します。このフラグを省略すると、関数の呼び出しにデフォルトで認証が必要になります。詳細については、呼び出しの認証をご覧ください。
  • (第 1 世代)--security-level フラグは、関数エンドポイントで HTTPS が必須かどうかを制御します。値 secure-always は、HTTPS が必須で、SSL 以外の HTTP リクエストがサポートされていないことを意味します。値 secure-optional は、HTTP と HTTPS の両方がサポートされていることを意味します。デフォルトは secure-always です。

コンソール

Google Cloud コンソールを使用してデプロイする場合は、[トリガー] セクションで HTTP トリガーを構成できます。

  • Cloud Functions(第 2 世代)の場合:
    1. 関数の未認証の呼び出しを許可するかどうかに応じて、[HTTPS] の [認証] フィールドでオプションを選択します。デフォルトでは認証が必要です。詳細については、呼び出しの認証をご覧ください。
  • Cloud Functions(第 1 世代)の場合:
    1. [トリガー] フィールドで、[HTTP] を選択します。
    2. 関数の未認証の呼び出しを許可するかどうかに応じて、[認証] フィールドでオプションを選択します。デフォルトでは認証が必要です。詳細については、呼び出しの認証をご覧ください。
    3. [HTTPS が必須] チェックボックスをオンまたはオフにして、関数のエンドポイントで HTTPS を必須にするかどうかを制御します。指定しない場合は、HTTP と HTTPS の両方がサポートされます。

関数の URL

HTTP トリガーを使用して関数をデプロイしたら、割り当てられた URL を取得できます。

第 1 世代と第 2 世代のどちらの関数にも、次の形式の URL が割り当てられています。これらの URL は決定的な形式になっているため、関数をデプロイする前に URL を予測できます。

https://REGION-PROJECT_ID.cloudfunctions.net/FUNCTION_NAME

第 2 世代の関数には、基盤となる Cloud Run サービスに関連付けられている URL も割り当てられます。この URL は決定的な形式ではありません。つまり、2 番目のフィールドはランダムなハッシュであるため、関数をデプロイする前にどのような URL になるかを予測することはできません。ただし、関数をデプロイすると、URL は安定した状態になります。

https://FUNCTION_NAME-RANDOM_HASH-REGION.a.run.app

第 2 世代の関数の cloudfunctions.net URL と run.app URL はまったく同じように動作します。これらは互換性があります。

関数の URL は次のように取得できます。

gcloud

  • Cloud Functions(第 2 世代)の場合:

    gcloud functions describe YOUR_FUNCTION_NAME \
    --gen2 \
    --region=YOUR_FUNCTION_REGION \
    --format="value(serviceConfig.uri)"
    
  • Cloud Functions(第 1 世代)の場合:

    gcloud functions describe YOUR_FUNCTION_NAME \
    --format="value(httpsTrigger.url)"
    

コンソール

  1. Google Cloud コンソールで Cloud Functions の概要ページに移動します。

    Cloud Functions に移動

  2. URL を取得する関数の名前をクリックします。

  3. [編集] タブをクリックします。

  4. [トリガー] セクションで関数の URL を確認します。

次のステップ