HTTP 触发器

在 Cloud Functions 中,HTTP 触发器能够使函数运行以响应 HTTP(S) 请求。当您为函数指定 HTTP 触发器时,系统会为函数分配一个网址,用于接收请求。HTTP 触发器支持 GETPOSTPUTDELETEOPTIONS 请求方法。

在 Cloud Functions(第 2 代)中,对函数网址的请求始终需要 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。

函数网址

使用 HTTP 触发器部署函数后,您可以检索为其分配的网址。

第 1 代和第 2 代函数都分配了具有以下格式的网址。这些网址具有确定性格式,这意味着您可以在部署函数之前预测网址的内容:

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

第 2 代函数还具有一个与底层 Cloud Run 服务关联的分配网址。这些网址没有确定性格式,由于第二个字段是随机哈希,因此您无法在部署函数之前预测网址的内容。部署该函数后,网址将保持稳定,但是:

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

第 2 代函数的 cloudfunctions.net 网址和 run.app 网址的行为方式将完全相同。它们可以互换。

您可以按如下方式检索函数的网址:

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. 点击您要检索其网址的函数的名称。

  3. 点击“编辑”标签页。

  4. 触发器部分中查看函数的网址。

后续步骤