【发布时间】:2018-02-13 05:05:53
【问题描述】:
在尝试调用 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 的特定问题有关。关于如何解决此问题的任何想法?
谢谢!
【问题讨论】:
-
如果它没有返回字典,它返回的是什么?为什么?
-
在调用 HTTP 处理程序 ow_method 时,除了简单的“错误”消息之外似乎没有返回任何内容。这是我在检查控制台时得到的:加载资源失败:net::ERR_NAME_NOT_RESOLVED
-
函数正在崩溃 - 如果缺少此键
datos_usuario["__ow_method"],该方法将引发异常。相反,请先检查if "__ow_method" in datos_usuario。 -
谢谢!我刚刚做了,显然问题出在 API 路由链接上。现已修复。
标签: python api ibm-cloud openwhisk