部署云函数时出错错误:(gcloud.functions.deploy)响应错误:状态=[403],代码=[禁止]



我正试图通过GitLab CI/CD实现从GitLab中的存储库到Google cloud功能的云功能部署。我得到标题和下面的错误。

错误:(gcloud.functions.deploy(响应错误:状态=[403],代码=[禁止],消息=[Permission'cloudfunctions.functions.get'在资源项目上被拒绝/ahinko网站prd/locations/us-central1/functions/send_contact'(或资源可能不存在(。]

我的.gitlab-CI.yml文件是:

image: google/cloud-sdk:slim
stages: 
- release 
- function_deploy 

before_script:
- gcloud auth activate-service-account --key-file $GOOGLE_SERVICE_ACCOUNT_FILE
- gcloud config set project $GOOGLE_PROJECT_ID
release:
stage: release
script:
- gsutil -m rm gs://ahinko.com/**
- gsutil -m cp -R src/client-side/* gs://ahinko.com
environment:
name: production
url: https://ahinko.com
only: 
- master
function_deploy: 
stage: function_deploy
script:
- gcloud functions deploy send_contact --entry-point=send_contact_form --ingress-settings=all --runtime=python37 --trigger-http
environment: 
name: production
url: https://ahinko.com
only:
- ci-test

这似乎是gitlab服务帐户中缺少权限。您必须授予适当的角色才能部署云功能。

您可以将角色cloudfunctions.developer授予服务帐户

可以创建、更新和删除函数。无法设置云IAM策略,但可以查看源代码。需要额外的配置才能部署功能。

Additional configuration:

要为用户分配云功能管理员(roles/cloudfunctions.admin(或云功能开发人员角色(roles/cloudfunctions.developer(或可以部署功能的自定义角色,还必须在云功能运行时服务帐户上为用户分配服务帐户用户云IAM角色(roles/iam.serviceAccountUser(。

gcloud iam service-accounts add-iam-policy-binding 
PROJECT_ID@appspot.gserviceaccount.com 
--member MEMBER 
--role roles/iam.serviceAccountUser

相关内容

  • 没有找到相关文章

最新更新