Gcloud 函数部署崩溃
每次我尝试部署一个功能时,总是会出现错误:
ERROR: gcloud crashed (TypeError): expected string or bytes-like object
我手动把相同的代码打包成一个zip文件上传,结果没有任何问题。
这是我使用的命令:
gcloud functions deploy myfunction \
--runtime python39 \
--trigger-http \
--entry-point main \
--source . \
--region europe-west1 \
--project myproject \
--env-vars-file env.json
开启调试后:
DEBUG: expected string or bytes-like object
Traceback (most recent call last):
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 987, in Execute
resources = calliope_command.Run(cli=self, args=args)
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 807, in Run
resources = command_instance.Run(args)
File "/usr/lib/google-cloud-sdk/lib/surface/functions/deploy.py", line 104, in Run
return command_v2.Run(args, self.ReleaseTrack())
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/v2/deploy/command.py", line 1065, in Run
_SetInvokerPermissions(args, function, is_new_function)
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/command_lib/functions/v2/deploy/command.py", line 866, in _SetInvokerPermissions
service_ref_one_platform = resources.REGISTRY.ParseRelativeName(
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/core/resources.py", line 1082, in ParseRelativeName
return parser.ParseRelativeName(
File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/core/resources.py", line 203, in ParseRelativeName
match = re.match(path_template, relative_name)
File "/usr/lib/google-cloud-sdk/platform/bundledpythonunix/lib/python3.9/re.py", line 191, in match
return _compile(pattern, flags).match(string)
TypeError: expected string or bytes-like object
ERROR: gcloud crashed (TypeError): expected string or bytes-like object
1 个回答
1
根据你的评论,看来你正在使用较旧版本的 Google Cloud SDK 411.0.0
,这可能导致了下面的错误信息:
错误:gcloud 崩溃了 (类型错误):期望一个字符串或类似字节的对象
我尝试按照最新版本的 文档,使用 Gcloud CLI 468.0.0
部署一个简单的 Hello World
函数,并成功完成了部署。
建议你升级到最新版本的 Google Cloud SDK 468.0.0
,然后重新部署。这样应该就能正常工作了。