管理函数

本指南介绍如何管理和分离使用 gcloud functions 命令创建的函数。如需了解如何管理使用 gcloud run 命令创建的函数,请参阅管理 Cloud Run 服务

使用 Cloud Functions v2 API(例如,通过使用 gcloud functions、REST API 或 Terraform)创建的函数可以通过 Cloud Run Admin API 以及 Cloud Functions v2 API 进行管理。例如,您可以使用 gcloud functionsgcloud run 命令更新现有函数:

gcloud functions

  gcloud functions deploy FUNCTION_NAME \
    --runtime=nodejs22 \
    --source= . \
    --entry-point=ENTRYPOINT
    --trigger-http

gcloud run

gcloud run deploy FUNCTION_NAME \
  --source= . \
  --function=ENTRYPOINT
  --base-image=google-22-full/nodejs22

分离

借助 gcloud functions detach 命令,您可以将 Cloud Functions v2 函数从其现有的 API 环境中分离出来。分离函数后,您只能使用 Cloud Run Admin API 来管理该函数。如果工作负载需要驻留在 Assured Workloadsrun.googleapis.com API 边界内,或者需要确保工作负载使用 Cloud Run SKU,则您可能需要分离函数。

为分离函数做准备

在准备分离函数时,请考虑以下事项:

  • 分离操作无法撤销。
  • 分离操作无法应用于 Cloud Run functions(第 1 代)。
  • 熟悉如何使用 Google Cloud 控制台、Google Cloud CLI 和 Terraform 在 Cloud Run 中部署函数
  • HTTP 函数将保留分配给它们的网址。
  • 系统会保留关联到事件驱动型函数的触发器。
  • 无法直接通过 run.googleapis.com API 管理触发器。请务必熟悉适用于 EventarcPub/Sub 的触发器管理指南。
  • 停用在失败时重试功能不是 Cloud Run 支持的功能。
    • 在分离操作期间,Cloud Run functions 会修改与进行了失败时不重试配置的函数关联的触发器,以确保底层 Pub/Sub 主题最多进行五次传送尝试。分离操作完成后,系统会创建一个死信队列主题来存储未传送的消息,您可以通过创建对该死信队列的新订阅来检索这些消息。
  • 成功分离函数后,系统会创建新的 Cloud Run 修订版本。从该修订版起,系统将使用 Cloud Run SKU 对该函数进行结算。

分离函数

您可以使用以下命令分离函数:

gcloud functions detach FUNCTION_NAME

FUNCTION_NAME 替换为您的函数的名称。