如何将Python Docker 图像作为 OpenWhisk 动作?

2024-06-16 10:48:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个运行Python程序的Docker映像。我现在想将此容器作为OpenWhisk操作运行。我该怎么做?在

我在其他编程语言中看到了一些例子,以及C和中优秀的black box骨架方法节点.js. 但是我想了解OpenWhisk如何与容器交互,如果可能的话,只使用Python。在


Tags: 方法docker程序box节点js编程语言容器
1条回答
网友
1楼 · 发布于 2024-06-16 10:48:06

现在(2016年9月)比我之前的回答简单多了。在

在用命令$ wsk sdk install docker创建了dockerSkeleton目录之后,您所要做的就是编辑Dockerfile,并确保您的Python(现在是2.7)正在接受参数并以适当的格式提供输出。在

这是一个总结。我已经写得更详细了here on GitHub

程序

文件test.py(或whatever_name.py您将在下面编辑的Dockerfile中使用。)

  • 确保它是可执行的(chmod a+x test.py)。在
  • 确保一号线有shebang。在
  • 确保它在本地运行。
    • e、 g../test.py '{"tart":"tarty"}'
      生成JSON字典:
      {"allparams": {"tart": "tarty", "myparam": "myparam default"}}

    #!/usr/bin/env python

    import sys
    import json

    def main():
      # accept multiple ' param's
      params = json.loads(sys.argv[1])
      # find 'myparam' if supplied on invocation
      myparam = params.get('myparam', 'myparam default')

      # add or update 'myparam' with default or 
      # what we were invoked with as a quoted string
      params['myparam'] = '{}'.format(myparam)

      # output result of this action
      print(json.dumps({ 'allparams' : params}))

    if __name__ == "__main__":
      main()

Dockerfile

将以下内容与提供的Dockerfile进行比较,以获取Python脚本test.py,并准备好构建docker映像。在

希望这些评论能解释这些差异。当前目录中的任何资产(数据文件或模块)都将成为映像的一部分,requirements.txt中列出的任何Python依赖项也将成为映像的一部分

^{pr2}$

请注意ENV REFRESHED_AT ...,我使用它来确保在构建映像时,重新拾取更新的test.py层,而不是从缓存中提取。在

相关问题 更多 >