

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

# HealthOmics ワークフロー定義をパッケージ化して提供する
<a name="workflow-defn-packaging"></a>

ワークフローまたはワークフローバージョンを作成するときは、リクエストで送信する ZIP アーカイブ、Amazon S3 の ZIP アーカイブ、または Git ベースのリポジトリの 1 つのソースから定義を指定します。複数の定義ソースを含むリクエストは失敗します。このトピックのパラメータは、 オペレーション`CreateWorkflow`と `CreateWorkflowVersion`オペレーションの両方に適用されます。詳細な手順については、[プライベートワークフローを作成する](create-private-workflow.md)「」および「」を参照してください[ワークフローバージョンを作成する](workflows-version-create.md)。

**注記**  
HealthOmics は、ワークフローの作成時に一部のワークフロー定義をリントします。リントされるエンジン、検出結果がワークフローをブロックするかどうか、およびそれらの読み取り方法については、「」を参照してください[HealthOmics のワークフローlinters](workflows-linter.md)。

## ワークフロー定義のソースを選択する
<a name="workflow-defn-source-selection"></a>


| このソースを使用する | 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 ワークフローの固定サイズクォータ](fixed-quotas.md#fixed-quotas-workflows)」を参照してください。
+ アカウントが定義を保持する Amazon S3 バケットを所有していない場合は、バケット所有者の AWS アカウント ID を `workflowBucketOwnerId` () で指定します`--workflow-bucket-owner-id`。
+ では`definitionRepository`、HealthOmics はリポジトリから定義ファイルを読み取り、`main`、`parameterTemplatePath`、 `readmePath`はアーカイブ内ではなくリポジトリ内のパスです。`definitionRepository` フィールドの詳細については、「」を参照してください[Git ベースのリポジトリからワークフロー定義を使用する](create-private-workflow.md#create-defn-uri-git)。接続設定とサポートされているプロバイダーの詳細については、「」を参照してください[HealthOmics ワークフローと Git ベースのリポジトリの統合](workflows-git-integration.md)。

## ZIP アーカイブレイアウトとメイン定義ファイル
<a name="workflow-defn-zip-layout"></a>

サブワークフロー、、`bin`スクリプトなど`nextflow.config`、メイン定義がインポートするすべてのファイルを含めます。

定義ファイルは、拡張子が 、、 `.wdl` `.nf`などのサポートされているエンジンと一致するファイルです`.cwl`。を省略すると`main`、HealthOmics はアーカイブのルートに最も近い定義ファイルから選択します。非表示のファイルとフォルダは無視され、アーカイブのより深い定義ファイルは無視されます。自動選択では、アーカイブが 1 つのエンジンの定義ファイルを保持するか、 を設定しているため、1 つのエンジンも必要です`engine`。その最も近いレベルのファイルのうち:
+ 定義ファイルが 1 つだけある場合、HealthOmics は名前に関係なくそれを使用します。
+ 複数の がある場合、HealthOmics は `main.wdl`、、`main.nf`または という名前のものを使用します`main.cwl`。

2 つの場合、HealthOmics はアーカイブを解決できません。リクエスト自体は成功し、ワークフローまたはワークフローバージョンは で開始されますが`CREATING`、 に移動し`FAILED`、ステータスメッセージに理由が表示されます。
+ `Zip file contains multiple workflow definition types` – アーカイブは複数のエンジンの定義ファイルを保持しており、 を設定していません`engine`。これは、 を設定するかどうかにかかわらず適用されます`main`。を設定するか`engine`、他のエンジンのファイルを削除します。HealthOmics は、両方のケースが適用されると、最初にこの理由を報告します。
+ `Zip file contains multiple top-level workflow definition files` – を省略しました`main`。複数の定義ファイルは最も近いレベルにあり、そのうちの 1 つが `main.wdl`、、`main.nf`または という名前ではありません`main.cwl`。を目的のパス`main`に設定します。

メイン定義ファイルを自分で選択するには、アーカイブのルートを基準にして、 `main` (`--main`) をパスに設定します。パスは最大 128 文字です。

たとえば、メイン定義ファイルが であるアーカイブの場合`workflow-definition/main-file.wdl`:

```
--main workflow-definition/main-file.wdl
```

`engine` (`--engine`) を設定して、複数のエンジンの定義ファイルを保持するアーカイブを解決するか、WDL lenient エンジンを使用します。

次のレイアウトのローカルマシン上のワークフローフォルダを検討してください。

```
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 経由で送信する
<a name="workflow-defn-zip-handoff"></a>

`definitionZip` はバイナリパラメータです。を使用すると AWS CLI、アーカイブに `fileb://`プレフィックスを渡すと、 がファイル AWS CLI を読み取ってエンコードします。 AWS SDKs はエンコードを自動的に行います。API を HTTP 経由で直接呼び出す場合は、アーカイブを base64 でエンコードされた文字列として送信します。

次の例のパラメータテンプレートはオプションです。これを省略すると、HealthOmics はワークフロー定義から実行パラメータを取得します。詳細については、「[HealthOmics ワークフローのパラメータテンプレートファイル](parameter-templates.md)」を参照してください。

次の AWS CLI 例では、 リクエストで ZIP アーカイブを送信してワークフローを作成します。イタリック体の各値を置き換えます。

```
aws omics create-workflow \
  --name {{my-workflow-name}} \
  --definition-zip fileb://{{my-definition.zip}} \
  --parameter-template file://{{my-parameter-template.json}}
```

`definitionZip` の制限を超えるアーカイブの場合は[ワークフロー定義のソースを選択する](#workflow-defn-source-selection)、ワークフローと同じリージョンの Amazon S3 バケットにアップロードし、`definitionUri`代わりに を使用します。斜体の各値を置き換え、バケットを独自の値に置き換えます。

```
aws s3 cp {{my-definition.zip}} s3://amzn-s3-demo-bucket1/my-definition.zip

aws omics create-workflow \
  --name {{my-workflow-name}} \
  --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip \
  --parameter-template file://{{my-parameter-template.json}}
```

## デフォルトの実行ストレージを設定する
<a name="workflow-defn-storage-pairing"></a>

ほとんどのワークフローでは、動的実行ストレージをお勧めします。次のいずれかのケースで静的実行ストレージを選択します。
+ ワークフローは 9.6 TiB を超えるデータを使用し、そのタスクは高い持続的な I/O の恩恵を受けます。
+ 100 を超える分散タスクが共有実行ストレージから一度に読み取られます。

スループット特性や静的実行ストレージのサイズ設定方法など、各実行ストレージタイプの詳細については、[HealthOmics ワークフローでストレージタイプを実行する](workflows-run-types.md)「」および「」を参照してください[プライベート HealthOmics ワークフローの最適化を実行する](workflows-run-optimize.md)。

`storageType` (`--storage-type`) および `storageCapacity` (`--storage-capacity`) パラメータは、ワークフローを使用する実行のデフォルトを設定します。「」で説明されているように、実行時に両方を上書きできます[HealthOmics で実行を開始する](starting-a-run.md)。次のようにペアリングします。
+ `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 は一定量の実行ストレージを割り当てるため、 も GiB `storageCapacity`で設定します。ワークフローも実行も容量を指定しない場合、実行は 1,200 GiB を使用します。最大はアカウントあたりの制限です。HealthOmics は、静的実行ストレージを 1,200 GiB または 2,400 GiB の倍数としてのみプロビジョニングし、他の値を次にサポートされているサイズに切り上げます。例えば、HealthOmics は 1,200 GiB 未満の容量に対して 1,200 GiB をプロビジョニングします。

次の例では、デフォルトの実行ストレージを 1,200 GiB の静的ストレージに設定します。

```
aws omics create-workflow \
  --name {{my-workflow-name}} \
  --definition-zip fileb://{{my-definition.zip}} \
  --storage-type STATIC \
  --storage-capacity 1200
```