プライベートワークフローを作成する - AWS HealthOmics

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

プライベートワークフローを作成する

HealthOmics コンソール、 AWS CLI コマンド、またはいずれかの AWS SDKs を使用してワークフローを作成します。

注記

ワークフロー名に個人を特定できる情報 (PII) を含めないでください。これらの名前は CloudWatch ログに表示されます。

ワークフローを作成すると、HealthOmics は汎用一意識別子 (UUID) をワークフローに割り当てます。ワークフロー UUID は、ワークフローとワークフローバージョン全体で一意なグローバル一意識別子 (ガイド) です。データ出典の目的で、ワークフロー UUID を使用してワークフローを一意に識別することをお勧めします。

ワークフロータスクで外部ツール (実行可能ファイル、ライブラリ、スクリプト) を使用している場合は、これらのツールをコンテナイメージに構築します。コンテナイメージをホストするには、次のオプションがあります。

  • ECR プライベートレジストリでコンテナイメージをホストします。このオプションの前提条件:

    • ECR プライベートリポジトリを作成するか、既存のリポジトリを選択します。

    • の説明に従って ECR リソースポリシーを設定しますAmazon ECR のアクセス許可

    • コンテナイメージをプライベートリポジトリにアップロードします。

  • コンテナイメージを、サポートされているサードパーティーレジストリのコンテンツと同期します。このオプションの前提条件:

    • ECR プライベートレジストリで、アップストリームレジストリごとにプルスルーキャッシュルールを設定します。詳細については、「イメージマッピング 」を参照してください。

    • の説明に従って ECR リソースポリシーを設定しますAmazon ECR のアクセス許可

    • リポジトリ作成テンプレートを作成します。テンプレートは、Amazon ECR がアップストリームレジストリのプライベートリポジトリを作成するタイミングの設定を定義します。

    • プレフィックスマッピングを作成して、ワークフロー定義のコンテナイメージ参照を ECR キャッシュ名前空間に再マッピングします。

ワークフローを作成するときは、ワークフロー、実行、タスクに関する情報を含むワークフロー定義を指定します。HealthOmics は、ローカルまたは Amazon S3 バケットに保存されている .zip アーカイブとして、またはサポートされている Git ベースのリポジトリからワークフロー定義を取得できます。

コンソールを使用したワークフローの作成

