

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

當您建立新的工作流程版本時，您需要指定新版本的組態值。它不會從工作流程繼承任何組態值。

當您建立版本時，請提供此工作流程唯一的版本名稱。HealthOmics 建立版本後，您無法變更名稱。

版本名稱必須以字母或數字開頭，並可包含大小寫字母、數字、連字號、句點和底線。長度上限為 64 個字元。例如，您可以使用簡單的命名機制，例如 version1、Version2、Version3。您也可以將工作流程版本與您自己的內部版本控制慣例進行比對，例如 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、、GitLab、Bitbucket、 的公有和私有儲存庫GitHub self-managedGitLab self-managed。

         1. 選擇**連線**，將您的 AWS 資源連線至外部儲存庫。若要建立連線，請參閱 [與外部程式碼儲存庫連線](setting-up-new.md#setting-up-omics-repository)。
**注意**  
TLV 區域中的客戶需要在 IAD(us-east-1) 區域中建立連線，才能建立工作流程。

         1. 在**完整儲存庫 ID** 中，將您的儲存庫 ID 輸入為 user-name/repo-name。確認您有權存取此儲存庫中的檔案。

         1. 在**來源參考** （選用） 中，輸入儲存庫來源參考 （分支、標籤或遞交 ID)。如果未指定來源參考，HealthOmics 會使用預設分支。

         1. 在**排除檔案模式中**，輸入檔案模式以排除特定資料夾、檔案或副檔名。這有助於在匯入儲存庫檔案時管理資料大小。最多有 50 個模式，而且 修補程式必須遵循 [glob 模式語法](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。 **S3 ** 需要此資訊，以便 HealthOmics 可以驗證儲存貯體擁有權。

      1. 對於**從本機來源選取定義資料夾**：

         1. 輸入壓縮工作流程定義資料夾的本機磁碟機位置。

   1. **主要工作流程定義檔案路徑** （選用）：輸入從壓縮工作流程定義資料夾或儲存庫到`main`檔案的檔案路徑。如果工作流程定義資料夾中只有一個檔案，或主要檔案名為「主要」，則不需要此參數。

1. 在 **README 檔案** （選用） 面板中，選取 **README 檔案的來源**，並提供下列資訊：
   + 對於**從儲存庫服務匯入**，在 **README 檔案路徑**中，輸入儲存庫中 README 檔案的路徑。
   + 針對**從 S3 選取檔案**，在 ** S3 的 README 檔案中**，輸入 README 檔案的 Amazon S3 URI。
   + 對於**從本機來源選取檔案**：在 **README - 選用**中，選擇**選擇檔案**以選取要上傳的 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 會使用下列預設值：


| 參數 | 預設 | 
| --- | --- | 
| 引擎 | 從工作流程定義決定 | 
| 儲存體類型 | STATIC | 
| 儲存容量 （用於靜態儲存） | 1200 GiB | 
| 主要  | 根據工作流程定義資料夾的內容決定。如需詳細資訊，請參閱[HealthOmics 工作流程定義需求](workflow-defn-requirements.md)。 | 
| 加速器 | 無 | 
| Tags (標籤) | 無 | 

下列 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`。