

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

# 创建工作流程版本
<a name="workflows-version-create"></a>

创建工作流程的新版本时，需要为新版本指定配置值。它不会从工作流程继承任何配置值。

创建版本时，请提供此工作流程中唯一的版本名称。 HealthOmics 创建版本后，您无法更改名称。

版本名称必须以字母或数字开头，可以包括大写和小写字母、数字、连字符、句点和下划线。最大长度为 64 个字符。例如，您可以使用简单的命名方案，例如版本 1、版本 2、版本 3。您还可以将工作流程版本与自己的内部版本控制约定（例如 2.7.0、2.7.1、2.7.2）进行匹配。

或者，使用版本描述字段添加有关此版本的注释。例如：**Fix for syntax error in workflow definition**。

**注意**  
不要在版本名称中包含任何个人身份信息 (PII)。版本名称显示在工作流程版本 ARN 中。

HealthOmics 为工作流程版本分配唯一的 ARN。根据工作流程 ID 和版本名称的组合，ARN 是唯一的。

**警告**  
删除工作流程版本后， HealthOmics 允许您为其他工作流程版本重复使用该版本的版本名称。最佳做法是不要重复使用版本名称。如果您确实重复使用了名称，则工作流程和每个版本都有一个唯一的 UUID，您可以将其用作来源。