ワークフローを作成する手順
  1. HealthOmics コンソールを開きます。

  2. 必要に応じて、左側のナビゲーションペイン (≡) を開きます。プライベートワークフローを選択します。

  3. プライベートワークフローページで、ワークフローの作成を選択します。

  4. ワークフローの定義ページで、次の情報を入力します。

    1. ワークフロー名: このワークフローの固有の名前。ワークフロー名を設定して、 AWS HealthOmics コンソールと CloudWatch Logs で実行を整理することをお勧めします。

    2. 説明 (オプション): このワークフローの説明。

  5. ワークフロー定義パネルで、次の情報を指定します。

    1. ワークフロー言語 (オプション): ワークフローの仕様言語を選択します。それ以外の場合、HealthOmics はワークフロー定義から言語を決定します。

    2. ワークフロー定義ソースでは、Git ベースのリポジトリ、Amazon S3 の場所、またはローカルドライブから定義フォルダをインポートすることを選択します。

      1. リポジトリサービスからのインポートの場合:

        注記

        HealthOmics は、、GitHub、GitLab、、 のパブリックリポジトリとプライベートリポジトリをサポートしていますBitbucketGitHub self-managedGitLab self-managed。

        1. 接続を選択して、 AWS リソースを外部リポジトリに接続します。接続を作成するには、「」を参照してください外部コードリポジトリに接続する

          注記

          TLV リージョンのお客様は、ワークフローを作成するにはIAD、 (us-east-1) リージョンで接続を作成する必要があります。

        2. 完全なリポジトリ ID で、リポジトリ ID を user-name/repo-name として入力します。このリポジトリ内のファイルにアクセスできることを確認します。

        3. ソースリファレンス (オプション) に、リポジトリソースリファレンス (ブランチ、タグ、またはコミット ID) を入力します。ソース参照が指定されていない場合、HealthOmics はデフォルトのブランチを使用します。

        4. ファイルパターンを除外 で、特定のフォルダ、ファイル、または拡張子を除外するファイルパターンを入力します。これにより、リポジトリファイルをインポートする際のデータサイズを管理できます。最大 50 パターンがあり、パターンは glob パターン構文に従う必要があります。例:

          1. tests/

          2. *.jpeg

          3. large_data.zip

      2. S3 から定義フォルダを選択する:

        1. zip 形式のワークフロー定義フォルダを含む Amazon S3 の場所を入力します。Amazon S3 バケットは、ワークフローと同じリージョンにある必要があります。

        2. アカウントが Amazon S3 バケットを所有していない場合は、S3 バケット所有者の AWS アカウント ID にバケット所有者のアカウント ID を入力します。 S3 この情報は、HealthOmics がバケットの所有権を検証できるようにするために必要です。

      3. ローカルソースから定義フォルダを選択する:

        1. 圧縮ワークフロー定義フォルダのローカルドライブの場所を入力します。

    3. メインワークフロー定義ファイルパス (オプション): zip 形式のワークフロー定義フォルダまたはリポジトリから ファイルへのmainファイルパスを入力します。ワークフロー定義フォルダにファイルが 1 つしかない場合、またはメインファイルの名前が「main」の場合、このパラメータは必要ありません。

  6. README ファイル (オプション) パネルで、README ファイルのソースを選択し、次の情報を指定します。

    • リポジトリサービスからインポートするには、README ファイルパスで、リポジトリ内の README ファイルへのパスを入力します。

    • S3 からファイルを選択するには、S3 の README ファイルに S3README ファイルの Amazon S3 URI を入力します。

    • ローカルソースからファイルを選択: README で - オプションで、ファイルを選択 を選択して、アップロードするマークダウン (.md) ファイルを選択します。

  7. デフォルトの実行ストレージ設定パネルで、このワークフローを使用する実行のデフォルトの実行ストレージタイプと容量を指定します。

    1. 実行ストレージタイプ: 一時実行ストレージのデフォルトとして静的ストレージと動的ストレージのどちらを使用するかを選択します。デフォルトは静的ストレージです。

    2. Run storage capacity (オプション): 静的実行ストレージタイプでは、このワークフローに必要なデフォルトの実行ストレージ量を入力できます。このパラメータのデフォルト値は 1200 GiB です。実行を開始するときに、これらのデフォルト値を上書きできます。

  8. タグ (オプション): 最大 50 個のタグをこのワークフローに関連付けることができます。

  9. [次へ] を選択します。

  10. ワークフローパラメータの追加 (オプション) ページで、パラメータソースを選択します。

    1. ワークフロー定義ファイルからの解析の場合、HealthOmics はワークフロー定義ファイルからワークフローパラメータを自動的に解析します。

    2. Git リポジトリからパラメータテンプレートを提供する では、リポジトリからパラメータテンプレートファイルへのパスを使用します。

    3. ローカルソースから JSON ファイルを選択する で、パラメータを指定するローカルソースからJSONファイルをアップロードします。

    4. ワークフローパラメータを手動で入力するには、パラメータ名と説明を手動で入力します。

  11. パラメータプレビューパネルでは、このワークフローバージョンのパラメータを確認または変更できます。JSON ファイルを復元すると、ローカルで行った変更はすべて失われます。

  12. [次へ] を選択します。

  13. コンテナ URI の再マッピングページで、マッピングルールパネルで、ワークフローの URI マッピングルールを定義できます。

    マッピングファイルのソースで、次のいずれかのオプションを選択します。

    • なし – マッピングルールは必要ありません。

    • S3 から JSON ファイルを選択する – マッピングファイルの S3 の場所を指定します。

    • ローカルソースから JSON ファイルを選択する – ローカルデバイスのマッピングファイルの場所を指定します。

    • マッピングを手動で入力するマッピングパネルにレジストリマッピングとイメージマッピングを入力します。

  14. コンソールにマッピングパネルが表示されます。マッピングソースファイルを選択した場合、コンソールにはファイルの値が表示されます。

    1. レジストリマッピングでは、マッピングを編集したり、マッピングを追加したりできます (最大 20 個のレジストリマッピング)。

      各レジストリマッピングには、次のフィールドが含まれます。

      • アップストリームレジストリ URL – アップストリームレジストリの URI。

      • ECR リポジトリプレフィックス – Amazon ECR プライベートリポジトリで使用するリポジトリプレフィックス。

      • (オプション) アップストリームリポジトリプレフィックス – アップストリームレジストリ内のリポジトリのプレフィックス。

      • (オプション) ECR アカウント ID – アップストリームコンテナイメージを所有するアカウントのアカウント ID。

    2. イメージマッピングでは、イメージマッピングを編集したり、マッピングを追加したりできます (最大 100 個のイメージマッピング)。

      各イメージマッピングには、次のフィールドが含まれます。

      • ソースイメージ – アップストリームレジストリ内のソースイメージの URI を指定します。

      • 送信先イメージ – プライベート Amazon ECR レジストリ内の対応するイメージの URI を指定します。

  15. [次へ] を選択します。

  16. ワークフロー設定を確認し、ワークフローの作成を選択します。

