Pub/Sub 在平台内测试时随机给出“缺少 1 个必需的位置参数:‘上下文’”

问题描述 投票:0回答:1

我使用 Python 在平台内设置了 Google Cloud Functions,通常使用 Pub/Sub 作为触发器。

我的主要功能始终格式如下:

def sync(event, context):

当我在平台内编辑源代码并使用平台内测试工具时,大约 70% 的情况下,我会收到一条错误消息:

Missing 1 required positional argument: 'context'" 

我花了几个小时试图弄清楚为什么有时会发生这种情况,而其他人却不会,但今天只是一次又一次地重复测试同一个功能,并注意到,过了一段时间,它开始给出这个错误,即使我没有更改代码的任何一个字母。

这非常令人沮丧,因为这意味着我必须部署代码并手动触发它来测试它,这非常耗时。

知道如何解决这个问题吗?

google-bigquery
1个回答
0
投票

测试期间可能未提供

context
。测试环境可能无法模拟与真实部署相同的功能行为。

您的主调用

def sync(event, context)
需要两个参数,但它只接收一个(事件数据),因此会出现“缺少...”错误消息。

考虑查看此文档,因为它概述了与您的情况相同的情况,并提出了相应的解决方案。我还发现了一个与您的用例相关的旧讨论

讨论描述了后台触发器确实会遵循您的主要调用格式,但如果它是 HTTP 请求,那么您需要使用类似

def test2(request)
的内容。

© www.soinside.com 2019 - 2024. All rights reserved.