是否有一个参数可以在serverless.yml
中添加,以部署GCP函数(Go
(,就像在gcloud deploy
命令中添加--allow-unauthenticated
一样?
在无服务器文档中找不到任何相关信息。
我想这是不可能的。无服务器产品使用云函数API部署te云函数。要设置allow-authentited,需要使用IAM API将cloudfunctions.invoker
角色添加到allUsers
。
gcloud CLI提供了一种在单个命令行中打包两个API调用的方便方法,但外部工具需要实现同样的额外工作才能实现这一点。这就是为什么,我确信这是不可能的。
我能够通过使用钩子来实现这一点。您需要添加自定义>脚本到serverless.yml
(注意:考虑到您使用的服务帐户具有正确的访问权限,这应该有效(
像这样:
custom:
scripts:
commands:
make-public-function: gcloud functions add-iam-policy-binding ${self:service}-${self:provider.stage}-${opt:opt.function, "functionName"} --member="allUsers" --role="roles/cloudfunctions.invoker" --project=${self:provider.project} --region=${self:provider.region} | xargs echo
hooks:
'after:deploy:deploy': npx sls make-public-function --stage ${self:provider.stage}