本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
封裝和提供 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 \ --namemy-workflow-name\ --definition-zip fileb://my-definition.zip\ --parameter-template file://my-parameter-template.json
對於大於 中definitionZip限制的封存選擇工作流程定義來源,請將其上傳到與工作流程相同區域中的 Amazon S3 儲存貯體,並definitionUri改用 。以斜體取代每個值,並以您自己的值取代儲存貯體:
aws s3 cpmy-definition.zips3://amzn-s3-demo-bucket1/my-definition.zip aws omics create-workflow \ --namemy-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 配置固定數量的執行儲存,因此也以 GiBstorageCapacity設定 。如果工作流程和執行都未指定容量,則執行會使用 1,200 GiB。上限為每個帳戶的限制。HealthOmics 僅會將靜態執行儲存佈建為 1,200 GiB 或 2,400 GiB 的倍數,並將任何其他值四捨五入至下一個支援的大小。例如,HealthOmics 為低於 1,200 GiB 的容量佈建 1,200 GiB。
下列範例會將預設執行儲存設定為 1,200 GiB 的靜態儲存:
aws omics create-workflow \ --namemy-workflow-name\ --definition-zip fileb://my-definition.zip\ --storage-type STATIC \ --storage-capacity 1200