

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

# 在 HealthOmics 中開始執行
<a name="starting-a-run"></a>

當您開始執行時，您可以指定 HealthOmics 為執行配置的資源。可用的設定如下：

1. **輸出位置** – 指定 Amazon S3 URI，其中存放執行的輸出檔案。如果您同時執行大量工作流程，請針對每個工作流程使用個別的 Amazon S3 輸出 URIs，以避免儲存貯體調節。如需詳細資訊，請參閱 *Amazon S3 使用者指南*中的[使用字首組織物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html)，以及*最佳化 Amazon S3 效能*白皮書中的[水平擴展儲存連線](https://docs.aws.amazon.com/whitepapers/latest/s3-optimizing-performance-best-practices/scale-storage-connections-horizontally.html)。

1. **服務角色** – 指定 IAM 服務角色，授予 HealthOmics 存取執行所需資源的許可。或者，主控台可以為您建立服務角色。如需詳細資訊，請參閱[的服務角色 AWS HealthOmics](permissions-service.md)。

1. **執行儲存** （選用，預設為動態） – 指定執行儲存類型和儲存量 （用於靜態儲存）。為了確保資料隔離和安全性，HealthOmics 會在每次執行開始時佈建儲存體，並在執行結束時取消佈建儲存體。如需詳細資訊，請參閱[在 HealthOmics 工作流程中執行儲存類型](workflows-run-types.md)。

1. **執行優先順序** （選用） – 為執行指派優先順序。優先順序如何影響執行取決於執行是否與執行群組相關聯。如需詳細資訊，請參閱[執行優先順序](creating-run-groups.md#run-priority)。

1. **工作流程版本** （選用） – 為執行選取特定的工作流程版本。如果您未指定版本，HealthOmics 會啟動[預設工作流程版本](workflows-default-version.md)。

1. **Nextflow 引擎設定** （選用，僅限 Nextflow) – 在執行時間指定引擎設定，例如 Nextflow 工作流程的版本和語法剖析器。如需詳細資訊，請參閱[指定 Nextflow 引擎設定](#start-run-api-engine-settings)。

1. **輸入參數** （選用） – 提供工作流程輸入參數做為 JSON 檔案或內嵌值。必要的參數由工作流程的參數範本定義。如需詳細資訊，請參閱[HealthOmics 執行輸入](workflows-run-inputs.md)。

1. **請求 ID** （僅選用、API 和 CLI) – 為每個執行提供唯一的請求 ID。請求 ID 是等冪字符，HealthOmics 用來識別重複的請求並僅啟動一次執行。

**Topics**
+ [使用主控台啟動執行](#starting-a-run-console)
+ [使用 API 開始執行](#starting-a-run-api)
+ [指定 Nextflow 引擎設定](#start-run-api-engine-settings)
+ [VPC 聯網](#start-run-vpc-networking)

## 使用主控台啟動執行
<a name="starting-a-run-console"></a>

啟動執行精靈有四個步驟：

1. 指定執行詳細資訊

1. 新增參數值

1. 新增執行群組、執行快取和標籤

1. 檢閱並開始執行

**開始執行**

1. 開啟 [HealthOmics 主控台](https://console.aws.amazon.com/omics/)。

1. 如有需要，請開啟左側導覽窗格 (≡)。選擇**執行**。

1. 選擇**開始執行**。

### 步驟 1：指定執行詳細資訊
<a name="start-run-console-step1"></a>

提供下列設定：


| \# | 設定 | 必要 | 說明 | 
| --- | --- | --- | --- | 
| 1 | 選擇工作流程來源 | 必要 | 選擇擁有的工作流程 （您擁有的私有工作流程） 或共用的工作流程 （與您共用的工作流程）。 | 
| 2 | 工作流程 ID | 必要 | 選取此執行的工作流程 ID。 | 
| 3 | 執行名稱 | 必要 （在 API 和 CLI 上為選用） | 此執行的描述性名稱。最多 127 個字元。執行工作流程後，會自動產生執行 ID。 | 
| 4 | 組態 | 選用 | 選擇組態以指定網際網路連線的 VPC 設定 （子網路、安全群組），並包含容器登錄檔映射和 Git 儲存庫連線。無法在執行開始後變更。 | 
| 5 | 執行優先順序 | 選用 | 設定執行群組中執行的優先順序。數字越大表示優先順序越高。僅限整數，範圍為 0–1，000。 | 
| 6 | 執行儲存體類型 | 選用 | 選擇動態儲存 （預設、建議） 或靜態儲存。動態儲存會依任務縱向擴展和縮減。靜態儲存佈建固定數量。如需詳細資訊，請參閱[在 HealthOmics 工作流程中執行儲存類型](workflows-run-types.md)。 | 
| 7 | 執行儲存容量 | 有條件 | 僅適用於靜態儲存。以 GiB 為單位指定數量。 | 
| 8 | 選取 S3 輸出目的地 | 必要 | 交付執行輸出的 Amazon S3 位置。格式：s3://bucket/prefix/object。 | 
| 9 | 輸出儲存貯體擁有者的帳戶 ID | 選用 | 如果您的帳戶沒有輸出儲存貯體，請輸入儲存貯體擁有者的 AWS 帳戶 ID。 | 
| 10 | 執行中繼資料保留模式 | 選用 | 選擇保留執行中繼資料 （預設） 或自動移除最舊的值。 RETAIN是預設值；在此模式中，HealthOmics 不會刪除執行中繼資料。如果您選擇 REMOVE，當執行計數達到上限時，HealthOmics 會永久刪除最舊的執行中繼資料。如需詳細資訊，請參閱[HealthOmics 執行的執行保留模式](run-retention.md)。 | 
| 11 | 網路存取 | 選用 | 選擇受限制 （預設） 或虛擬私有雲端 (VPC)。如需詳細資訊，請參閱[VPC 聯網](#start-run-vpc-networking)。 | 
| 12 | 服務角色 | 必要 | 選擇現有的服務角色或建立新的服務角色。HealthOmics 需要 Amazon S3 和 KMS 的許可。如需詳細資訊，請參閱[的服務角色 AWS HealthOmics](permissions-service.md)。 | 

選擇**下一步**以繼續步驟 2。

### 步驟 2：新增參數值
<a name="start-run-console-step2"></a>

在此頁面上，輸入執行的參數值，或選取工作流程作者提供的預先定義值。

當您選取 Nextflow 工作流程開始執行時，此步驟頂端會顯示 **Nextflow 引擎設定**和 **Nextflow 設定檔**的其他區段。如需這些設定的完整詳細資訊 （支援的值、行為和設定檔優先順序），請參閱 [指定 Nextflow 引擎設定](#start-run-api-engine-settings)。

**執行參數值**

提供執行參數。您可以上傳 JSON 檔案或手動輸入值。JSON 檔案包含每個輸入參數的確切名稱，以及 參數的值。

HealthOmics 支援下列參數值的 JSON 類型。


| JSON 類型 | 範例索引鍵和值 | 備註 | 
| --- | --- | --- | 
| boolean | "b"：true | 值不在引號中，且全部小寫。 | 
| integer | "i"：7 | 值不在引號中。 | 
| number | "f"：42.3 | 值不在引號中。 | 
| string | "s"："字元" | 值以引號表示。針對文字值和 URIs使用字串類型。URI 目標必須是預期的輸入類型。 | 
| 陣列 | "a"：【1，2，3】 | 值不在引號中。陣列成員必須各自具有輸入參數定義的類型。 | 
| object | "o"：{"left"："a"， "right"：1} | 在 WDL 中，物件映射至 WDL 配對、映射或結構 | 

如需詳細資訊，請參閱[HealthOmics 執行輸入](workflows-run-inputs.md)及[管理執行參數大小](workflows-run-inputs.md#run-input-file-options)。

選擇**下一步**以繼續步驟 3。

### 步驟 3：新增執行群組、執行快取和標籤
<a name="start-run-console-step3"></a>

此頁面上的所有設定都是選用的。


| \# | 設定 | 必要 | 說明 | 
| --- | --- | --- | --- | 
| 1 | 執行群組 | 選用 | 選取現有的執行群組或建立新的執行群組。執行群組套件依類別和優先順序執行，並設定最大 vCPUs和執行時間。如需詳細資訊，請參閱[使用 HealthOmics 執行群組](creating-run-groups.md)。 | 
| 2 | 執行快取 | 選用 | 使用執行快取來重複使用已完成的任務結果，而不是重新計算它們。如需詳細資訊，請參閱[使用主控台設定具有執行快取的執行](workflow-cache-startrun.md#workflow-cache-startrun-console)。 | 
| 3 | Tags (標籤) | 選用 | 為搜尋、篩選和成本追蹤新增最多 50 個鍵值標籤。 | 

選擇**下一步**以繼續步驟 4。

### 步驟 4：檢閱並開始執行
<a name="start-run-console-step4"></a>

檢閱所有先前步驟的執行組態。若要修改設定，請選擇相關步驟旁的**編輯**。當您準備好時，請選擇**開始執行**。

## 使用 API 開始執行
<a name="starting-a-run-api"></a>

使用 **StartRun** API 操作來建立和啟動執行。

### 開始基本執行
<a name="start-run-api-basic"></a>

下列範例指定工作流程 ID、服務角色和輸出 URI。此範例會將保留模式設定為 `REMOVE`。如需保留模式的詳細資訊，請參閱 [HealthOmics 執行的執行保留模式](run-retention.md)。

```
aws omics start-run \
     --workflow-id {{workflow id}} \
     --role-arn arn:aws:iam::123456789012:role/OmicsRole \
     --output-uri s3://amzn-s3-demo-bucket/output \
     --name "my-workflow-run" \
     --retention-mode REMOVE
```

為了回應，您會取得下列輸出。對執行`uuid`是唯一的，並且 與 `outputUri`可用於追蹤輸出資料寫入的位置。

```
{
    "arn": "arn:aws:omics:us-west-2:123456789012:run/1234567",
    "id": "123456789",
    "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a",
    "outputUri": "s3://bucket/folder/8405154/96c57683-74bf-9d6d-ae7e-f09b097db14a",
    "status": "PENDING"
}
```

### 常見 API 選項
<a name="start-run-api-common"></a>

**包含參數檔案**

如果工作流程的參數範本宣告任何必要的參數，您可以在啟動工作流程執行時提供輸入的本機 JSON 檔案。JSON 檔案包含每個輸入參數的確切名稱，以及 參數的值。

將 `--parameters file://<input_file.json>`新增至您的`start-run`請求 AWS CLI ，以參考 中的輸入 JSON 檔案。如需詳細資訊，請參閱 [步驟 2：新增參數值](#start-run-console-step2)和 中參數值支援的 JSON 類型[HealthOmics 執行輸入](workflows-run-inputs.md)。

**提供請求 ID**

您可以`requestId`為每個執行提供唯一的 。請求 ID 是 HealthOmics 用來擷取重複請求的等冪字符。如果請求 ID 與先前的執行重複，則不會啟動執行。

如果您使用基礎設施 （例如 Lambda 函數或步驟函數） 開始協調執行，最佳實務是為每個 StartRun 請求提供唯一的請求 ID。這可確保如果您的基礎設施不小心啟動已啟動的執行，HealthOmics 不會啟動重複的執行。

```
aws omics start-run \
     --workflow-id {{workflow id}} \
     ... \
     --request-id "unique-request-id-12345"
```

**選擇工作流程版本**

您可以指定執行的工作流程版本。如果您未指定版本，HealthOmics 會使用預設工作流程版本啟動執行。

```
aws omics start-run \
     --workflow-id {{workflow id}} \
     ... \
     --workflow-version-name '1.2.1'
```

**覆寫執行儲存體類型**

您可以覆寫工作流程中設定的預設執行儲存體類型。

```
aws omics start-run \
     --workflow-id {{workflow id}} \
     ... \
     --storage-type STATIC \
     --storage-capacity 2400
```

### 啟用暫時性儲存
<a name="start-run-api-ephemeral-storage"></a>

若要啟用執行的暫時性儲存，請在開始執行`LOCAL`時將 `--scratch-storage-mode`設定為 。HealthOmics `/tmp`會為每個工作流程任務執行個體在 掛載專用的本機儲存磁碟區。

```
aws omics start-run \
    --workflow-id {{workflow-id}} \
    --role-arn {{arn:aws:iam::123456789012:role/OmicsServiceRole}} \
    --output-uri s3://{{amzn-s3-demo-bucket}}/{{output-folder}}/ \
    --parameters file://{{/path/to/parameters.json}} \
    --scratch-storage-mode LOCAL
```

若要針對特定執行停用暫時性儲存 （例如，隔離失敗），請將 `--scratch-storage-mode`設定為 `SHARED`。

如需詳細資訊，請參閱[HealthOmics 工作流程任務的暫時性儲存](workflows-ephemeral-storage.md)。

如需 Nextflow 引擎設定 （引擎版本、設定檔、語法剖析器），請參閱 [指定 Nextflow 引擎設定](#start-run-api-engine-settings)。

## 指定 Nextflow 引擎設定
<a name="start-run-api-engine-settings"></a>

對於 Nextflow 工作流程，您可以在 **StartRun** API 請求中傳遞`engineSettings`映射，以控制引擎行為，而無需修改工作流程原始程式碼。在 主控台上，這些設定可在**步驟 2：新增參數值**作為單獨區段，該區段顯示用於 Nextflow 工作流程。

**注意**  
引擎設定僅適用於 Nextflow 工作流程。如果您在 API 或 CLI 中為 WDL 或 CWL 工作流程指定引擎設定，則會無提示地忽略它們，且無法在**GetRun**回應中使用。

### 支援的金鑰
<a name="start-run-engine-settings-keys"></a>


| \# | 金錀 | 有效值 | Behavior (行為) | 版本支援 | 
| --- | --- | --- | --- | --- | 
| 1 | engineVersion | "22.04.0" （或 "22.04")、 "23.10.0" （或 "23.10")、 "24.10.8"（或 "24.10")、 "25.10.0" （或 "25.10")、 "26.04.0"（或 "26.04") | 固定執行的 Nextflow 版本。覆寫從 偵測到的版本nextflow.config。接受完整和簡短版本格式。 | 所有 Nextflow 版本 | 
| 2 | syntaxVersion | "v1" （舊版剖析器）、 "v2"（嚴格語法剖析器） | 選取語法剖析器。 | 26.04 版及更新版本。舊版僅支援 "v1"。 | 
| 3 | outputFormat | "json", "text", "none" | 設定引擎 stdout/stderr 摘要格式。 | v26.04 和更新版本 （舊版已忽略）。 | 
| 4 | agentMode | "true", "false" | 控制 Nextflow 代理程式模式。 | v26.04 和更新版本 （舊版已忽略）。 | 
| 5 | profile | 逗號分隔的設定檔名稱，例如 "test,docker" | 啟用 Nextflow 設定檔。如需詳細資訊，請參閱[下一個流程設定檔](#start-run-nextflow-profiles)。 | 所有 Nextflow 版本 | 

### Nextflow 引擎版本鎖定
<a name="start-run-engine-version-pinning"></a>

您可以選取特定的 Nextflow 引擎版本來執行您的工作流程，以控制跨引擎版本的遷移。執行時間版本覆寫可確保即使工作流程定義透過其組態或設定檔指定版本，您在執行時間指定的引擎版本仍優先。這可讓您跨多個引擎版本測試相同的工作流程，而無需修改工作流程原始程式碼。

支援的版本：22.04.0 （或 22.04)、23.10.0 （或 23.10)、24.10.8 （或 24.10)、25.10.0 （或 25.10) 和 26.04.0 （或 26.04)。接受完整和簡短版本格式。

**API 和 CLI**

在 中使用 `engineVersion`金鑰`--engine-settings`：

```
aws omics start-run \
    --workflow-id {{workflow id}} \
    --role-arn arn:aws:iam::123456789012:role/OmicsRole \
    --output-uri s3://amzn-s3-demo-bucket/output \
    --engine-settings '{"engineVersion":"26.04"}'
```

**主控台**

在 中[步驟 2：新增參數值](#start-run-console-step2)，從 Nextflow **引擎設定區段中的引擎版本**下拉式清單中選取版本。

### 下一個流程設定檔
<a name="start-run-nextflow-profiles"></a>

Nextflow 設定檔是在工作流程的 中定義的一組執行設定`nextflow.config`。您可以在執行時間啟用一或多個設定檔，以套用環境特定的設定 （例如開發、測試或生產），而無需修改工作流程原始程式碼。

**API 和 CLI**

在 中使用 `profile`金鑰`--engine-settings`。將多個設定檔指定為逗號分隔清單：

```
aws omics start-run \
    --workflow-id {{workflow id}} \
    --role-arn arn:aws:iam::123456789012:role/OmicsRole \
    --output-uri s3://amzn-s3-demo-bucket/output \
    --engine-settings '{"profile":"test,docker"}'
```

**主控台**

在 中[步驟 2：新增參數值](#start-run-console-step2)，**Nextflow 設定檔**區段會顯示在引擎設定下方。從選取設定檔下拉式清單**中選取一或多個設定檔**。主控台會顯示設定檔應用程式順序。若要移除設定檔，請選擇其名稱旁的 **×**。

**設定檔應用程式順序**

當您指定多個設定檔時，應用程式順序取決於 Nextflow 引擎版本和語法剖析器：
+ **使用嚴格語法剖析器 (v2) 的 Nextflow v26.04 和更新**版本 – 按照`profile`值 （從左到右） 中指定的順序或在主控台上的選取順序套用設定檔。稍後的設定檔會針對衝突的設定覆寫先前的設定檔。
+ **具有舊版剖析器 (v1) 的 v26.04 和 v26.04 及更新版本之前的 Nextflow 版本** – 無論 API 請求或主控台選擇中指定的順序為何，設定檔都會依`nextflow.config`檔案中定義的順序套用。

**組態優先順序**

Nextflow 會依下列順序解析參數，稍後層會覆寫先前的參數：

1. `nextflow.config` 預設值

1. 選取的下一個流程設定檔

1. 預先定義的值檔案

1. 執行時間參數覆寫

**注意**  
**建議** – 為了確保跨執行的設定檔應用程式行為一致，請使用主控台 API 或引擎版本中的 `engineVersion`金鑰鎖定 Nextflow **引擎版本**。

## VPC 聯網
<a name="start-run-vpc-networking"></a>

您可以在 Virtual Private Cloud (VPC) 中執行工作流程，這可讓您存取公有網際網路、跨區域流量，以及與 VPC 中的資源通訊。

若要啟用 VPC 聯網：

1. 建立指定 VPC 子網路和安全群組的組態。

1. 使用主控台啟動執行時，請將**網路存取**設定為**虛擬私有雲端 (VPC)**，然後在步驟 1 中選取您的組態。

1. 使用 API 啟動執行時，請使用 `--networking-mode VPC`並參考您的組態與 `--configuration-name`。

如需詳細資訊，請參閱[將 HealthOmics 工作流程連線至 VPC](workflows-vpc-networking.md)。