

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

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

當您開始執行時，您可以指定 HealthOmics 配置的資源，以便在執行期間使用。

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

指定輸出檔案的 Amazon S3 位置。如果您同時執行大量工作流程，請針對每個工作流程使用個別的 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)。

您也可以指定執行優先順序。優先順序如何影響執行取決於執行是否與執行群組相關聯。如需其他資訊，請參閱 [執行優先順序](creating-run-groups.md#run-priority)。

如果工作流程有一或多個版本，您可以在開始執行時指定版本。如果您未指定版本，HealthOmics 會啟動[預設工作流程版本](workflows-default-version.md)。

使用 HealthOmics API 時，您可以為每個執行提供唯一的請求 ID。請求 ID 是 HealthOmics 用來識別重複請求的等冪字符。 和 只會啟動一次執行。

**注意**  
您可以在開始執行時指定 IAM 服務角色。或者，主控台可以為您建立服務角色。如需詳細資訊，請參閱[的服務角色 AWS HealthOmics](permissions-service.md)。

**Topics**
+ [HealthOmics 執行參數](#run-parameters)
+ [使用主控台啟動執行](#starting-a-run-console)
+ [使用 API 開始執行](#starting-a-run-api)
+ [取得執行的相關資訊](#getinfo-about-runs)
+ [VPC 聯網](#start-run-vpc-networking)

## HealthOmics 執行參數
<a name="run-parameters"></a>

當您開始執行時，您可以在執行參數 JSON 檔案中指定執行輸入，也可以內嵌輸入參數值。如需管理執行參數 JSON 檔案大小的資訊，請參閱 [管理執行參數大小](workflows-run-inputs.md#run-input-file-options)。

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


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

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

**開始執行**

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

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

1. 在**執行**頁面上，選擇**開始執行**。

1. 在**執行詳細資訊**面板中，提供下列資訊
   + **工作流程來源** - 選擇**擁有的工作流程**或**共享工作流程**。
   + **工作流程 ID** - 與此執行相關聯的工作流程 ID。
   + **工作流程版本** （選用） - 選取要用於此執行的工作流程版本。如果您未選取版本，則執行會使用工作流程預設版本。
   + **執行名稱** - 此執行的獨特名稱。
   + **執行優先順序** （選用） - 此執行的優先順序。較高的數字會指定較高的優先順序，而最高優先順序的任務會先執行。
   + **執行儲存類型** - 在此指定儲存類型，以覆寫為工作流程指定的預設執行儲存類型。靜態儲存會配置執行的固定儲存量。動態儲存會視需要擴展和縮減執行中每個任務的規模。
   + **執行儲存容量** - 針對靜態執行儲存，指定執行所需的儲存量。此項目會覆寫為工作流程指定的預設執行儲存量。
   + **選取 S3 輸出目的地** - 將儲存執行輸出的 S3 位置。
   + **輸出儲存貯體擁有者的帳戶 ID** （選用） - 如果您的帳戶不擁有輸出儲存貯體，請輸入儲存貯體擁有者的 AWS 帳戶 ID。需要此資訊，以便 HealthOmics 可以驗證儲存貯體擁有權。
   + **執行中繼資料保留模式** - 選擇是否要保留所有執行的中繼資料，或在您的帳戶達到執行次數上限時，讓系統移除最舊的執行中繼資料。如需詳細資訊，請參閱[HealthOmics 執行的執行保留模式](run-retention.md)。

1. 在**服務角色**下，您可以使用現有的服務角色或建立新的服務角色。

1. （選用） 對於**標籤**，您最多可以將 50 個標籤指派給執行。

1. 選擇**下一步**。

1. 在**新增參數值**頁面上，提供執行參數。您可以上傳指定參數的 JSON 檔案，或手動輸入值。

1. 選擇**下一步**。

1. 在**執行群組**面板中，您可以選擇指定此執行的執行群組。如需詳細資訊，請參閱[使用 HealthOmics 執行群組](creating-run-groups.md)。

1. 在**執行快取**面板中，您可以選擇為此執行指定執行快取。如需詳細資訊，請參閱[使用主控台設定具有執行快取的執行](workflow-cache-startrun.md#workflow-cache-startrun-console)。

1. 選擇 **Review and start run (檢閱並開始執行)**。

1. 檢閱執行組態後，選擇**開始執行**。

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

使用 **Start-run** API 操作來建立和啟動執行。

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

```
aws omics start-run 
     --workflow-id workflow id \
     --role-arn arn:aws:iam::1234567892012:role/service-role/OmicsWorkflow-20221004T164236 \
     --name workflow name \
     --retention-mode REMOVE
```

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

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

### 包含參數檔案
<a name="start-run-api-parms"></a>

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

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

### 提供請求 ID
<a name="start-run-api-requestID"></a>

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

如果您使用基礎設施 （例如 Lambda 函數或步驟函數） 來協調執行開始，最佳實務是為每個 StartRun 請求提供唯一的請求 ID。這可確保如果您的基礎設施不小心啟動已啟動的執行，HealthOmics 不會啟動重複的執行。例如，如果基礎設施正在嘗試從上游錯誤中復原，它可能會重新執行指令碼，嘗試啟動重複請求的執行。

### 選擇工作流程版本
<a name="start-run-api-version"></a>

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

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

### 覆寫執行儲存類型
<a name="start-run-api-storage-type"></a>

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

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

### 執行 GPU 工作流程
<a name="start-run-api-gpu"></a>

您也可以指定 GPU 工作流程 ID，如下列範例所示：

```
aws omics start-run 
       --workflow-id workflow id \
       --role-arn arn:aws:iam::1234567892012:role/service-role/OmicsWorkflow-20221004T164236 \
       --name GPUTestRunModel \
       --output-uri s3://amzn-s3-demo-bucket1
```

## 取得執行的相關資訊
<a name="getinfo-about-runs"></a>

您可以在回應中使用 ID 搭配 **get-run** API 來檢查執行的狀態，如下所示。

```
aws omics get-run --id run id
```

此 API 操作的回應會告訴您工作流程執行的狀態。可能的狀態為 `PENDING`、`RUNNING`、 `STARTING`和 `COMPLETED`。當執行為 時`COMPLETED`，您可以在輸出 `outfile.txt` Amazon S3 儲存貯體、以執行 ID 命名的資料夾中，找到名為 的輸出檔案。

**get-run** API 操作也會傳回其他詳細資訊，例如工作流程是 `Ready2Run`還是 `PRIVATE`、工作流程引擎和加速器詳細資訊。下列範例顯示私有工作流程執行的 **get-run** 回應，如使用 GPU 加速器且未指派給執行的標籤的 WDL 中所述。

```
{
    "arn": "arn:aws:omics:us-west-2:123456789012:run/7830534",
    "id": "7830534",
    "uuid":"96c57683-74bf-9d6d-ae7e-f09b097db14a",
    "outputUri":"s3://bucket/folder/8405154/96c57683-74bf-9d6d-ae7e-f09b097db14a" 
    "status": "COMPLETED",
    "workflowId": "4074992",
    "workflowType": "PRIVATE",
    "workflowVersionName": "3.0.0",
    "roleArn": "arn:aws:iam::123456789012:role/service-role/OmicsWorkflow-20221004T164236",
    "name": "RunGroupMaxGpuTest",
    "runGroupId": "9938959",
    "digest": "sha256:a23a6fc54040d36784206234c02147302ab8658bed89860a86976048f6cad5ac",
    "accelerators": "GPU",
    "outputUri": "s3://amzn-s3-demo-bucket1",
    "startedBy": "arn:aws:sts::123456789012:assumed-role/Admin/<role_name>",
    "creationTime": "2023-04-07T16:44:22.262471+00:00",
    "startTime": "2023-04-07T16:56:12.504000+00:00",
    "stopTime": "2023-04-07T17:22:29.908813+00:00",
    "tags": {}
}
```

您可以使用 **list-runs** API 操作查看所有執行的狀態，如下所示。

```
 aws omics list-runs
```

若要查看特定執行完成的所有任務，請使用 **list-run-tasks** API。

```
 aws omics list-run-tasks --id task ID
```

若要取得任何特定任務的詳細資訊，請使用 get-run-task API。

```
 aws omics get-run-task --id <run_id> --task-id task ID
```

執行完成後，中繼資料會傳送至串流 下的 CloudWatch`manifest/run/<run ID>/<run UUID>`。

以下是資訊清單的範例。

```
{
    "arn": "arn:aws:omics:us-east-1:123456789012:run/1695324",
    "creationTime": "2022-08-24T19:53:55.284Z",
    "resourceDigests": {
      "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.dict": "etag:3884c62eb0e53fa92459ed9bff133ae6",
      "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta": "etag:e307d81c605fb91b7720a08f00276842-388",
      "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta.fai": "etag:f76371b113734a56cde236bc0372de0a",
      "s3://omics-data/intervals/hg38-mjs-whole-chr.500M.intervals": "etag:27fdd1341246896721ec49a46a575334",
      "s3://omics-data/workflow-input-lists/dragen-gvcf-list.txt": "etag:e22f5aeed0b350a66696d8ffae453227"
    },
    "digest": "sha256:a5baaff84dd54085eb03f78766b0a367e93439486bc3f67de42bb38b93304964",
    "engine": "WDL",
    "main": "gatk4-basic-joint-genotyping-v2.wdl",
    "name": "1044-gvcfs",
    "outputUri": "s3://omics-data/workflow-output",
    "parameters": {
      "callset_name": "cohort",
      "input_gvcf_uris": "s3://omics-data/workflow-input-lists/dragen-gvcf-list.txt",
      "interval_list": "s3://omics-data/intervals/hg38-mjs-whole-chr.500M.intervals",
      "ref_dict": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.dict",
      "ref_fasta": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta",
      "ref_fasta_index": "s3://omics-data/broad-references/hg38/v0/Homo_sapiens_assembly38.fasta.fai"
    },
    "roleArn": "arn:aws:iam::123456789012:role/OmicsServiceRole",
    "startedBy": "arn:aws:sts::123456789012:assumed-role/admin/ahenroid-Isengard",
    "startTime": "2022-08-24T20:08:22.582Z",
    "status": "COMPLETED",
    "stopTime": "2022-08-24T20:08:22.582Z",
    "storageCapacity": 9600,
    "uuid": "a3b0ca7e-9597-4ecc-94a4-6ed45481aeab",
    "workflow": "arn:aws:omics:us-east-1:123456789012:workflow/1558364",
    "workflowType": "PRIVATE"
  },
  {
    "arn": "arn:aws:omics:us-east-1:123456789012:task/1245938",
    "cpus": 16,
    "creationTime": "2022-08-24T20:06:32.971290",
    "image": "123456789012.dkr.ecr.us-west-2.amazonaws.com/gatk",
    "imageDigest": "sha256:8051adab0ff725e7e9c2af5997680346f3c3799b2df3785dd51d4abdd3da747b",
    "memory": 32,
    "name": "geno-123",
    "run": "arn:aws:omics:us-east-1:123456789012:run/1695324",
    "startTime": "2022-08-24T20:08:22.278Z",
    "status": "SUCCESS",
    "stopTime": "2022-08-24T20:08:22.278Z",
    "uuid": "44c1a30a-4eee-426d-88ea-1af403858f76"
  },
  ...
```

如果 CloudWatch 日誌中沒有執行中繼資料，則不會將其刪除。

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

您可以設定執行以使用 VPC 聯網，讓執行透過公有網際網路或私有網路存取資源。開始執行時指定聯網模式和組態名稱：

```
aws omics start-run \
  --workflow-id workflow-id \
  --role-arn role-arn \
  --output-uri s3://bucket-name/prefix/ \
  --networking-mode VPC \
  --configuration-name configuration-name \
  --region region
```

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