谷歌云功能部署开始失败

时间:2020-02-05 10:09:39

标签: google-cloud-platform google-cloud-functions gcloud

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

这是我部署云功能的糟糕命令:

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)OperationError:代码= 3,消息=构建失败:构建超时

我曾经在1个小时前使用相同的脚本,但是现在-团队中没有人能够部署云功能并遇到相同的错误。

deployment failed

在堆栈驱动器日志中,我仅看到以下内容:

 {
 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 个答案:

答案 0 :(得分:3)

它读取path('<slug:category_slug>/', views.ProductView.as_view(), name='product_list'), ,因此任何参数都可能不正确(更改日志有时列出了重大更改)。参见gcloud functions deploy并进行比较;例如:

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

因此,message: "INVALID_ARGUMENT"最终可能是2GB,并且INVALID_ARGUMENT也被声明为位置参数。尝试使用(NAME : --region=REGION)--verbosity=info获得更多输出:

debug

gcloud functions deploy \ chatbot_api_gateway_002_test \ --region=asia-northeast1 \ --runtime python37 --trigger-http \ --memory=2048MB \ --verbosity=info 通常是函数的目录名称,例如。以--entry-point为入口点的helloworld

答案 1 :(得分:2)

错误:(gcloud.functions.deploy)OperationError:代码= 3,消息=构建失败:构建超时

我希望您提出两种不同的解决方法,以解决您的Cloud Functions在部署期间超时的问题。

之所以会发生这种情况,是因为timeout标志设置为低,或者因为部署占用的资源超过了timeout标志中指定的数目,因此导致Cloud Function无法部署。

  1. 使用gcloud functions deploy时,可以使用--timeout标志以秒为单位指定超时。

    here所述,它将以秒为单位设置函数执行时间。它是现有功能的默认值,但对于您而言,自创建新功能以来,默认值为60秒。如果您觉得60秒不足以部署代码,请尝试增加该值。

    请记住,时间不能超过540秒。

   gcloud functions deploy … --timeout [VALUE_SECONDS]
  1. 鉴于部署期间遇到此超时问题,您可以配置应解决您的问题的Cloud SDK特定方面的行为。

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

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

   gcloud config set app/cloud_build_timeout VALUE

我希望这会有所帮助。