建立私有工作流程 - 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、、GitLab、Bitbucket、 的公有和私有儲存庫GitHub self-managedGitLab self-managed。

        1. 選擇連線,將您的 AWS 資源連線至外部儲存庫。若要建立連線,請參閱 與外部程式碼儲存庫連線

          注意

          TLV 區域中的客戶需要在 IAD(us-east-1) 區域中建立連線,才能建立工作流程。

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

        3. 來源參考 (選用) 中,輸入儲存庫來源參考 (分支、標籤或遞交 ID)。如果未指定來源參考,HealthOmics 會使用預設分支。

        4. 排除檔案模式中,輸入檔案模式以排除特定資料夾、檔案或副檔名。這有助於在匯入儲存庫檔案時管理資料大小。最多有 50 種模式,而且 patter 必須遵循 glob 模式語法。例如:

          1. tests/

          2. *.jpeg

          3. large_data.zip

      2. 對於從 S3 選取定義資料夾

        1. 輸入包含壓縮工作流程定義資料夾的 Amazon S3 位置。Amazon S3 儲存貯體必須與工作流程位於相同的區域。

        2. 如果您的帳戶沒有 Amazon S3 儲存貯體,請在 S3 儲存貯體擁有者 AWS 的帳戶 ID 中輸入儲存貯體擁有者的帳戶 ID。 S3 需要此資訊,以便 HealthOmics 可以驗證儲存貯體擁有權。

      3. 對於從本機來源選取定義資料夾

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

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

  6. README 檔案 (選用) 面板中,提供下列資訊:

    1. 選取 README 檔案的來源

      1. 對於從儲存庫服務匯入,在 README 檔案路徑中,輸入儲存庫中 README 檔案的路徑。

      2. 針對從 S3 選取檔案,在 S3 的 README 檔案中,輸入 README 檔案的 Amazon S3 URI。

      3. 對於從本機來源選取檔案:從本機來源在 README 檔案中,從本機來源上傳 README 檔案。

    2. README 檔案路徑中,輸入來源中 README 檔案的路徑。

  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

您可以指定預設執行儲存類型 (DYNAMIC 或 STATIC),並執行儲存容量 (靜態儲存需要)。如需執行儲存體類型的詳細資訊,請參閱 在 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 SDK 建立工作流程

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={ ... } )