今天开始,我无法使用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个小时前使用相同的脚本,但是现在-团队中没有人能够部署云功能并遇到相同的错误。
在堆栈驱动器日志中,我仅看到以下内容:
{
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"
}
请问有关如何修复它的任何建议?
答案 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无法部署。
使用gcloud functions deploy
时,可以使用--timeout
标志以秒为单位指定超时。
如here所述,它将以秒为单位设置函数执行时间。它是现有功能的默认值,但对于您而言,自创建新功能以来,默认值为60秒。如果您觉得60秒不足以部署代码,请尝试增加该值。
请记住,时间不能超过540秒。
gcloud functions deploy … --timeout [VALUE_SECONDS]
鉴于部署期间遇到此超时问题,您可以配置应解决您的问题的Cloud SDK特定方面的行为。
如here所述,使用命令gcloud config set
将仅在活动配置中设置指定的属性。为了增加总超时,您可以使用cloud_buil_timeout
,如here所述,它等待Docker构建在部署期间完全完成。
总而言之,您可以尝试运行以下命令:
gcloud config set app/cloud_build_timeout VALUE
我希望这会有所帮助。