

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Embale e forneça um HealthOmics definição de fluxo de trabalho
<a name="workflow-defn-packaging"></a>

Ao criar um fluxo de trabalho ou uma versão do fluxo de trabalho, você fornece a definição de exatamente uma fonte: um arquivo ZIP que você envia com a solicitação, um arquivo ZIP no Amazon S3 ou um Git-based repositório. Uma solicitação que inclui mais de uma fonte de definição falha. Os parâmetros neste tópico se aplicam a ambos `CreateWorkflow` e `CreateWorkflowVersion` operações. Para obter os procedimentos completos, consulte [Crie um fluxo de trabalho privado](create-private-workflow.md) e [Crie uma versão do fluxo de trabalho](workflows-version-create.md).

**nota**  
HealthOmics linta algumas definições de fluxo de trabalho quando você cria um fluxo de trabalho. Para saber quais mecanismos estão conectados, se as descobertas bloqueiam o fluxo de trabalho e como lê-las, consulte [Fluxo de trabalho intermitente em HealthOmics](workflows-linter.md).

## Escolha uma fonte de definição de fluxo de trabalho
<a name="workflow-defn-source-selection"></a>


| Use esta fonte | Parâmetro da API | Tamanho máximo | AWS CLI sinalizar | 
| --- | --- | --- | --- | 
| Um arquivo ZIP em sua máquina local. | definitionZip | 4,4 MB | --definition-zip fileb://my-definition.zip | 
| Um arquivo ZIP em um bucket do Amazon S3. O balde deve estar no mesmo AWS Região como fluxo de trabalho. | definitionUri | 100 MB | --definition-uri s3://amzn-s3-demo-bucket1/my-definition.zip | 
| Um suportado Git-based repositório, por meio de um AWS CodeConnections conexão. | definitionRepository | Repositório de 1 GiB, 100 MiB por arquivo | --definition-repository com um valor JSON | 

