View a markdown version of this page

封裝和提供 HealthOmics 工作流程定義 - AWS HealthOmics

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

封裝和提供 HealthOmics 工作流程定義

當您建立工作流程或工作流程版本時,您只從一個來源提供定義:隨請求傳送的 ZIP 封存、Amazon S3 中的 ZIP 封存,或 Git 型儲存庫。包含多個定義來源的請求失敗。本主題中的參數同時適用於 CreateWorkflow和 CreateWorkflowVersion操作。如需完整程序,請參閱 建立私有工作流程和 建立工作流程版本。

注意

HealthOmics 會在您建立工作流程時排列一些工作流程定義。針對哪些引擎傾斜、問題清單是否封鎖工作流程,以及如何讀取它們,請參閱 HealthOmics 中的工作流程文字。

選擇工作流程定義來源

使用此來源 API 參數 大小上限 AWS CLI 旗標
本機電腦上的 ZIP 封存。 definitionZip 4.4 MB --definition-zip fileb://my-definition.zip
Amazon S3 儲存貯體中的 ZIP 封存。儲存貯體必須與工作流程位於相同的 AWS 區域。 definitionUri 100 MB --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip
透過 AWS CodeConnections 連線支援的 Git 型儲存庫。 definitionRepository 1 GiB 儲存庫,每個檔案 100 MiB --definition-repository 具有 JSON 值

其他考量:

  • 這些大小配額無法增加。如需詳細資訊,請參閱HealthOmics 工作流程固定大小配額。

  • 如果您的帳戶未擁有擁有 定義的 Amazon S3 儲存貯體,請在 workflowBucketOwnerId() 中提供儲存貯體擁有者的 AWS 帳戶 ID--workflow-bucket-owner-id。

  • 透過 definitionRepository,HealthOmics 會從儲存庫讀取定義檔案,而 parameterTemplatePath、 main和 readmePath是儲存庫中的路徑,而不是封存中的路徑。如需definitionRepository欄位的詳細資訊,請參閱 使用 Git 型儲存庫中的工作流程定義。如需連線設定和支援提供者的詳細資訊,請參閱 HealthOmics 工作流程與 Git 型儲存庫整合。

ZIP 封存配置和主要定義檔案

包含主要定義匯入的每個檔案,例如子工作流程nextflow.config、 和任何bin指令碼。

定義檔案是副檔名符合支援引擎的檔案,例如 .wdl、 .nf或 .cwl。如果您省略 main,HealthOmics 會從最接近封存根目錄的定義檔案中進行選擇。它會忽略隱藏的檔案和資料夾,並忽略封存中更深的定義檔案。自動選擇也需要單一引擎,因為封存會保留一個引擎的定義檔案,或因為您設定了 engine。在該最接近層級的檔案中:

  • 如果只有一個定義檔案,則 HealthOmics 會使用它,無論它的名稱為何。

  • 如果有數個,HealthOmics 會使用名為 main.wdl、 main.nf或 的 main.cwl。

在兩種情況下HealthOmics 無法解析封存。請求本身成功,工作流程或工作流程版本在 中啟動CREATING,但接著移至 FAILED,且其狀態訊息提供原因:

  • Zip file contains multiple workflow definition types – 封存會保留多個引擎的定義檔案,而您未設定 engine。無論您是否設定 ,這都適用main。設定 engine或移除其他引擎的檔案。當兩個案例都適用時,HealthOmics 會先報告此原因。

  • Zip file contains multiple top-level workflow definition files – 您省略了 main,數個定義檔案位於最接近的關卡,並非只有一個會命名為 main.wdl、 main.nf或 main.cwl。main 設定為您想要的路徑。

若要自行選擇主要定義檔案,請將 main(--main) 設定為相對於封存根目錄的路徑。路徑最多可達 128 個字元。

例如,對於主要定義檔案為 的封存workflow-definition/main-file.wdl:

--main workflow-definition/main-file.wdl

設定 engine(--engine) 自行命名引擎,以解析包含多個引擎定義檔案的封存,或使用 WDL 寬鬆引擎。

