我正在尝试使用无服务器节点模块部署GCP云功能。虽然我已经从网站的指示,但我仍然面临以下错误。
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Injecting required Python packages to package...
Serverless: Compiling function "ProductVersion"...
Serverless: Uploading artifacts...
Serverless: Artifacts successfully uploaded...
Serverless: Updating deployment...
Serverless: Checking deployment update progress...
.
Error ---------------------------------------------------
Error: Deployment failed: RESOURCE_ERROR
{"ResourceType":"gcp-types/cloudfunctions-v1:projects.locations.functions","ResourceErrorCode":"403","ResourceErrorMessage":{"code":403,"message":"Permission 'cloudfunctions.functions.create' denied on resource 'projects/123456/locations/us-central1/functions/demeter-dev-ProductVersion' (or resource may not exist).","status":"PERMISSION_DENIED","statusMessage":"Forbidden","requestPath":"https://cloudfunctions.googleapis.com/v1/projects/123456/locations/us-central1/functions","httpMethod":"POST"}}
at throwErrorIfDeploymentFails (/home/demo/workspace/demo/demeter/node_modules/serverless-google-cloudfunctions/shared/monitorDeployment.js:71:11)
at provider.request.then (/home/demo/workspace/demo/demeter/node_modules/serverless-google-cloudfunctions/shared/monitorDeployment.js:42:17)
at process._tickCallback (internal/process/next_tick.js:68:7)我已经配置了我的GCP服务帐户以下许可,这是必要的,但它仍然不工作。
1.云功能管理
2.云功能开发人员
3.部署管理器编辑器
4.日志管理
5.存储管理
这是我的serverless.yml文件
service: demo
package:
exclude:
- node_modules/**
- .gitignore
- .git/**
- .idea/**
plugins:
- serverless-google-cloudfunctions
- serverless-python-requirements
- serverless-prune-plugin
provider:
name: google
runtime: python37
project: 123456
credentials: ./cred.json # path must be absolute
functions:
ProductVersion:
handler: get_pronto_app_version
events:
- http: path有人能帮帮我吗?
发布于 2021-08-03 10:18:32
它通过更改serverless.yml文件中的项目变量而得到解决--我提到的是数字id,但它期待的是我们在GCP仪表板上看到的项目的字母数字id。不知何故,它并没有抛出确切的错误,但在浪费大量时间之后,它得到了解决。
project: myproject12谢谢大家回答这个问题。
发布于 2021-08-02 19:33:50
403禁忌与正在部署该功能的用户或服务帐户有关。您至少需要拥有角色/CloudFunctions.Developer才能部署云功能。
此外,还必须在云函数运行时服务帐户上为用户分配服务帐户用户IAM角色(roles/iam.serviceAccountUser)。
参考文献:https://cloud.google.com/functions/docs/reference/iam/roles#additional-configuration
发布于 2021-08-03 07:20:29
第三方应用程序使用ADC (应用程序默认凭据)。它可以是(按优先顺序排列):
environment)
GOOGLE_APPLICATION_CREDENTIALS环境变量中。
1.不是一个很好的练习,我不推荐。2在你的工作站上是不可能的。3是最好的:执行一个gcloud auth application-default login来创建凭据文件,然后再试一次。
https://stackoverflow.com/questions/68627016
复制相似问题