当前位置: 首页 > 知识库问答 >
问题:

谷歌云功能部署开始失败

沈运恒
2023-03-14

从今天开始,我无法使用gCloud cli部署云功能。

下面是我部署云功能的gloud命令:

gcloud functions deploy chatbot_api_gateway_002_test --runtime python37 --trigger-http --entry-point process --set-env-vars VERIFICATION_TOKEN=sometokenhere,PUBSUB_TOPIC=entrypointfunction001,GOOGLE_CLOUD_PROJECT=cs-be-dev,DEST_URL=__undefined_yet__,DEST_URLS_TIMEOUT=2 --memory=2GB --region=asia-northeast1

我有个错误:

部署功能(可能需要一段时间-最多2分钟)...失败。

错误:(gcloud.functions.deploy)操作错误:代码=3,消息=生成失败:生成已超时

我曾经在一个小时前编写过相同的脚本,但现在,团队中没有人能够部署云功能,并得到相同的错误。

在stackDrive日志中,我只看到以下内容:

 {
 insertId: "rr5a8qctoo"  
 logName: "projects/be-dev/logs/cloudaudit.googleapis.com%2Factivity"  

operation: {
  id: "operations/c2F0YWNzLWJlLWRldi9hc2lhLW5vcnRoZWFzdDEvY2hhdGJvdF9hcGlfZ2F0ZXdheV8wMDJfdGVzdC9SMGdpR0ZRWk13aw"   
  last: true   
  producer: "cloudfunctions.googleapis.com"   
 }

protoPayload: {
  @type: "type.googleapis.com/google.cloud.audit.AuditLog"   

authenticationInfo: {
   principalEmail: "myemail@domain.com"    
  }
  methodName: "google.cloud.functions.v1.CloudFunctionsService.CreateFunction"   

requestMetadata: {

destinationAttributes: {
   }

requestAttributes: {
   }
  }
  resourceName: "projects/be-dev/locations/asia-northeast1/functions/chatbot_api_gateway_002_test"   
  serviceName: "cloudfunctions.googleapis.com"   

status: {
   code: 3    
   message: "INVALID_ARGUMENT"    
  }
 }
 receiveTimestamp: "2020-02-05T09:53:42.771914617Z"  

resource: {

labels: {
   function_name: "chatbot_api_gateway_002_test"    
   project_id: "be-dev"    
   region: "asia-northeast1"    
  }
  type: "cloud_function"   
 }
 severity: "ERROR"  
 timestamp: "2020-02-05T09:53:42.153Z"  
}

有什么建议如何修复它吗?

共有2个答案

段干开宇
2023-03-14

错误:(gcloud.functions.deploy)操作错误:代码=3,消息=生成失败:生成已超时

我希望您提出两种不同的解决方案,可以解决部署期间云功能超时的问题。

这可能是因为timeout标志设置较低,或者因为部署占用的时间超过了timeout标志中指定的时间,从而导致Cloud Function无法部署。

>

  • 当使用gCloud函数部署时,您可以使用--timeout标记指定超时(以秒为单位)。

    如本文所述,它将以秒为单位设置函数执行时间。它默认用于现有函数,但在您的情况下,由于您正在创建一个新函数,默认情况下需要60秒。如果您觉得60秒不足以部署代码,请尝试增加值。

    记住不能超过540秒。

       gcloud functions deploy … --timeout [VALUE_SECONDS]
    

    鉴于您在部署期间面临此超时问题,您可以配置云SDK的特定方面的行为,以解决您的问题。

    如本文所述,使用命令gcloud config set将仅在活动配置中设置指定的属性。为了增加总超时,您可以使用cloud_buil_timeout,如本文所述,它等待Docker构建在部署期间完全完成。

    总之,您可以尝试运行以下命令:

       gcloud config set app/cloud_build_timeout VALUE
    

    我希望有帮助。

  • 赵晟睿
    2023-03-14

    它会显示消息:“INVALID_ARGUMENT”,因此任何参数都可能不正确(更改日志有时会列出破坏性的更改)。请参阅gcloud函数部署并进行比较;例如:

    允许的值为:128MB、256MB、512MB、1024MB和2048MB。

    因此2GB最终可能是一个INVALID_ARGUMENT(NAME:--zone=REGION)也被声明为位置参数。尝试使用--verbosity=infodebug获取更多输出:

    gcloud functions deploy \
        chatbot_api_gateway_002_test \
        --region=asia-northeast1 \
        --runtime python37
        --trigger-http \
        --memory=2048MB \
        --verbosity=info
    

    --入口点通常是函数的目录名,
    例如helloworld用于functions/helloworld/main。py作为入口点。

     类似资料:
    • 当我运行gcloud函数deploy gcp_test——trigger resource xxx-test-123——trigger event google时。存储对象我发现语法错误。 错误:(gcloud.functions.deploy)操作错误:code=3,message=Function load错误:文件索引中的代码。无法加载js。你的代码中有语法错误吗?详细堆栈跟踪:/user\

    • 我尝试使用my console在谷歌云平台上部署云功能。我使用的命令是, 但我得到了这个错误, 错误:(gcloud.functions.deploy)操作错误:代码=3,消息=Build failed:无法解析存储源:googleapi:错误404:未找到,未找到 我试着在谷歌上搜索,但似乎以前没有人遇到过这个错误消息。我也尝试过改变项目,部署效果很好。 如果有人知道是什么导致了这个错误,以及我

    • 我创建了一个服务帐户,并为其分配了访问云功能的权限: gcloud beta函数add-iam-policy-binding MyFunction--member=serviceaccount:cf-access@my-project.iam.gserviceaccount.com--role=roles/cloudfunctions.admin 产出: 现在,我下载了服务帐户json文件。 所以

    • 我正在使用cloud函数部署python函数(版本=3.7,内存=1go,超时=1s)。 到目前为止,它非常有效。 但是,我注意到,默认情况下,云函数将其区域设置为。我需要我的函数在中,所以我使用

    • 每当我必须使用sdk部署一个新的python函数时,我都会收到这条消息 是否允许未经验证的调用新函数[函数名]? (y/N)? 警告:使用限制访问IAM策略创建的函数。要启用未经授权的访问,请考虑 “gcloud alpha函数添加iam策略绑定函数名--region=europe-west1--member=allUsers--role=roles/cloudfunctions.invoker”

    • 刚刚完成Hello World谷歌云功能教程,收到以下响应头: