美文网首页
walkoff应用程序开发

walkoff应用程序开发

作者: Threathunter | 来源:发表于2020-07-03 21:45 被阅读0次

    来源:https://walkoff.readthedocs.io/en/latest/apps.html

    WALKOFF应用程序的最小目录结构如下:

    一、全面开发说明

    如果您想在Walkoff实例中添加VirusTotal应用程序,请遵循大多数步骤末尾的项目符号。

    请注意App编辑器的更新,它允许您完全从UI创建新的应用程序。目前,你只能用它修改现有的应用程序

    1. 在独立的脚本中编写Python函数

    (1)首先在WALKOFF之外的独立脚本中开发你的应用程序和它的功能——这样你可以在处理WALKOFF之前先了解基本的功能。

    (2)注意:所有你希望转换为动作的函数都必须为asyncio编写(即async def function_name())

    (3)示例:下面的示例代码可以作为独立脚本与VirusTotal的Api交互

    2. 从WALKOFF/apps目录中复制hello_world应用程序文件夹

    (1)将复制的包重命名为所需应用程序的名称

    (2)注意:包的名称必须在snake_case中,并且应该与您要创建的应用程序的名称相同。

    (3)示例:在继续下面的示例之前,确保您已在WALKOFF/apps目录中。

    3.将开发的python函数复制到1.0.0/src目录中的app.py文件中

    确保您的新函数包含在HelloWorld类声明中。

    注意:只有src下的文件才会被复制到应用程序的Docker容器中。

    例如:删除def __init__()之后,_name__ == "__main__"之前的所有内容,则将独立脚本粘贴到为代码清除的空白中。在漂亮打印脚本的上面一行,将@staticmethod添加到以def _pretty_print开始的同一列中。这是因为_pretty_print是一个辅助函数,稍后我们不会在api-yaml中定义它。

    4. 更改app.py中的HelloWorld类名以匹配新应用程序的类名

    确保这个类名与app.py底部的asyncio __main__调用匹配

    同样,还要更改app_name值以反映新的应用程序名称

    示例:在这一步中,我们将把HelloWorld类的名称更改为VirusTotal,然后将“app_name”值更改为“virus_total”而不是“hello_world”。最后,在文件的末尾将HelloWorld.run()更改为viruord .run()。在所有这些操作结束时,app.py文件应该如下所示:

    5. 更改api.yaml元数据文件,以描述您的应用程序及其操作

    为了让WALKOFF将一个函数识别为一个动作,它必须在应用程序的api.yaml文件中有一个相应的条目

    此文件中的操作名称必须与代码中的函数名称完全匹配。

    您必须在这个文件中至少包含名称、app_version和操作。

    例子:

    6. 更改requirements.txt以匹配您的应用程序需要

    这个文件应该包括应用程序包含的任何Python包依赖项

    Dockerfile将使用它来pip安装依赖项

    例子:

    二、更新应用程序

    要编辑现有应用程序,请导航到WALKOFF中的应用程序编辑器。使用这个UI,您可以编辑现有的应用程序、添加新文件和构建应用程序图像。

    让我们向hello_world应用程序添加一个新动作。

    1. 打开src/app.py并从复制现有操作开始

    2. 根据需要编辑操作并保存更改

    如果需要添加二进制依赖项,请将其添加到Dockerfile中。如果需要导入新的Python模块,请确保将它们添加到requirements.txt中。如果需要读取文件,请确保将它们放在src中,以使它们在应用程序容器中可用。

    3.打开api.yaml并通过复制现有的操作开始

    4. 根据需要编辑操作并保存更改

    任何时候看到模式键时,都可以使用JSON schema指定参数或返回值应该是什么样子。可以在这里找到允许的完整模式。

    5. 构建映像并查看构建日志

    你可以通过查看裁判日志来查看构建状态:docker service logs -f walkoff_core_umpire

    输出将是这样的:

    6. 在工作流编辑器中尝试您的新操作。

    三、命名和字符串要求:

    (1)App名称必须是snake_case(蛇形命名法),并且在以下所有位置匹配:

    1、应用程序目录

    2、在app.py 中app_name

    3、在api.yaml 中app_name

    4、docker- composite .yml中的服务名称

    (2)api.yaml中的操作名称必须与app.py中对应的函数名称相匹配

    (3)如果脚本的名称不是app.py,那么新名称必须与Dockerfile末尾的命令匹配

    四、故障排除

    在调试应用程序时,需要查看几个关键位置,导航到设置选项卡中的Portainer,并完成设置过程(如果您还没有完成的话)。这将帮助您完成以下调试步骤:

    相关文章

      网友评论

          本文标题:walkoff应用程序开发

          本文链接:https://www.haomeiwen.com/subject/uyrrqktx.html