如何从OpenWhisk操作中读取文件

时间:2017-03-31 23:56:31

标签: python-3.x io openwhisk

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

是否有人知道如何从OpenWhisk操作中访问文件?

1 个答案:

答案 0 :(得分: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"
}