我运行了多个 Google Cloud 功能。其中一个运行得不好,所以我想阻止它们,直到我解决了这个问题。
我已经看到我可以删除该功能,但是有没有办法禁用以及稍后;启用该功能吗?
您无法禁用某项功能。只需注释函数体即可。在控制台中记录调用然后返回 null 是一个很好的做法,这样您就可以在调用函数时进行跟踪。
跟随其他人寻找这个,我创建了一个 ENV 变量并在我的函数执行之前添加了一个 if 检查。例如:
if os.environ['functionOn'] == 'true':
# insert previous function code here
可以通过控制台 + 重新部署更改 ENV 变量来打开/关闭功能。
请勿导出该函数。这样您仍然可以保持它不被修改,但能够禁用它。
我的许多云函数都会在发布/订阅主题上触发。我刚刚创建了一个名为“禁用”的主题。并将每个触发 CF 的主题的触发器更新到该已禁用的主题,并重新部署。
没有可以用来“关闭”的按钮或开关。我更喜欢在开发时保持“单一事实来源”,所以我删除了它们。如果您的 git 中集成了 CI(如 gitlab CI),则只需单击一下即可重新部署
2024 年更新:
如果您的函数是第 2 代,那么它由“云运行”作为服务进行管理。您仍然无法禁用它,但是...您可以禁用对它的公共网络访问:
gcloud run services update SERVICE --ingress=internal --region=REGION
其中 SERVICE 是您的云函数的小写名称。
如果您的函数附加到 VPC,您的函数仍可通过 VPC 使用,因此您可以暂时分离 VPC。
恢复公共访问:
gcloud run services update SERVICE --ingress=all --region=REGION
或在云控制台中编辑服务:https://console.cloud.google.com/run/
对于第 1 代云功能,您可以尝试以下操作:
gcloud run deploy CLOUD_FUNCTION_NAME --ingress=internal --image=REGION-docker.pkg.dev/PROJECT_ID/gcf-artifacts/CLOUD_FUNCTION_NAME:latest --region=REGION
这会重新部署该函数并根据最新的容器映像创建新的修订版。它在 gen2 函数上对我有用,它可能应该在 gen1 函数上起作用。
文档:
gcloud 运行服务更新:https://cloud.google.com/sdk/gcloud/reference/run/services/update
gcloud 运行部署: https://cloud.google.com/sdk/gcloud/reference/run/deploy
通过谷歌发现了这个,似乎你可以暂停你的函数在https://console.cloud.google.com/
中运行