View a markdown version of this page

打包并提供 HealthOmics 工作流程定义 - AWS HealthOmics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

打包并提供 HealthOmics 工作流程定义

当您创建工作流程或工作流程版本时,只能提供来自一个来源的定义:您随请求发送的 ZIP 档案、Amazon S3 中的 ZIP 存档或 Git-based 存储库。包含多个定义源的请求失败。本主题中的参数适用于两者 CreateWorkflow 和 CreateWorkflowVersion 操作。有关完整程序,请参见 创建私有工作流程 和 创建工作流程版本。

注意

HealthOmics 创建工作流程时会删除一些工作流程定义。如需了解哪些引擎、发现结果是否阻碍了工作流程以及如何阅读它们,请参阅 工作流程提示器已输入 HealthOmics。

选择工作流程定义来源

使用这个来源 API 参数 最大大小 AWS CLI 标记
本地计算机上的 ZIP 存档。 definitionZip 4.4 兆字节 --definition-zip fileb://my-definition.zip
亚马逊 S3 存储桶中的 ZIP 档案。存储桶必须在同一个存储桶中 AWS 区域作为工作流程。 definitionUri 100 MB --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip
A 支持的 Git-based 存储库,通过 AWS CodeConnections 连接。 definitionRepository 1 GiB 存储库,每个文件 100 MiB --definition-repository 带有 JSON 值

其他注意事项:

ZIP 存档布局和主定义文件

包括主定义导入的每个文件,例如子工作流程, nextflow.config,以及任何 bin 脚本。

定义文件是扩展名与支持的引擎相匹配的文件,例如 .wdl, .nf,或 .cwl。如果你省略 main, HealthOmics 从离存档根最近的定义文件中选择它。它会忽略隐藏的文件和文件夹,并忽略存档中更深处的定义文件。自动选择还需要单个引擎,要么是因为存档文件包含一个引擎的定义文件,要么是因为您设置了 engine。在最近级别的文件中:

  • 如果只有一个定义文件, HealthOmics 用它,不管它叫什么。

  • 如果有几个, HealthOmics 使用名为的那个 main.wdl, main.nf,或 main.cwl。

在两个案例中 HealthOmics 无法解析存档。请求本身成功,工作流程或工作流程版本启动于 CREATING,但随后移至 FAILED,其状态消息给出了原因:

  • Zip file contains multiple workflow definition types — 存档包含多个引擎的定义文件,但您没有设置 engine。无论你是否设置,这都适用 main。设置 engine,或者删除其他引擎的文件。 HealthOmics 当两种情况都适用时,首先报告此原因。

  • Zip file contains multiple top-level workflow definition files — 你省略了 main,有几个定义文件位于最近的级别,其中没有一个被命名为 main.wdl, main.nf,或 main.cwl。设置 main 走你想要的路。

要自己选择主定义文件,请设置 main (--main) 到其相对于存档根目录的路径。路径最多可以是 128 个字符。

例如,对于主定义文件为 workflow-definition/main-file.wdl:

--main workflow-definition/main-file.wdl

设置 engine (--engine)自己命名引擎,要么解析包含多个引擎定义文件的存档,要么使用 WDL lenient 引擎。

考虑在本地计算机上使用以下布局的工作流文件夹:

my-workflow/ main.wdl tasks/align.wdl tasks/call-variants.wdl

从该文件夹中创建档案,这样 main.wdl 还有 tasks 文件夹位于存档的根目录。以下命令还会添加隐藏的文件和文件夹,例如 .git 克隆存储库中的文件夹。这些将计入定义大小,因此不包括不需要的那些,例如 -x '.*' -x '*/.*':

cd my-workflow zip -r ../my-definition.zip . cd ..

main.wdl 现在是存档根目录下的唯一定义文件,所以你可以省略 main:

main.wdl tasks/align.wdl tasks/call-variants.wdl

以内联方式或通过 Amazon S3 发送档案

definitionZip 是一个二进制参数。当你使用 AWS CLI,将存档与 fileb:// 前缀和 AWS CLI 读取文件并为您编码。这个 AWS SDK 会为您进行编码。如果您直接通过 HTTP 调用 API,请将档案作为 base64 编码的字符串发送。

以下示例中的参数模板是可选的。如果你省略它, HealthOmics 从您的工作流程定义中派生运行参数。有关更多信息,请参阅 HealthOmics 工作流程的参数模板文件。

以下 AWS CLI 示例通过发送包含请求的 ZIP 存档来创建工作流程。用斜体替换每个值:

aws omics create-workflow \ --name my-workflow-name \ --definition-zip fileb://my-definition.zip \ --parameter-template file://my-parameter-template.json

对于大于 definitionZip 限制在 选择工作流程定义来源,将其上传到与工作流程位于同一区域的 Amazon S3 存储桶并使用 definitionUri 取而代之。用斜体替换每个值,并将该存储桶替换为你自己的值:

aws s3 cp my-definition.zip s3://amzn-s3-demo-bucket1/my-definition.zip aws omics create-workflow \ --name my-workflow-name \ --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip \ --parameter-template file://my-parameter-template.json

设置默认运行存储

我们建议大多数工作流程使用动态运行存储。在以下任一情况下,选择静态运行存储:

  • 该工作流程使用超过 9.6 TiB 的数据,其任务受益于高持续性 I/O。

  • 同时从共享运行存储中读取 100 多个分散任务。

有关每种运行存储类型的更多信息,包括其吞吐量特征以及如何调整静态运行存储空间的大小,请参阅 在 HealthOmics 工作流程中运行存储类型 和 为私有用户运行优化 HealthOmics 工作流程。

这个 storageType (--storage-type) 和 storageCapacity (--storage-capacity) 参数为使用工作流的运行设置默认值。可以在运行时覆盖这两者,如中所述 开始跑步 HealthOmics。按如下方式对它们进行配对:

  • storageType 的 DYNAMIC — HealthOmics 根据文件系统利用率向上和向下扩展运行存储。不要设置 storageCapacity。如果你这样做,请求就会失败: CreateWorkflow 报告 You cannot set the storage capacity for workflows that use DYNAMIC run storage type,以及 CreateWorkflowVersion 报告 You cannot set the storage capacity for workflow version that use DYNAMIC run storage type。

  • storageType 的 STATIC — HealthOmics 分配固定数量的运行存储空间,因此也要设置 storageCapacity,以 GiB 为单位。如果工作流程和运行均未指定容量,则运行使用 1,200 GiB。最高限额是每个账户的限额。 HealthOmics 仅将静态运行存储空间配置为 1,200 GiB 或 2,400 GiB 的倍数,并将任何其他值向上舍入到下一个支持的大小。例如, HealthOmics 为 1,200 GiB 以下的容量提供 1,200 GiB。

以下示例将默认运行存储空间设置为 1,200 GiB 的静态存储:

aws omics create-workflow \ --name my-workflow-name \ --definition-zip fileb://my-definition.zip \ --storage-type STATIC \ --storage-capacity 1200