

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Emballer et fournir un HealthOmics définition du flux de travail
<a name="workflow-defn-packaging"></a>

Lorsque vous créez un flux de travail ou une version de flux de travail, vous fournissez la définition à partir d'une seule source : une archive ZIP que vous envoyez avec la demande, une archive ZIP dans Amazon S3 ou Git-based référentiel. Une demande qui inclut plusieurs sources de définition échoue. Les paramètres de cette rubrique s'appliquent à la fois au `CreateWorkflow` et `CreateWorkflowVersion` opérations. Pour les procédures complètes, voir [Créez un flux de travail privé](create-private-workflow.md) et [Création d'une version du flux de travail](workflows-version-create.md).

**Note**  
HealthOmics affiche certaines définitions de flux de travail lorsque vous créez un flux de travail. Pour savoir quels moteurs sont concernés, si les résultats bloquent le flux de travail et comment les lire, voir [Les liens du flux de travail s'insèrent HealthOmics](workflows-linter.md).

## Choisissez une source de définition de flux de travail
<a name="workflow-defn-source-selection"></a>


| Utilisez cette source | Paramètre d'API | Taille maximum | AWS CLI drapeau | 
| --- | --- | --- | --- | 
| Une archive ZIP sur votre machine locale. | definitionZip | 4,4 MO | --definition-zip fileb://my-definition.zip | 
| Une archive ZIP dans un compartiment Amazon S3. Le seau doit être dans le même AWS La région comme flux de travail. | definitionUri | 100 Mo | --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip | 
| Un soutenu Git-based référentiel, via un AWS CodeConnections connexion. | definitionRepository | Dépôt de 1 Gio, 100 Mo par fichier | --definition-repository avec une valeur JSON | 

Considérations supplémentaires :
+ Ces quotas de taille ne peuvent pas être augmentés. Pour plus d’informations, consultez [HealthOmics quotas de taille fixe pour le flux de travail](fixed-quotas.md#fixed-quotas-workflows).
+ Si votre compte ne possède pas le compartiment Amazon S3 qui contient la définition, indiquez le nom du propriétaire du compartiment Compte AWS ID dans `workflowBucketOwnerId` (`--workflow-bucket-owner-id`).
+ Avec `definitionRepository`, HealthOmics lit les fichiers de définition depuis le référentiel, et `main`, `parameterTemplatePath`, et `readmePath` sont des chemins dans le référentiel plutôt que dans une archive. Pour plus d'informations sur le `definitionRepository` champs, voir [Utilisez la définition du flux de travail à partir d'un Git-based référentiel](create-private-workflow.md#create-defn-uri-git). Pour plus d'informations sur la configuration de la connexion et les fournisseurs pris en charge, voir [HealthOmics intégration du flux de travail avec les référentiels basés sur Git](workflows-git-integration.md).

## Mise en page de l'archive ZIP et fichier de définition principal
<a name="workflow-defn-zip-layout"></a>

Incluez tous les fichiers importés par la définition principale, tels que les sous-flux de travail, `nextflow.config`, et tout `bin` scripts.

Un fichier de définition est un fichier dont l'extension correspond à un moteur pris en charge, tel que `.wdl`, `.nf`, ou `.cwl`. Si vous omettez `main`, HealthOmics le choisit parmi les fichiers de définition les plus proches de la racine de l'archive. Il ignore les fichiers et dossiers cachés, ainsi que les fichiers de définition situés plus en profondeur dans l'archive. La sélection automatique nécessite également un seul moteur, soit parce que l'archive contient les fichiers de définition d'un moteur, soit parce que vous définissez `engine`. Parmi les fichiers au niveau le plus proche :
+ S'il existe exactement un fichier de définition, HealthOmics l'utilise, quel que soit son nom.
+ S'il y en a plusieurs, HealthOmics utilise celui nommé `main.wdl`, `main.nf`, ou `main.cwl`.

Dans deux cas HealthOmics Impossible de résoudre l'archive. La demande elle-même aboutit et le flux de travail ou la version du flux de travail démarre dans `CREATING`, mais passe ensuite à `FAILED`, et son message d'état en indique la raison :
+ `Zip file contains multiple workflow definition types` — l'archive contient les fichiers de définition de plusieurs moteurs que vous n'avez pas définis `engine`. Cela s'applique que vous définissiez ou non `main`. Set `engine`, ou supprimez les fichiers de l'autre moteur. HealthOmics indique cette raison en premier lorsque les deux cas s'appliquent.
+ `Zip file contains multiple top-level workflow definition files` — tu as omis `main`, plusieurs fichiers de définition se trouvent au niveau le plus proche, et aucun d'entre eux n'est nommé `main.wdl`, `main.nf`, ou `main.cwl`. Set `main` sur le chemin de celui que vous voulez.

Pour choisir vous-même le fichier de définition principal, définissez `main` (`--main`) vers son chemin, par rapport à la racine de l'archive. Le chemin peut comporter jusqu'à 128 caractères.

Par exemple, pour une archive dont le fichier de définition principal est `workflow-definition/main-file.wdl`:

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

Set `engine` (`--engine`) pour nommer vous-même le moteur, soit pour résoudre une archive contenant plusieurs fichiers de définition de moteurs, soit pour utiliser le moteur WDL indulgent.

Envisagez un dossier de flux de travail sur votre machine locale avec la disposition suivante :

```
my-workflow/
    main.wdl
    tasks/align.wdl
    tasks/call-variants.wdl
```

Créez l'archive à partir de ce dossier, de sorte que `main.wdl` et le `tasks` dossier situé à la racine de l'archive. La commande suivante permet également d'ajouter des fichiers et des dossiers cachés, tels qu'un `.git` dossier dans un référentiel cloné. Ils sont pris en compte dans la taille de la définition, alors excluez ceux dont vous n'avez pas besoin, par exemple avec `-x '.*' -x '*/.*'`:

```
cd my-workflow
zip -r ../my-definition.zip .
cd ..
```

`main.wdl` est désormais le seul fichier de définition à la racine de l'archive, vous pouvez donc omettre `main`:

```
main.wdl
tasks/align.wdl
tasks/call-variants.wdl
```

## Envoyez l'archive en ligne ou via Amazon S3
<a name="workflow-defn-zip-handoff"></a>

`definitionZip` est un paramètre binaire. Lorsque vous utilisez le AWS CLI, transmettez l'archive avec `fileb://` préfixe et AWS CLI lit le fichier et l'encode pour vous. Le AWS Les SDK se chargent de l'encodage à votre place. Si vous appelez l'API directement via HTTP, envoyez l'archive sous forme de chaîne codée en base64.

Le modèle de paramètres dans les exemples suivants est facultatif. Si vous l'omettez, HealthOmics dérive les paramètres d'exécution à partir de la définition de votre flux de travail. Pour plus d’informations, consultez [Fichiers modèles de paramètres pour les HealthOmics flux de travail](parameter-templates.md).

Ce qui suit AWS CLI example crée un flux de travail en envoyant l'archive ZIP avec la demande. Remplacez chaque valeur en italique :

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

Pour une archive plus grande que `definitionZip` limite en [Choisissez une source de définition de flux de travail](#workflow-defn-source-selection), téléchargez-le dans un compartiment Amazon S3 situé dans la même région que le flux de travail et utilisez `definitionUri` au lieu de cela. Remplacez chaque valeur en italique et remplacez le compartiment par le vôtre :

```
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}}
```

## Définir le stockage d'exécution par défaut
<a name="workflow-defn-storage-pairing"></a>

Nous recommandons le stockage dynamique pour la plupart des flux de travail. Choisissez le stockage d'exécution statique dans l'un des cas suivants :
+ Le flux de travail utilise plus de 9,6 TiB de données, et ses tâches bénéficient d'une haute durabilité I/O.
+ Plus de 100 tâches éparpillées sont lues simultanément depuis le stockage d'exécution partagé.

Pour plus d'informations sur chaque type de stockage d'exécution, y compris ses caractéristiques de débit et la manière de dimensionner le stockage d'exécution statique, consultez [Exécuter les types de stockage dans les HealthOmics flux de travail](workflows-run-types.md) et [Exécuter l'optimisation pour un compte privé HealthOmics flux de travail](workflows-run-optimize.md).

Le `storageType` (`--storage-type`) et `storageCapacity` (`--storage-capacity`) les paramètres définissent les valeurs par défaut pour les exécutions qui utilisent le flux de travail. Vous pouvez annuler les deux au moment de l'exécution, comme décrit dans [Commencez une course HealthOmics](starting-a-run.md). Associez-les comme suit :
+ `storageType` de `DYNAMIC` — HealthOmics redimensionne le stockage d'exécution vers le haut et vers le bas en fonction de l'utilisation du système de fichiers. Ne définissez pas `storageCapacity`. Dans ce cas, la demande échoue : `CreateWorkflow` rapports `You cannot set the storage capacity for workflows that use DYNAMIC run storage type`, et `CreateWorkflowVersion` rapports `You cannot set the storage capacity for workflow version that use DYNAMIC run storage type`.
+ `storageType` de `STATIC` — HealthOmics alloue une quantité fixe de stockage d'exécution, donc définissez également `storageCapacity`, en GiB. Si ni le flux de travail ni l'exécution ne spécifient de capacité, l'exécution utilise 1 200 GiB. Le maximum est une limite par compte. HealthOmics fournit un stockage statique uniquement à 1 200 GiB ou sous la forme d'un multiple de 2 400 GiB, et arrondit toute autre valeur à la taille prise en charge suivante. Par exemple, HealthOmics prévoit 1 200 GiB pour une capacité inférieure à 1 200 GiB.

L'exemple suivant définit le stockage d'exécution par défaut à 1 200 Go de stockage statique :

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