**Topics**
+ [使用控制台创建工作流程版本](#workflow-versions-console-create)
+ [使用 CLI 创建工作流程版本](#workflow-versions-api-create)
+ [使用 SDK 创建工作流程版本](#workflow-versions-sdk)
+ [验证工作流程版本的状态](#using-get-workflow)

## 使用控制台创建工作流程版本
<a name="workflow-versions-console-create"></a>

**创建工作流程版本的步骤**

1. 打开 [HealthOmics 管理控制台](https://console.aws.amazon.com/omics/)。

1.  如果需要，请打开左侧导航窗格 (►)。选择**私有工作流程**。

1. 在**私有工作流程**页面上，选择新版本的工作流程。

1. 在**工作流程详细信息**页面上，选择**创建新版本**。

1. 在**创建版本**页面上，提供以下信息：

   1. **版本名称**：输入工作流程版本的名称，该名称在整个工作流程中是唯一的。

   1. **版本描述**（可选）：您可以使用描述字段添加有关此版本的注释。

1. 在 “**工作流定义**” 面板中，提供以下信息：

   1. **工作流语言**（可选）：选择工作流程版本的规范语言。否则， HealthOmics 根据工作流程定义确定语言。

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

      1. 对于**从存储库服务导入**：
**注意**  
HealthOmics 支持、、GitHub、GitLabBitbucket、GitHub self-managed的公有和私有存储库GitLab self-managed。

         1. 选择一个**连接**，将您的 AWS 资源连接到外部存储库。要创建连接，请参阅[Connect 连接外部代码存储库](setting-up-new.md#setting-up-omics-repository)。
**注意**  
该TLV地区的客户需要在 IAD (us-east-1) 区域创建连接才能创建工作流程。

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

         1. 在**源引用**（可选）中，输入存储库源引用（分支、标签或提交 ID）。 HealthOmics 如果未指定源引用，则使用默认分支。

         1. 在**排除文件模式**中，输入文件模式以排除特定的文件夹、文件或扩展名。这有助于在导入存储库文件时管理数据大小。最多有 50 个模式，并且模式必须遵循[全局模式语法](https://fossil-scm.org/home/doc/tip/www/globs.md)。例如：

            1. `tests/`

            1. `*.jpeg`

            1. `large_data.zip`

      1. 对于**从 S3 中选择定义文件夹**：

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

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

      1. 对于**从本地来源选择定义文件夹**：

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

   1. **工作流定义文件主路径**（可选）：输入从压缩的工作流定义文件夹或存储库到该`main`文件的文件路径。如果工作流定义文件夹中只有一个文件，或者主文件名为 “main”，则不需要此参数。

1. 在**自述文件**（可选）面板中，选择**自述文件来源**并提供以下信息：
   + 对于**从存储库服务导入**，在**自述文件路径**中，输入存储库中自述文件的路径。
   + 对于**从 S3 中选择文件**，在 S3 的**自述文件中**，输入自述文件的 Amazon S3 URI。
   + 对于 **“从本地来源选择文件**：在**自述文件-可选**” 中，选择 “选择**文件” 以选择**要上传的 markdown (.md) 文件。

1. 在**默认运行存储配置**面板中，为使用此工作流程的运行提供默认的运行存储类型和容量：

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

   1. **运行存储容量**（可选）：对于静态运行存储类型，您可以输入此工作流程所需的默认运行存储量。此参数的默认值为 1200 GiB。开始运行时，您可以覆盖这些默认值。

1. **标签**（可选）：您最多可以将 50 个标签与该工作流程版本相关联。

1. 选择**下一步**。

1. 在**添加工作流程参数**（可选）页面上，选择**参数来源**：

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

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

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

   1. 对于**手动输入工作流参数**，请手动输入参数名称和描述。

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

1. 在**容器 URI 重新映射**页面的**映射规则**面板中，您可以为工作流程定义 URI 映射规则。

   在 “**映射文件来源**” 中，选择以下选项之一：
   + **无**-无需映射规则。
   + **从 S3 中选择 JSON 文件**-指定映射文件的 S3 位置。
   + **从本地源选择 JSON 文件**-指定本地设备上的映射文件位置。
   + **手动输入映射** **-在 “映射” 面板中输入注册表映射和图像映射。**

1.  控制台将显示 “**映射**” 面板。如果您选择了映射源文件，则控制台会显示该文件中的值。

   1. 在**注册表映射**中，您可以编辑映射或添加映射（最多 20 个注册表映射）。

      每个注册表映射都包含以下字段：
      + **上游注册表 URL**-上游注册表的 URI。
      + **ECR 存储库前缀** — Amazon ECR 私有存储库中使用的存储库前缀。
      + （可选）**上游存储库前**缀-上游注册表中存储库的前缀。
      + （可选）**ECR 账户 ID**-拥有上游容器映像的账户的账户 ID。

   1. 在**图像映射**中，您可以编辑图像映射或添加映射（最多 100 个图像映射）。

      每个图像映射都包含以下字段：
      + **源图像**-指定上游注册表中源图像的 URI。
      + **目标图片**-指定私有 Amazon ECR 注册表中相应图像的 URI。

1. 选择**下一步**。

1. 查看版本配置，然后选择**创建版本**。

创建版本后，控制台会返回到工作流程详细信息页面，并在工作**流程和版本表中显示新版本**。

## 使用 CLI 创建工作流程版本
<a name="workflow-versions-api-create"></a>

您可以使用 `CreateWorkflowVersion` API 操作创建工作流程版本。对于可选参数， HealthOmics 使用以下默认值：


| 参数 | 默认值 | 
| --- | --- | 
| Engine | 根据工作流程定义确定 | 
| 存储类型 | STATIC | 
| 存储容量（用于静态存储） | 1200 GiB | 
| Main  | 根据工作流定义文件夹的内容确定。有关更多信息，请参阅 [HealthOmics 工作流程定义要求](workflow-defn-requirements.md)。 | 
| 加速器 | none | 
| 标记 | none | 

以下 CLI 示例创建了使用静态存储作为默认运行存储的工作流程版本：

```
aws omics create-workflow-version \
--workflow-id 1234567  \
--version-name "my_version" \
--engine WDL \
--definition-zip fileb://workflow-crambam.zip \
--description "my version description" \
--main file://workflow-params.json \
--parameter-template file://workflow-params.json \
--storage-type='STATIC'   \
--storage-capacity 1200   \
--tags example123=string  \
--accelerators GPU
```

如果您的工作流程定义文件位于 Amazon S3 文件夹中，请改用`definition-uri`参数输入该位置`definition-zip`。有关更多信息，请参阅 AWS HealthOmics API 参考[CreateWorkflowVersion](https://docs.aws.amazon.com/omics/latest/api/API_CreateWorkflowVersion.html)中的。

您会收到以下对`create-workflow-version`请求的回复。

```
{
  "workflowId": "1234567",
  "versionName": "my_version",
  "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567/version/3",
  "status": "ACTIVE",
  "tags": {
    "environment": "production",
    "owner": "team-alpha"
  },
  "uuid": "0ac9a563-355c-fc7a-1b47-a115167af8a2"
}
```

## 使用 SDK 创建工作流程版本
<a name="workflow-versions-sdk"></a>

您可以使用其中一个来创建工作流程 SDKs。

以下示例说明如何使用 Python SDK 创建工作流程版本

```
import boto3

omics = boto3.client('omics')

with open('definition.zip', 'rb') as f:
   definition = f.read()

response = omics.create_workflow_version(
   workflowId='1234567',
   versionName='my_version',
   requestId='my_request_1'
   definitionZip=definition,
   parameterTemplate={ ... }
)
```

## 验证工作流程版本的状态
<a name="using-get-workflow"></a>

创建工作流程版本后，您可以使用验证状态并查看工作流程的其他详细信息 **get-workflow-version**，如图所示。

```
aws omics get-workflow-version 
--workflow-id 9876543
--version-name "my_version"
```

如图所示，响应会为您提供工作流程的详细信息，包括状态。

```
{
  "workflowId": "1234567",
  "versionName": "3.0.0",
  "arn": "arn:aws:omics:us-west-2:123456789012:workflow/1234567/version/3.0.0",
  "status": "ACTIVE",
  "description": ...
  "uuid": "0ac9a563-355c-fc7a-1b47-a115167af8a2"
}
```

必须先将状态转换为，然后才能使用此工作流程版本开始运行`ACTIVE`。