0

尝试调用 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 的特定问题有关。关于如何解决这个问题的任何想法?

谢谢!

4

1 回答 1

0

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

您的操作对该字段有任何作用吗?如果您想有条件地编写您的操作(如:检测它是否实际上是一个网络操作),您需要检查该字段是否实际存在。在 python 中,您可以使用get()获取密钥或None.

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

于 2018-02-12T21:05:53.843 回答