0

我正在 Python 3 中编写一个 OpenWhisk 操作,它需要读取本地文件。似乎一旦我用这个 python 文件创建了一个 OpenWhisk 操作并调用它,python 操作就不能再读取这个本地文件了。本地文件位于与 python 文件相同的目录中。日志读取 stderr: IOError: [Errno 2] No such file or directory: './localFile'

有谁知道如何从 OpenWhisk 操作中访问文件?

4

1 回答 1

1

问题是对文件的相对引用将不起作用,因为/action与内部运行时相比,源代码从不同的方向( )运行。./这可以通过不使用相对路径(例如, )引用文件以蛮力方式解决。

例如,这将起作用 - 但并不理想:

$ cat __main__.py
def main(args):
  f = open('/action/workfile', 'r')
  return {'file': f.read()}


$ echo "hello" > workfile

$ zip p.zip __main__.py workfile

$ wsk action update p p.zip --kind python:3
ok: updated action p

$ wsk action invoke -br p
{
    "file": "hello\n"
}
于 2017-04-01T14:23:47.343 回答