CLI を使用したワークフローの作成

ワークフローファイルとパラメータテンプレートファイルがローカルマシンにある場合は、次の CLI コマンドを使用してワークフローを作成できます。

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

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 S3 の場所を指定する

ワークフロー定義ファイルが Amazon S3 フォルダにある場合は、次の例に示すように、 definition-uriパラメータを使用して場所を指定します。アカウントが Amazon S3 バケットを所有していない場合は、所有者の AWS アカウント ID を指定します。

aws omics create-workflow \ --name Test \ --definition-uri s3://omics-bucket/workflow-definition/ \ --owner-id 123456789012 ...

Git ベースのリポジトリからワークフロー定義を使用する

サポートされている Git ベースのリポジトリからワークフロー定義を使用するには、リクエストで definition-repositoryパラメータを使用します。リクエストに複数の入力ソースが含まれていると失敗するため、他のdefinitionパラメータを指定しないでください。

definition-respository パラメータには、次のフィールドが含まれます。

  • connectionArn – AWS リソースを外部リポジトリに接続するコード接続の ARN。

  • fullRepositoryId – リポジトリ ID を として入力しますowner-name/repo-name。このリポジトリ内のファイルにアクセスできることを確認します。

  • sourceReference (オプション) – リポジトリ参照タイプ (BRANCH、TAG、または COMMIT) と値を入力します。

    ソースリファレンスを指定しない場合、HealthOmics はデフォルトブランチで最新のコミットを使用します。

  • excludeFilePatterns (オプション) – 特定のフォルダ、ファイル、または拡張子を除外するファイルパターンを入力します。これにより、リポジトリファイルをインポートする際のデータサイズを管理できます。最大 50 個のパターンを指定します。パターンは glob パターン構文に従う必要があります。例:

    • tests/

    • *.jpeg

    • large_data.zip

Git ベースのリポジトリからワークフロー定義を指定する場合は、 parameter-template-path を使用してパラメータテンプレートファイルを指定します。このパラメータを指定しない場合、HealthOmics はパラメータテンプレートなしでワークフローを作成します。

次の例は、Git ベースのプライベートリポジトリからのコンテンツに関連するパラメータを示しています。

aws omics create-workflow \ --name custom-variant \ --description "Custom variant calling pipeline" \ --engine "WDL" \ --definition-repository '{ "connectionArn": "arn:aws:codeconnections:us-east-1:123456789012:connection/abcd1234-5678-90ab-cdef-1234567890ab", "fullRepositoryId": "myorg/my-genomics-workflows", "sourceReference": { "type": "BRANCH", "value": "main" }, "excludeFilePatterns": ["tests/**", "*.log"] }' \ --main "workflows/variant-calling/main.wdl" \ --parameter-template-path "parameters/variant-calling-params.json" \ --readme-path "docs/variant-calling-README.md" \ --storage-type "DYNAMIC" \

その他の例については、ブログ記事「How to Create an AWS HealthOmics Workflows from Content in Git」を参照してください。

Readme ファイルを指定する

README ファイルの場所は、次のいずれかのパラメータを使用して指定できます。

  • readme-markdown – ローカルマシン上の文字列入力またはファイル。

  • readme-uri – S3 に保存されているファイルの URI。

  • readme-path – リポジトリ内の README ファイルへのパス。

readme-path は definition-respository と組み合わせてのみ使用してください。README パラメータを指定しない場合、HealthOmics はルートレベルの README.md ファイルをリポジトリにインポートします (存在する場合)。

次の例は、readme-path と readme-uri を使用して README ファイルの場所を指定する方法を示しています。

# Using README from repository aws omics create-workflow \ --name "documented-workflow" \ --definition-repository '...' \ --readme-path "docs/workflow-guide.md" # Using README from S3 aws omics create-workflow \ --name "s3-readme-workflow" \ --definition-repository '...' \ --readme-uri "s3://my-bucket/workflow-docs/readme.md"

詳細については、「HealthOmics ワークフロー README ファイル」を参照してください。

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 \

GPU 設定を指定する

アクセラレーターパラメータを使用して、高速コンピューティングインスタンスで実行されるワークフローを作成します。次の例は、 acceleratorsパラメータの使用方法を示しています。ワークフロー定義で GPU 設定を指定します。「高速コンピューティングインスタンス」を参照してください。

aws omics create-workflow --name workflow name \ --definition-uri s3://amzn-s3-demo-bucket1/GPUWorkflow.zip \ --accelerators GPU

プルスルーキャッシュマッピングパラメータを設定する

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 ...

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