プライベートワークフローを作成する - 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 キャッシュ名前空間に再マッピングします。

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

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

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

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

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

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

    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

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