考慮本機電腦上具有下列配置的工作流程資料夾:

my-workflow/ main.wdl tasks/align.wdl tasks/call-variants.wdl

從該資料夾內部建立封存,讓 main.wdl和 tasks 資料夾位於封存的根目錄。下列命令也會新增隱藏的檔案和資料夾,例如複製儲存庫中的.git資料夾。這些會計入定義大小,因此排除您不需要的定義大小,例如,使用 -x '.*' -x '*/.*':

cd my-workflow zip -r ../my-definition.zip . cd ..

main.wdl 現在是封存根目錄的唯一定義檔案,因此您可以省略 main:

main.wdl tasks/align.wdl tasks/call-variants.wdl

內嵌或透過 Amazon S3 傳送封存

definitionZip 是二進位參數。當您使用 時 AWS CLI, 會使用 fileb://字首傳遞封存, 會 AWS CLI 讀取檔案並為您編碼。 AWS SDKs 會為您執行編碼。如果您直接透過 HTTP 呼叫 API,請以 base64 編碼字串傳送封存。

下列範例中的參數範本是選用的。如果您省略它,HealthOmics 會從工作流程定義中衍生執行參數。如需詳細資訊,請參閱HealthOmics 工作流程的參數範本檔案。

下列 AWS CLI 範例會透過傳送 ZIP 封存與 請求來建立工作流程。取代每個斜體值:

aws omics create-workflow \ --name my-workflow-name \ --definition-zip fileb://my-definition.zip \ --parameter-template file://my-parameter-template.json

對於大於 中definitionZip限制的封存選擇工作流程定義來源,請將其上傳到與工作流程相同區域中的 Amazon S3 儲存貯體,並definitionUri改用 。以斜體取代每個值,並以您自己的值取代儲存貯體:

aws s3 cp my-definition.zip s3://amzn-s3-demo-bucket1/my-definition.zip aws omics create-workflow \ --name my-workflow-name \ --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip \ --parameter-template file://my-parameter-template.json

設定預設執行儲存體

我們建議大多數工作流程使用動態執行儲存。在下列任一情況下選擇靜態執行儲存:

  • 工作流程使用超過 9.6 TiB 的資料,其任務受益於高持續 I/O。

  • 一次從共用執行儲存體讀取超過 100 個分散的任務。

如需每個執行儲存類型的詳細資訊,包括其輸送量特性,以及如何調整靜態執行儲存的大小,請參閱 在 HealthOmics 工作流程中執行儲存類型和 私有 HealthOmics 工作流程的執行最佳化。

storageType (--storage-type) 和 storageCapacity(--storage-capacity) 參數會為使用工作流程的執行設定預設值。您可以在執行時間覆寫兩者,如中所述在 HealthOmics 中開始執行。如下所示進行配對:

  • storageType 的 DYNAMIC – HealthOmics 會根據檔案系統使用率來擴展和縮減執行儲存。請勿設定 storageCapacity。如果您這麼做,請求會失敗: 會CreateWorkflow報告 You cannot set the storage capacity for workflows that use DYNAMIC run storage type,而 會CreateWorkflowVersion報告 You cannot set the storage capacity for workflow version that use DYNAMIC run storage type。

  • storageType 的 STATIC – HealthOmics 配置固定數量的執行儲存,因此也以 GiB storageCapacity設定 。如果工作流程和執行都未指定容量,則執行會使用 1,200 GiB。上限為每個帳戶的限制。HealthOmics 僅會將靜態執行儲存佈建為 1,200 GiB 或 2,400 GiB 的倍數,並將任何其他值四捨五入至下一個支援的大小。例如,HealthOmics 為低於 1,200 GiB 的容量佈建 1,200 GiB。

下列範例會將預設執行儲存設定為 1,200 GiB 的靜態儲存:

aws omics create-workflow \ --name my-workflow-name \ --definition-zip fileb://my-definition.zip \ --storage-type STATIC \ --storage-capacity 1200