今天开始,我无法使用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)OperationError:代码= 3,消息=生成失败:生成超时
我曾经在1个小时前使用相同的脚本,但现在-团队中没有人能够部署云功能并遇到相同的错误。
在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"
}
关于如何修复它有什么建议吗?
它会读取,message: "INVALID_ARGUMENT"
因此任何参数都可能不正确(更改日志有时会列出重大更改)。查看gcloud functions deploy
和比较;例如:
允许的值为:128MB,256MB,512MB,1024MB和2048MB。
因此,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
对于functions/helloworld/main.py
为切入点。
谢谢!我们可以从此答案中得出两点:1)-内存2)--verbosity参数是最佳实践。但是,这不应该完全解决问题,而是可以帮助您理解问题。--memory = MEMORY函数可以使用的内存量限制。允许的值为:128MB,256MB,512MB,1024MB和2048MB。默认情况下,新功能仅限于256MB内存。将更新部署到现有功能时,除非指定此标志,否则该功能将保留其旧的内存限制。--verbosity = info
--entry-point应该是您要部署的功能。在这种情况下应该是“过程”