我正在 Python 3 中编写一个 OpenWhisk 操作,它需要读取本地文件。似乎一旦我用这个 python 文件创建了一个 OpenWhisk 操作并调用它,python 操作就不能再读取这个本地文件了。本地文件位于与 python 文件相同的目录中。日志读取 stderr: IOError: [Errno 2] No such file or directory: './localFile'
有谁知道如何从 OpenWhisk 操作中访问文件?
我正在 Python 3 中编写一个 OpenWhisk 操作,它需要读取本地文件。似乎一旦我用这个 python 文件创建了一个 OpenWhisk 操作并调用它,python 操作就不能再读取这个本地文件了。本地文件位于与 python 文件相同的目录中。日志读取 stderr: IOError: [Errno 2] No such file or directory: './localFile'
有谁知道如何从 OpenWhisk 操作中访问文件?
问题是对文件的相对引用将不起作用,因为/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"
}