

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

# プライベートワークフローを作成する
<a name="create-private-workflow"></a>

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

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

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

ワークフロータスクで外部ツール (実行可能ファイル、ライブラリ、スクリプト) を使用している場合は、これらのツールをコンテナイメージに構築します。コンテナイメージをホストするには、次のオプションがあります。
+ ECR プライベートレジストリでコンテナイメージをホストします。このオプションの前提条件:
  + ECR プライベートリポジトリを作成するか、既存のリポジトリを選択します。
  + の説明に従って ECR リソースポリシーを設定します[Amazon ECR のアクセス許可](permissions-ecr.md)。
  + コンテナイメージをプライベートリポジトリにアップロードします。
+ コンテナイメージを、サポートされているサードパーティーレジストリのコンテンツと同期します。このオプションの前提条件:
  + ECR プライベートレジストリで、アップストリームレジストリごとにプルスルーキャッシュルールを設定します。詳細については、「[イメージマッピング](workflows-ecr.md#ecr-pull-through-mapping-format)」を参照してください。
  + の説明に従って ECR リソースポリシーを設定します[Amazon ECR のアクセス許可](permissions-ecr.md)。
  + リポジトリ作成テンプレートを作成します。テンプレートは、Amazon ECR がアップストリームレジストリのプライベートリポジトリを作成するタイミングの設定を定義します。
  + ワークフロー定義のコンテナイメージ参照を ECR キャッシュ名前空間に再マッピングするためのプレフィックスマッピングを作成します。

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

**Topics**
+ [コンソールを使用したワークフローの作成](#console-create-workflows)
+ [CLI を使用したワークフローの作成](#api-create-workflows)
+ [SDK を使用したワークフローの作成](#sdk-create-workflows)

## コンソールを使用したワークフローの作成
<a name="console-create-workflows"></a>

**ワークフローを作成するステップ**

1. [HealthOmics コンソール](https://console.aws.amazon.com/omics/)を開きます。

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

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

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

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

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

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

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

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

      1. **リポジトリサービスからのインポート**の場合:
**注記**  
HealthOmics は、、GitHub、GitLab、、 のパブリックリポジトリとプライベートリポジトリをサポートしていますBitbucketGitHub self-managedGitLab self-managed。

         1. **接続**を選択して、 AWS リソースを外部リポジトリに接続します。接続を作成するには、「」を参照してください[外部コードリポジトリに接続する](setting-up-new.md#setting-up-omics-repository)。
**注記**  
TLV リージョンのお客様は、ワークフローを作成するにはIAD、 (us-east-1) リージョンで接続を作成する必要があります。

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

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

         1. **ファイルパターンを除外** で、特定のフォルダ、ファイル、または拡張子を除外するファイルパターンを入力します。これにより、リポジトリファイルをインポートする際のデータサイズを管理できます。最大 50 パターンがあり、パターンは [glob パターン構文](https://fossil-scm.org/home/doc/tip/www/globs.md)に従う必要があります。例えば、次のようになります。

            1. `tests/`

            1. `*.jpeg`

            1. `large_data.zip`

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

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

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

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

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

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

1. **README ファイル** (オプション) パネルで、**README ファイルのソース**を選択し、次の情報を指定します。
   + **リポジトリサービスからインポート**するには、**README ファイルパス**にリポジトリ内の README ファイルへのパスを入力します。
   + **S3 からファイルを選択する**には、S3 の **README ファイルに S3**README ファイルの Amazon S3 URI を入力します。
   + **ローカルソースからファイルを選択**: **README で - オプション**で、**ファイルを選択** を選択して、アップロードするマークダウン (.md) ファイルを選択します。

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

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

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

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

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

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

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

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

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

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

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

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

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

   **マッピングファイルのソース**で、次のいずれかのオプションを選択します。
   + **なし** – マッピングルールは必要ありません。
   + **S3 から JSON ファイルを選択する** – マッピングファイルの S3 の場所を指定します。
   + **ローカルソースから JSON ファイルを選択する** – ローカルデバイスのマッピングファイルの場所を指定します。
   + **マッピングを手動で入力する** – **マッピング**パネルにレジストリマッピングとイメージマッピングを入力します。

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

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

      各レジストリマッピングには、次のフィールドが含まれます。
      + **アップストリームレジストリ URL** – アップストリームレジストリの URI。
      + **ECR リポジトリプレフィックス** – Amazon ECR プライベートリポジトリで使用するリポジトリプレフィックス。
      + (オプション) **アップストリームリポジトリプレフィックス** – アップストリームレジストリ内のリポジトリのプレフィックス。
      + (オプション) **ECR アカウント ID** – アップストリームコンテナイメージを所有するアカウントのアカウント ID。

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

      各イメージマッピングには、次のフィールドが含まれます。
      + **ソースイメージ** – アップストリームレジストリ内のソースイメージの URI を指定します。
      + **送信先イメージ** – プライベート Amazon ECR レジストリ内の対応するイメージの URI を指定します。

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

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

## CLI を使用したワークフローの作成
<a name="api-create-workflows"></a>

ワークフローファイルとパラメータテンプレートファイルがローカルマシンにある場合は、次の 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"
}
```

### ワークフローの作成時に使用するオプションパラメータ
<a name="other-create-parameters"></a>

ワークフローを作成するときに、任意のオプションパラメータを指定できます。構文の詳細については、AWS HealthOmics API リファレンスの[CreateWorkflow](https://docs.aws.amazon.com/omics/latest/api/API_CreateWorkflow.html)」を参照してください。

**Topics**
+ [ワークフロー定義の Amazon S3 の場所を指定する](#create-defn-uri-parameter)
+ [Git ベースのリポジトリからワークフロー定義を使用する](#create-defn-uri-git)
+ [Readme ファイルを指定する](#specify-readme-file)
+ [**main** 定義ファイルを指定する](#create-main-parameter)
+ [実行ストレージタイプを指定する](#create-run-storage-parameter)
+ [GPU 設定を指定する](#create-accelerator-parameter)
+ [プルスルーキャッシュマッピングパラメータを設定する](#create-prefix-mapping-parameters)

#### ワークフロー定義の Amazon S3 の場所を指定する
<a name="create-defn-uri-parameter"></a>

ワークフロー定義ファイルが 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 ベースのリポジトリからワークフロー定義を使用する
<a name="create-defn-uri-git"></a>

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

`definition-respository` パラメータには、次のフィールドが含まれます。
+ **connectionArn** – AWS リソースを外部リポジトリに接続するコード接続の ARN。
+ **fullRepositoryId** – リポジトリ ID を として入力します`owner-name/repo-name`。このリポジトリ内のファイルにアクセスできることを確認します。
+ **sourceReference** (オプション) – リポジトリ参照タイプ (BRANCH、TAG、または COMMIT) と値を入力します。

  ソースリファレンスを指定しない場合、HealthOmics はデフォルトブランチで最新のコミットを使用します。
+ **excludeFilePatterns** (オプション) – 特定のフォルダ、ファイル、または拡張子を除外するファイルパターンを入力します。これにより、リポジトリファイルをインポートする際のデータサイズを管理できます。最大 50 個のパターンを指定します。パターンは [glob パターン構文](https://fossil-scm.org/home/doc/tip/www/globs.md)に従う必要があります。例えば、次のようになります。
  + `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](https://repost.aws/articles/ARCEN7AjhaRSmteczRoc_QsA/how-to-create-an-aws-healthomics-workflows-from-content-in-git)」を参照してください。

#### Readme ファイルを指定する
<a name="specify-readme-file"></a>

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 ファイル](workflows-readme.md)」を参照してください。

#### **main** 定義ファイルを指定する
<a name="create-main-parameter"></a>

複数のワークフロー定義ファイルを含める場合は、 `main`パラメータを使用してワークフローのメイン定義ファイルを指定します。

```
aws omics create-workflow  \
  --name Test  \
  --main multi_workflow/workflow2.wdl  \
    ...
```

#### 実行ストレージタイプを指定する
<a name="create-run-storage-parameter"></a>

デフォルトの実行ストレージタイプ (DYNAMIC または STATIC) を指定し、ストレージ容量 (静的ストレージに必要) を実行できます。実行ストレージタイプの詳細については、「」を参照してください[HealthOmics ワークフローでストレージタイプを実行する](workflows-run-types.md)。

```
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 設定を指定する
<a name="create-accelerator-parameter"></a>

アクセラレーターパラメータを使用して、高速コンピューティングインスタンスで実行されるワークフローを作成します。次の例は、 `accelerators`パラメータの使用方法を示しています。ワークフロー定義で GPU 設定を指定します。「[高速コンピューティングインスタンス](memory-and-compute-tasks.md#workflow-task-accelerated-computing-instances)」を参照してください。

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

#### プルスルーキャッシュマッピングパラメータを設定する
<a name="create-prefix-mapping-parameters"></a>

Amazon ECR プルスルーキャッシュマッピング機能を使用している場合は、デフォルトのマッピングを上書きできます。コンテナ設定パラメータの詳細については、「」を参照してください[プライベートワークフローのコンテナイメージ](workflows-ecr.md)。

次の例では、 ファイルにこのコンテンツ`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 を使用したワークフローの作成
<a name="sdk-create-workflows"></a>

ワークフローは、いずれかの 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={ ... }
)
```