首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无服务器GCP功能部署

无服务器GCP功能部署
EN

Stack Overflow用户
提问于 2021-08-02 19:26:07
回答 3查看 345关注 0票数 2

我正在尝试使用无服务器节点模块部署GCP云功能。虽然我已经从网站的指示,但我仍然面临以下错误。

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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

有人能帮帮我吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-08-03 10:18:32

它通过更改serverless.yml文件中的项目变量而得到解决--我提到的是数字id,但它期待的是我们在GCP仪表板上看到的项目的字母数字id。不知何故,它并没有抛出确切的错误,但在浪费大量时间之后,它得到了解决。

代码语言:javascript
复制
project: myproject12

谢谢大家回答这个问题。

票数 1
EN

Stack Overflow用户

发布于 2021-08-02 19:33:50

403禁忌与正在部署该功能的用户或服务帐户有关。您至少需要拥有角色/CloudFunctions.Developer才能部署云功能。

此外,还必须在云函数运行时服务帐户上为用户分配服务帐户用户IAM角色(roles/iam.serviceAccountUser)。

参考文献:https://cloud.google.com/functions/docs/reference/iam/roles#additional-configuration

票数 2
EN

Stack Overflow用户

发布于 2021-08-03 07:20:29

第三方应用程序使用ADC (应用程序默认凭据)。它可以是(按优先顺序排列):

environment)

  • The服务帐户密钥文件,文件路径设置在GOOGLE_APPLICATION_CREDENTIALS环境变量中。

  • 元数据服务器(仅适用于存储凭据的Google

  • )。

1.不是一个很好的练习,我不推荐。2在你的工作站上是不可能的。3是最好的:执行一个gcloud auth application-default login来创建凭据文件,然后再试一次。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68627016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档