创建私有工作流程 - AWS HealthOmics

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

创建私有工作流程

使用 HealthOmics 控制台、 AWS CLI 命令或其中一个创建工作流程 AWS SDKs。

注意

请勿在工作流程名称中包含任何个人身份信息 (PII)。这些名称在 CloudWatch 日志中可见。

创建工作流程时,会为该工作流程 HealthOmics 分配一个通用唯一标识符 (UUID)。工作流程 UUID 是一个全局唯一标识符 (guid),在工作流程和工作流程版本中都是唯一的。出于数据来源的目的,我们建议您使用工作流程 UUID 来唯一标识工作流程。

使用控制台创建工作流程

创建工作流程的步骤
  1. 打开 HealthOmics 管理控制台

  2. 选择左上角的导航窗格 (),然后选择私有工作流程

  3. 私有工作流程页面上,选择创建工作流程

  4. 定义工作流程页面上,提供以下信息:

    1. 工作流程名称:此工作流程的独特名称。我们建议您设置工作流程名称,以便在 AWS HealthOmics 控制台和 CloudWatch 日志中整理运行情况。

    2. 描述(可选):此工作流程的描述。

  5. 在 “工作流定义” 面板中,提供以下信息:

    1. 工作流语言(可选):选择工作流程的规范语言。否则, HealthOmics 根据工作流程定义确定语言。

    2. 对于工作流程定义源,请选择从基于 Git 的存储库、Amazon S3 位置或本地驱动器导入定义文件夹。

      1. 对于从存储库服务导入

        注意

        HealthOmics 支持、、GitHub、GitLabBitbucket、GitHub self-managed的公有和私有存储库GitLab self-managed。

        1. 选择一个连接,将您的 AWS 资源连接到外部存储库。要创建连接,请参阅Connect 连接外部代码存储库

          注意

          该TLV地区的客户需要在 IAD (us-east-1) 区域创建连接才能创建工作流程。

        2. 完整存储库 ID 中,输入您的存储库 ID 作为用户名/存储库名称。确认您有权访问此存储库中的文件。

        3. 源引用(可选)中,输入存储库源引用(分支、标签或提交 ID)。 HealthOmics 如果未指定源引用,则使用默认分支。

        4. 排除文件模式中,输入文件模式以排除特定的文件夹、文件或扩展名。这有助于在导入存储库文件时管理数据大小。最多有 50 个模式,并且模式必须遵循全局模式语法。例如:

          1. tests/

          2. *.jpeg

          3. large_data.zip

      2. 对于从 S3 中选择定义文件夹

        1. 输入包含压缩工作流程定义文件夹的 Amazon S3 位置。Amazon S3 存储桶必须与工作流程位于同一区域。

        2. 如果您的账户不拥有 Amazon S3 存储桶,请在 S3 存储桶拥有者的 AWS 账户 ID 中输入存储桶拥有者的账户 ID。为了验证存储桶所有权 HealthOmics ,必须提供此信息。

      3. 对于从本地来源选择定义文件夹

        1. 输入压缩的工作流程定义文件夹的本地驱动器位置。

    3. 工作流定义文件主路径(可选):输入从压缩的工作流定义文件夹或存储库到该main文件的文件路径。如果工作流定义文件夹中只有一个文件,或者主文件名为 “main”,则不需要此参数。

  6. 自述文件(可选)面板中,提供以下信息:

    1. 选择自述文件来源

      1. 对于从存储库服务导入,在自述文件路径中,输入存储库中自述文件的路径。

      2. 对于从 S3 中选择文件,在 S3 的自述文件中,输入自述文件的 Amazon S3 URI。

      3. 对于 “从本地来源选择文件:在来自本地源的自述文件中”,从本地来源上传自述文件。

    2. 自述文件路径中,输入源文件中自述文件的路径。

  7. 默认运行存储配置面板中,为使用此工作流程的运行提供默认的运行存储类型和容量:

    1. 运行存储类型:选择使用静态存储还是动态存储作为临时运行存储的默认值。默认为静态存储。

    2. 运行存储容量(可选):对于静态运行存储类型,您可以输入此工作流程所需的默认运行存储量。此参数的默认值为 1200 GiB。开始运行时,您可以覆盖这些默认值。

  8. 标签(可选):您最多可以将 50 个标签与该工作流程相关联。

  9. 选择下一步

  10. 添加工作流程参数(可选)页面上,选择参数来源

    1. 对于从工作流定义文件解析, HealthOmics 将自动解析工作流定义文件中的工作流参数。

    2. 对于从 Git 存储库提供参数模板,请使用仓库中参数模板文件的路径。

    3. 对于从本地源选择 JSON JSON 文件,请从本地源上传指定参数的文件。

    4. 对于手动输入工作流参数,请手动输入参数名称和描述。

  11. 参数预览面板中,您可以查看或更改此工作流程版本的参数。如果恢复该JSON文件,则您所做的任何本地更改都将丢失。

  12. 选择下一步

  13. 查看工作流程配置,然后选择创建工作流程

使用 CLI 创建工作流程

定义工作流程和参数后,可以使用 CLI 创建工作流程,如下所示。

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

如果您的工作流程定义文件位于 Amazon S3 文件夹中,请改用definition-uri参数输入该位置definition-zip。有关更多信息,请参阅 AWS HealthOmics API 参考CreateWorkflow中的。

create-workflow请求的响应如下:

{ "arn": "arn:aws:omics:us-west-2:....", "id": "1234567", "status": "CREATING", "tags": { "resourceArn": "arn:aws:omics:us-west-2:...." }, "uuid": "64c9a39e-8302-cc45-0262-2ea7116d854f" }

创建工作流程时要使用的可选参数

创建工作流程时,您可以指定任何可选参数。有关更多信息,请参阅 AWS HealthOmics API 参考CreateWorkflow中的。

如果要包括多个工作流定义文件,请使用main参数指定哪个文件是工作流程的主定义文件。

如果您已将工作流程定义文件上传到 Amazon S3 文件夹,请使用definition-uri参数指定位置,如以下示例所示。如果您的账户不拥有 Amazon S3 存储桶,请提供所有者的 AWS 账户 ID。

aws omics create-workflow \ --name Test \ --main multi_workflow/workflow2.wdl \ --definition-uri s3://omics-bucket/workflow-definition/ \ --owner-id 123456789012 \ --parameter-template file://params_sample_description.json

您可以指定默认的运行存储类型(动态或静态)和运行存储容量(静态存储所必需的)。有关运行存储类型的更多信息,请参阅在 HealthOmics 工作流程中运行存储类型

aws omics create-workflow \ --name my_workflow \ --definition-zip fileb://my-definition.zip \ --parameter-template file://my-parameter-template.json \ --storage-type 'STATIC' \ --storage-capacity 1200 \

使用加速器参数创建在加速计算实例上运行的工作流程。以下示例说明如何使用该--accelerators参数。

aws omics create-workflow --name workflow name \ --definition-uri s3://amzn-s3-demo-bucket1/GPUWorkflow.zip \ --accelerators GPU

使用 SDK 创建工作流程

您可以使用其中一个来创建工作流程 SDKs。以下示例说明如何使用 Python 开发工具包创建工作流程

import boto3 omics = boto3.client('omics') with open('definition.zip', 'rb') as f: definition = f.read() response = omics.create_workflow( name='my_workflow', definitionZip=definition, parameterTemplate={ ... } )