openwhisk错误:"该动作没有返回字典。"

时间:2018-02-12 20:33:35

标签: python api ibm-cloud openwhisk

尝试调用openwhisk操作时,我收到400错误,并显示以下结果并记录:

结果:

114492bd33e444c88492bd33e4a4c8a8
{
  "error": "The action did not return a dictionary."
}

日志

[
"2018-02-12T20:20:27.224409701Z stderr: Traceback (most recent call 
last):",
"2018-02-12T20:20:27.224534535Z stderr: File \"pythonrunner.py\", line 
88, in run",
"2018-02-12T20:20:27.224550304Z stderr: exec('fun = %s(param)' % 
self.mainFn, self.global_context)",
"2018-02-12T20:20:27.224559746Z stderr: File \"<string>\", line 1, in 
<module>",
"2018-02-12T20:20:27.224578509Z stderr: File \"__main__.py\", line 308, 
in main",
"2018-02-12T20:20:27.224587541Z stderr: if 
datos_usuario[\"__ow_method\"] 
== \"get\":",
"2018-02-12T20:20:27.224596543Z stderr: KeyError: '__ow_method'"
]

到目前为止,操作过程正常,这让我觉得错误可能与访问API的特定问题有关。关于如何解决这个问题的任何想法?

谢谢!

1 个答案:

答案 0 :(得分:0)

您需要将该操作创建为webaction。该错误暗示__ow_method不存在的事实,仅当您的操作是Webaction时才会出现。

你的行动对那个领域做了什么吗?如果您想有条件地编写您的操作(如:检测它是否实际上是一个Webaction),您需要检查该字段是否实际存在。在python中,您可以使用get()获取密钥或None

就没有返回任何有意义的内容而言:似乎你的行为随机崩溃而没有对该错误做任何事情。可能会更新运行时本身以捕获任何未捕获的错误并返回更有意义的内容。在这种情况下,可能需要针对存储库的问题。