本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立私有工作流程
使用 HealthOmics 主控台、 AWS CLI 命令或其中一個 AWS SDKs建立工作流程。
注意
請勿在工作流程名稱中包含任何個人身分識別資訊 (PII)。這些名稱會顯示在 CloudWatch 日誌中。
當您建立工作流程時,HealthOmics 會將通用唯一識別碼 (UUID) 指派給工作流程。工作流程 UUID 是全域唯一識別符 (guid),在工作流程和工作流程版本中是唯一的。基於資料來源目的,我們建議您使用工作流程 UUID 來唯一識別工作流程。
如果您的工作流程任務使用任何外部工具 (可執行檔、程式庫或指令碼),您可以將這些工具建置到容器映像中。您可以使用下列選項來託管容器映像:
-
在 ECR 私有登錄檔中託管容器映像。此選項的先決條件:
-
建立 ECR 私有儲存庫,或選擇現有的儲存庫。
-
如中所述設定 ECR 資源政策Amazon ECR 許可。
-
將您的容器映像上傳至私有儲存庫。
-
-
同步容器映像與支援的第三方登錄檔的內容。此選項的先決條件:
-
在 ECR 私有登錄檔中,為每個上游登錄檔設定提取快取規則。如需詳細資訊,請參閱影像映射 。
-
如中所述設定 ECR 資源政策Amazon ECR 許可。
-
建立儲存庫建立範本。範本定義 Amazon ECR 為上游登錄檔建立私有儲存庫時的 設定。
-
建立字首映射,將工作流程定義中的容器映像參考重新映射至 ECR 快取命名空間。
-
使用主控台建立工作流程
建立工作流程的步驟
-
開啟 HealthOmics 主控台
。 -
如有需要,請開啟左側導覽窗格 (≡)。選擇私有工作流程。
-
在私有工作流程頁面上,選擇建立工作流程。
-
在定義工作流程頁面上,提供下列資訊:
-
工作流程名稱:此工作流程的獨特名稱。建議您設定工作流程名稱,以在 AWS HealthOmics 主控台和 CloudWatch 日誌中組織您的執行。
-
描述 (選用):此工作流程的描述。
-
-
在工作流程定義面板中,提供下列資訊:
-
工作流程語言 (選用):選取工作流程的規格語言。否則,HealthOmics 會從工作流程定義中決定語言。
-
對於工作流程定義來源,選擇從 Git 型儲存庫、Amazon S3 位置或從本機磁碟機匯入定義資料夾。
-
對於從儲存庫服務匯入:
注意
HealthOmics 支援 GitHub、、GitLab、Bitbucket、 的公有和私有儲存庫GitHub self-managedGitLab self-managed。
-
選擇連線,將您的 AWS 資源連線至外部儲存庫。若要建立連線,請參閱 與外部程式碼儲存庫連線。
注意
TLV 區域中的客戶需要在 IAD(us-east-1) 區域中建立連線,才能建立工作流程。
-
在完整儲存庫 ID 中,將您的儲存庫 ID 輸入為 user-name/repo-name。確認您有權存取此儲存庫中的檔案。
-
在來源參考 (選用) 中,輸入儲存庫來源參考 (分支、標籤或遞交 ID)。如果未指定來源參考,HealthOmics 會使用預設分支。
-
在排除檔案模式中,輸入檔案模式以排除特定資料夾、檔案或副檔名。這有助於在匯入儲存庫檔案時管理資料大小。最多有 50 種模式,而且 patter 必須遵循 glob 模式語法
。例如: -
tests/
-
*.jpeg
-
large_data.zip
-
-
-
對於從 S3 選取定義資料夾:
-
輸入包含壓縮工作流程定義資料夾的 Amazon S3 位置。Amazon S3 儲存貯體必須與工作流程位於相同的區域。
-
如果您的帳戶沒有 Amazon S3 儲存貯體,請在 S3 儲存貯體擁有者 AWS 的帳戶 ID 中輸入儲存貯體擁有者的帳戶 ID。 S3 需要此資訊,以便 HealthOmics 可以驗證儲存貯體擁有權。
-
-
對於從本機來源選取定義資料夾:
-
輸入壓縮工作流程定義資料夾的本機磁碟機位置。
-
-
-
主要工作流程定義檔案路徑 (選用):輸入從壓縮工作流程定義資料夾或儲存庫到
main
檔案的檔案路徑。如果工作流程定義資料夾中只有一個檔案,或主要檔案名為「主要」,則不需要此參數。
-
-
在 README 檔案 (選用) 面板中,選取 README 檔案的來源,並提供下列資訊:
-
對於從儲存庫服務匯入,在 README 檔案路徑中,輸入儲存庫中 README 檔案的路徑。
-
針對從 S3 選取檔案,在 S3 的 README 檔案中,輸入 README 檔案的 Amazon S3 URI。
-
對於從本機來源選取檔案:在 README - 選用中,選擇選擇檔案以選取要上傳的 Markdown (.md) 檔案。
-
-
在預設執行儲存組態面板中,為使用此工作流程的執行提供預設執行儲存類型和容量:
-
執行儲存體類型:選擇是否使用靜態或動態儲存體做為暫時執行儲存體的預設值。預設為靜態儲存。
-
執行儲存容量 (選用):對於靜態執行儲存類型,您可以輸入此工作流程所需的預設執行儲存量。此參數的預設值為 1200 GiB。您可以在開始執行時覆寫這些預設值。
-
-
標籤 (選用):您最多可以將 50 個標籤與此工作流程建立關聯。
-
選擇下一步。
-
在新增工作流程參數 (選用) 頁面上,選取參數來源:
-
對於從工作流程定義檔案剖析,HealthOmics 會自動從工作流程定義檔案剖析工作流程參數。
-
對於從 Git 儲存庫提供參數範本,請使用從儲存庫到參數範本檔案的路徑。
-
對於從本機來源選取 JSON 檔案,請從指定參數的本機來源上傳JSON檔案。
-
對於手動輸入工作流程參數,請手動輸入參數名稱和描述。
-
-
在參數預覽面板中,您可以檢閱或變更此工作流程版本的參數。如果您還原JSON檔案,則會遺失您所做的任何本機變更。
-
選擇下一步。
-
在容器 URI 重新映射頁面上的映射規則面板中,您可以定義工作流程的 URI 映射規則。
針對映射檔案的來源,選取下列其中一個選項:
-
無 – 不需要映射規則。
-
從 S3 選取 JSON 檔案 – 指定映射檔案的 S3 位置。
-
從本機來源選取 JSON 檔案 – 在本機裝置上指定映射檔案位置。
-
手動輸入映射 – 在映射面板中輸入登錄映射和映像映射。
-
主控台會顯示映射面板。如果您選擇映射來源檔案,主控台會顯示檔案中的值。
-
在登錄檔映射中,您可以編輯映射或新增映射 (最多 20 個登錄檔映射)。
每個登錄檔映射都包含下列欄位:
-
上游登錄檔 URL – 上游登錄檔的 URI。
-
ECR 儲存庫字首 – 要在 Amazon ECR 私有儲存庫中使用的儲存庫字首。
-
(選用) 上游儲存庫字首 – 上游登錄檔中儲存庫的字首。
-
(選用) ECR 帳戶 ID – 擁有上游容器映像之帳戶的帳戶 ID。
-
-
在映像映射中,您可以編輯映像映射或新增映射 (最多 100 個映像映射)。
每個影像映射都包含下列欄位:
-
來源映像 – 指定上游登錄檔中來源映像的 URI。
-
目的地映像 – 指定私有 Amazon ECR 登錄檔中對應映像的 URI。
-
-
-
選擇下一步。
-
檢閱工作流程組態,然後選擇建立工作流程。
使用 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。
設定提取快取映射參數
如果您使用 Amazon ECR 提取快取映射功能,您可以覆寫預設映射。如需容器設定參數的詳細資訊,請參閱 私有工作流程的容器映像。
在下列範例中, 檔案mappings.json
包含此內容:
{ "registryMappings": [ { "upstreamRegistryUrl": "registry-1.docker.io", "ecrRepositoryPrefix": "docker-hub" }, { "upstreamRegistryUrl": "quay.io", "ecrRepositoryPrefix": "quay", "accountId": "123412341234" }, { "upstreamRegistryUrl": "public.ecr.aws", "ecrRepositoryPrefix": "ecr-public" } ], "imageMappings": [{ "sourceImage": "docker.io/library/ubuntu:latest", "destinationImage": "healthomics-docker-2/custom/ubuntu:latest", "accountId": "123412341234" }, { "sourceImage": "nvcr.io/nvidia/k8s/dcgm-exporter", "destinationImage": "healthomics-nvidia/k8s/dcgm-exporter" } ] }
在 create-workflow 命令中指定映射參數:
aws omics create-workflow \ ... --container-registry-map-file file://mappings.json ...
您也可以指定映射參數檔案的 S3 位置:
aws omics create-workflow \ ... --container-registry-map-uri s3://amzn-s3-demo-bucket1/test.zip ...
指定 definition-uri 參數
如果您包含多個工作流程定義檔案,請使用 main
參數來指定哪個檔案是工作流程的主要定義檔案。
如果您將工作流程定義檔案上傳到 Amazon S3 資料夾,請使用 definition-uri
參數指定位置,如下列範例所示。如果您的帳戶未擁有 Amazon S3 儲存貯體,請提供擁有者的 AWS 帳戶 ID。
aws omics create-workflow \ --name Test \ --definition-uri s3://omics-bucket/workflow-definition/ \ --owner-id 123456789012 ...
指定main定義檔案
如果您要包含多個工作流程定義檔案,請使用 main
參數來指定工作流程的主要定義檔案。
aws omics create-workflow \ --name Test \ --main multi_workflow/workflow2.wdl \ ...
使用執行儲存參數
您可以指定預設執行儲存類型 (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 參數。
使用 加速器參數來建立在加速運算執行個體上執行的工作流程。下列範例示範如何使用 accelerators
參數。您可以在工作流程定義中指定 GPU 組態。請參閱 加速運算執行個體。
aws omics create-workflow --name
\ --definition-uri s3://amzn-s3-demo-bucket1/GPUWorkflow.zip \ --accelerators GPU
workflow name
使用 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={ ... } )