Considerações adicionais:
+ Essas cotas de tamanho não podem ser aumentadas. Para obter mais informações, consulte [HealthOmics cotas de tamanho fixo do fluxo de trabalho](fixed-quotas.md#fixed-quotas-workflows).
+ Se sua conta não for proprietária do bucket Amazon S3 que contém a definição, forneça o do proprietário do bucket Conta da AWS ID em `workflowBucketOwnerId` (`--workflow-bucket-owner-id`).
+ Com `definitionRepository`, HealthOmics lê os arquivos de definição do repositório e `main`, `parameterTemplatePath`, e `readmePath` são caminhos dentro do repositório em vez de dentro de um arquivo. Para obter mais informações sobre o `definitionRepository` campos, consulte [Use a definição de fluxo de trabalho de um Git-based repositório](create-private-workflow.md#create-defn-uri-git). Para obter mais informações sobre a configuração da conexão e os provedores suportados, consulte [HealthOmics integração do fluxo de trabalho com repositórios baseados em Git](workflows-git-integration.md).

## Layout do arquivo ZIP e o arquivo de definição principal
<a name="workflow-defn-zip-layout"></a>

Inclua todos os arquivos que a definição principal importa, como subfluxos de trabalho, `nextflow.config`, e qualquer `bin` roteiros.

Um arquivo de definição é um arquivo cuja extensão corresponde a um mecanismo compatível, como `.wdl`, `.nf`, ou `.cwl`. Se você omitir `main`, HealthOmics o escolhe entre os arquivos de definição que estão mais próximos da raiz do arquivamento. Ele ignora arquivos e pastas ocultos e ignora os arquivos de definição mais profundos no arquivamento. A seleção automática também requer um único mecanismo, seja porque o arquivamento contém os arquivos de definição de um mecanismo ou porque você definiu `engine`. Dos arquivos no nível mais próximo:
+ Se houver exatamente um arquivo de definição, HealthOmics o usa, seja qual for o nome.
+ Se houver vários, HealthOmics usa aquele chamado `main.wdl`, `main.nf`, ou `main.cwl`.

Em dois casos HealthOmics não consigo resolver o arquivamento. A solicitação em si é bem-sucedida e o fluxo de trabalho ou a versão do fluxo de trabalho começa em `CREATING`, mas depois passa para `FAILED`, e sua mensagem de status fornece o motivo:
+ `Zip file contains multiple workflow definition types` — o arquivo contém arquivos de definição para mais de um mecanismo e você não configurou `engine`. Isso se aplica independentemente de você definir ou não `main`. Conjunto `engine`, ou remova os arquivos do outro mecanismo. HealthOmics relata esse motivo primeiro quando ambos os casos se aplicam.
+ `Zip file contains multiple top-level workflow definition files` — você omitiu `main`, vários arquivos de definição estão no nível mais próximo e nenhum deles é nomeado `main.wdl`, `main.nf`, ou `main.cwl`. Conjunto `main` para o caminho daquele que você quer.

Para escolher você mesmo o arquivo de definição principal, defina `main` (`--main`) até seu caminho, em relação à raiz do arquivo. O caminho pode ter até 128 caracteres.

Por exemplo, para um arquivo cujo arquivo de definição principal é `workflow-definition/main-file.wdl`:

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

Conjunto `engine` (`--engine`) para nomear você mesmo o mecanismo, seja para resolver um arquivo que contém mais de um arquivo de definição do mecanismo ou para usar o mecanismo leniente WDL.

Considere uma pasta de fluxo de trabalho em sua máquina local com o seguinte layout:

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

Crie o arquivo de dentro dessa pasta, para que `main.wdl` e o `tasks` A pasta fica na raiz do arquivo. O comando a seguir também adiciona arquivos e pastas ocultos, como `.git` pasta em um repositório clonado. Eles contam para o tamanho da definição, então exclua aqueles que você não precisa, por exemplo, com `-x '.*' -x '*/.*'`:

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

`main.wdl` agora é o único arquivo de definição na raiz do arquivo, então você pode omitir `main`:

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

## Envie o arquivo em linha ou por meio do Amazon S3
<a name="workflow-defn-zip-handoff"></a>

`definitionZip` é um parâmetro binário. Quando você usa o AWS CLI, passe o arquivo com o `fileb://` prefixo e o AWS CLI lê o arquivo e o codifica para você. O AWS Os SDKs fazem a codificação para você. Se você chamar a API diretamente por HTTP, envie o arquivo como uma string codificada em base64.

O modelo de parâmetro nos exemplos a seguir é opcional. Se você omitir, HealthOmics deriva os parâmetros de execução da sua definição de fluxo de trabalho. Para obter mais informações, consulte [Arquivos de modelo de parâmetros para HealthOmics fluxos de trabalho](parameter-templates.md).

O seguinte AWS CLI exemplo cria um fluxo de trabalho enviando o arquivo ZIP com a solicitação. Substitua cada valor em itálico:

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

Para um arquivo maior que o `definitionZip` limite em [Escolha uma fonte de definição de fluxo de trabalho](#workflow-defn-source-selection), faça o upload para um bucket do Amazon S3 na mesma região do fluxo de trabalho e use `definitionUri` em vez disso. Substitua cada valor em itálico e substitua o bucket pelo seu próprio:

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

## Defina o armazenamento de execução padrão
<a name="workflow-defn-storage-pairing"></a>

Recomendamos o armazenamento de execução dinâmica para a maioria dos fluxos de trabalho. Escolha o armazenamento de execução estática em qualquer um desses casos:
+ O fluxo de trabalho usa mais de 9,6 TiB de dados e suas tarefas se beneficiam de uma alta sustentação I/O.
+ Mais de 100 tarefas dispersas são lidas do armazenamento de execução compartilhada de uma só vez.

Para obter mais informações sobre cada tipo de armazenamento de execução, incluindo suas características de taxa de transferência e como dimensionar o armazenamento de execução estática, consulte [Execute tipos de armazenamento em HealthOmics fluxos de trabalho](workflows-run-types.md) e [Execute a otimização para um ambiente privado HealthOmics fluxo de trabalho](workflows-run-optimize.md).

O `storageType` (`--storage-type`) e `storageCapacity` (`--storage-capacity`) os parâmetros definem os padrões para execuções que usam o fluxo de trabalho. Você pode substituir ambos em tempo de execução, conforme descrito em [Comece uma corrida em HealthOmics](starting-a-run.md). Emparelhe-os da seguinte forma:
+ `storageType` do `DYNAMIC` — HealthOmics aumenta e diminui o armazenamento de execução com base na utilização do sistema de arquivos. Não defina `storageCapacity`. Se você fizer isso, a solicitação falhará: `CreateWorkflow` notícias `You cannot set the storage capacity for workflows that use DYNAMIC run storage type`, e `CreateWorkflowVersion` notícias `You cannot set the storage capacity for workflow version that use DYNAMIC run storage type`.
+ `storageType` do `STATIC` — HealthOmics aloca uma quantidade fixa de armazenamento de execução, então também define `storageCapacity`, em GiB. Se nem o fluxo de trabalho nem a execução especificarem uma capacidade, a execução usará 1.200 GiB. O máximo é um limite por conta. HealthOmics provisiona armazenamento de execução estática somente como 1.200 GiB ou como um múltiplo de 2.400 GiB e arredonda qualquer outro valor para o próximo tamanho suportado. Por exemplo, HealthOmics provisiona 1.200 GiB para uma capacidade abaixo de 1.200 GiB.

O exemplo a seguir define o armazenamento de execução padrão para 1.200 GiB de armazenamento estático:

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