Crie um fluxo de trabalho privado - AWS HealthOmics

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á.

Crie um fluxo de trabalho privado

Crie um fluxo de trabalho usando o HealthOmics console, os comandos da AWS CLI ou um dos. AWS SDKs

nota

Não inclua nenhuma informação de identificação pessoal (PII) nos nomes dos fluxos de trabalho. Esses nomes são visíveis nos CloudWatch registros.

Ao criar um fluxo de trabalho, HealthOmics atribui um identificador exclusivo universal (UUID) ao fluxo de trabalho. O UUID do fluxo de trabalho é um identificador global exclusivo (guid) exclusivo em todos os fluxos de trabalho e versões do fluxo de trabalho. Para fins de proveniência de dados, recomendamos que você use o UUID do fluxo de trabalho para identificar fluxos de trabalho de forma exclusiva.

Se suas tarefas de fluxo de trabalho usarem ferramentas externas (executáveis, bibliotecas ou scripts), você cria essas ferramentas em uma imagem de contêiner. Você tem as seguintes opções para hospedar a imagem do contêiner:

  • Hospede a imagem do contêiner no registro privado do ECR. Pré-requisitos para essa opção:

    • Crie um repositório privado ECR ou escolha um repositório existente.

    • Configure a política de recursos do ECR conforme descrito emPermissões do Amazon ECR.

    • Faça upload da imagem do contêiner para o repositório privado.

  • Sincronize a imagem do contêiner com o conteúdo de um registro de terceiros compatível. Pré-requisitos para essa opção:

    • No registro privado do ECR, configure uma regra de cache pull through para cada registro upstream. Para obter mais informações, consulte Mapeamentos de imagens .

    • Configure a política de recursos do ECR conforme descrito emPermissões do Amazon ECR.

    • Crie modelos de criação de repositórios. O modelo define as configurações para quando o Amazon ECR cria o repositório privado para um registro upstream.

    • Crie mapeamentos de prefixo para remapear referências de imagem de contêiner na definição do fluxo de trabalho para namespaces de cache do ECR.

Criando um fluxo de trabalho usando o console

Etapas para criar um fluxo de trabalho
  1. Abra o console de HealthOmics .

  2. Se necessário, abra o painel de navegação esquerdo (≡). Escolha fluxos de trabalho privados.

  3. Na página Fluxos de trabalho privados, escolha Criar fluxo de trabalho.

  4. Na página Definir fluxo de trabalho, forneça as seguintes informações:

    1. Nome do fluxo de trabalho: um nome distinto para esse fluxo de trabalho. Recomendamos definir nomes de fluxo de trabalho para organizar suas execuções no AWS HealthOmics console e nos CloudWatch registros.

    2. Descrição (opcional): uma descrição desse fluxo de trabalho.

  5. No painel Definição do fluxo de trabalho, forneça as seguintes informações:

    1. Idioma do fluxo de trabalho (opcional): selecione o idioma de especificação do fluxo de trabalho. Caso contrário, HealthOmics determina o idioma a partir da definição do fluxo de trabalho.

    2. Para a fonte de definição do fluxo de trabalho, escolha importar a pasta de definição de um repositório baseado em Git, de um local do Amazon S3 ou de uma unidade local.

      1. Para importar de um serviço de repositório:

        nota

        HealthOmics suporta repositórios públicos e privados paraGitHub,,GitLab, BitbucketGitHub self-managed,GitLab self-managed.

        1. Escolha uma conexão para conectar seus AWS recursos ao repositório externo. Para criar uma conexão, consulteConecte-se com repositórios de código externos.

          nota

          Os clientes da TLV região precisam criar uma conexão na região IAD (us-east-1) para criar um fluxo de trabalho.

        2. Em ID completa do repositório, insira sua ID do repositório como nome de usuário/nome do repositório. Verifique se você tem acesso aos arquivos neste repositório.

        3. Em Referência da fonte (opcional), insira uma referência da fonte do repositório (ramificação, tag ou ID do commit). HealthOmics usa a ramificação padrão se nenhuma referência de origem for especificada.

        4. Em Excluir padrões de arquivo, insira os padrões de arquivo para excluir pastas, arquivos ou extensões específicas. Isso ajuda a gerenciar o tamanho dos dados ao importar arquivos do repositório. Há no máximo 50 padrões, e os padrões devem seguir a sintaxe do padrão global. Por exemplo:

          1. tests/

          2. *.jpeg

          3. large_data.zip

      2. Para Selecionar pasta de definição do S3:

        1. Insira a localização do Amazon S3 que contém a pasta de definição de fluxo de trabalho compactada. O bucket do Amazon S3 deve estar na mesma região do fluxo de trabalho.

        2. Se sua conta não for proprietária do bucket do Amazon S3, insira o ID da AWS conta do proprietário do bucket no ID da conta do proprietário do bucket do S3. Essas informações são necessárias para que HealthOmics possamos verificar a propriedade do bucket.

      3. Para Selecionar pasta de definição de uma fonte local:

        1. Insira a localização da unidade local da pasta de definição de fluxo de trabalho compactada.

    3. Caminho do arquivo de definição do fluxo de trabalho principal (opcional): insira o caminho do arquivo da pasta de definição do fluxo de trabalho compactado ou do repositório para o main arquivo. Esse parâmetro não é necessário se houver somente um arquivo na pasta de definição do fluxo de trabalho ou se o arquivo principal tiver o nome “principal”.

  6. No painel Arquivo README (opcional), selecione a Fonte do arquivo README e forneça as seguintes informações:

    • Em Importar de um serviço de repositório, em Caminho do arquivo README, insira o caminho para o arquivo README dentro do repositório.

    • Em Selecionar arquivo do S3, em Arquivo README no S3, insira o URI do Amazon S3 para o arquivo README.

    • Em Selecionar arquivo de uma fonte local: em README - opcional, escolha Escolher arquivo para selecionar o arquivo markdown (.md) a ser carregado.

  7. No painel Configuração de armazenamento de execução padrão, forneça o tipo de armazenamento de execução padrão e a capacidade para execuções que usam esse fluxo de trabalho:

    1. Tipo de execução de armazenamento: escolha se deseja usar armazenamento estático ou dinâmico como padrão para o armazenamento de execução temporária. O padrão é armazenamento estático.

    2. Capacidade de armazenamento de execução (opcional): para o tipo de armazenamento de execução estática, você pode inserir a quantidade padrão de armazenamento de execução necessária para esse fluxo de trabalho. O valor padrão para esse parâmetro é 1200 GiB. Você pode substituir esses valores padrão ao iniciar uma execução.

  8. Tags (opcional): você pode associar até 50 tags a esse fluxo de trabalho.

  9. Escolha Próximo.

  10. Na página Adicionar parâmetros de fluxo de trabalho (opcional), selecione a fonte do parâmetro:

    1. Para Analisar do arquivo de definição do fluxo de trabalho, HealthOmics analisará automaticamente os parâmetros do fluxo de trabalho do arquivo de definição do fluxo de trabalho.

    2. Para Fornecer modelo de parâmetro do repositório Git, use o caminho para o arquivo de modelo de parâmetro do seu repositório.

    3. Em Selecionar arquivo JSON da fonte local, faça upload de um JSON arquivo de uma fonte local que especifique os parâmetros.

    4. Em Inserir manualmente os parâmetros do fluxo de trabalho, insira manualmente os nomes e as descrições dos parâmetros.

  11. No painel de visualização de parâmetros, você pode revisar ou alterar os parâmetros dessa versão do fluxo de trabalho. Se você restaurar o JSON arquivo, perderá todas as alterações locais feitas.

  12. Escolha Próximo.

  13. Na página de remapeamento de URI de contêiner, no painel Regras de mapeamento, você pode definir regras de mapeamento de URI para seu fluxo de trabalho.

    Em Fonte do arquivo de mapeamento, selecione uma das seguintes opções:

    • Nenhuma — Não são necessárias regras de mapeamento.

    • Selecione o arquivo JSON do S3 — Especifique a localização do arquivo de mapeamento no S3.

    • Selecione o arquivo JSON de uma fonte local — Especifique a localização do arquivo de mapeamento em seu dispositivo local.

    • Inserir mapeamentos manualmente — insira os mapeamentos do registro e os mapeamentos de imagem no painel Mapeamentos.

  14. O console exibe o painel Mapeamentos. Se você escolher um arquivo de origem de mapeamento, o console exibirá os valores do arquivo.

    1. Em Mapeamentos do registro, você pode editar os mapeamentos ou adicionar mapeamentos (máximo de 20 mapeamentos do registro).

      Cada mapeamento do registro contém os seguintes campos:

      • URL do registro upstream — O URI do registro upstream.

      • Prefixo do repositório ECR — O prefixo do repositório a ser usado no repositório privado do Amazon ECR.

      • (Opcional) Prefixo do repositório upstream — O prefixo do repositório no registro upstream.

      • (Opcional) ID da conta ECR — ID da conta que possui a imagem do contêiner upstream.

    2. Em Mapeamentos de imagem, você pode editar os mapeamentos de imagem ou adicionar mapeamentos (máximo de 100 mapeamentos de imagem).

      Cada mapeamento de imagem contém os seguintes campos:

      • Imagem de origem — especifica o URI da imagem de origem no registro upstream.

      • Imagem de destino — Especifica o URI da imagem correspondente no registro privado do Amazon ECR.

  15. Escolha Próximo.

  16. Revise a configuração do fluxo de trabalho e escolha Criar fluxo de trabalho.

Criação de um fluxo de trabalho usando a CLI

Depois de definir seu fluxo de trabalho e os parâmetros, você pode criar um fluxo de trabalho usando a CLI, conforme mostrado.

aws omics create-workflow \ --name "my_workflow" \ --definition-zip fileb://my-definition.zip \ --parameter-template file://my-parameter-template.json

Se seu arquivo de definição de fluxo de trabalho estiver localizado em uma pasta do Amazon S3, insira o local usando o definition-uri parâmetro em vez de. definition-zip Para obter mais informações, consulte CreateWorkflowa AWS HealthOmics API Reference.

A create-workflow solicitação responde com o seguinte:

{ "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" }

Parâmetros opcionais a serem usados ao criar um fluxo de trabalho

Você pode especificar qualquer um dos parâmetros opcionais ao criar um fluxo de trabalho. Para obter detalhes de sintaxe, consulte CreateWorkflowa Referência da HealthOmics API da AWS.

Configurar parâmetros de mapeamento de cache pull through

Se você estiver usando o recurso de mapeamento de cache pull through do Amazon ECR, poderá substituir os mapeamentos padrão. Para obter mais informações sobre os parâmetros de configuração do contêiner, consulteImagens de contêiner para fluxos de trabalho privados.

No exemplo a seguir, o arquivo mappings.json contém esse conteúdo:

{ "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" } ] }

Especifique os parâmetros de mapeamento no comando create-workflow:

aws omics create-workflow \ ... --container-registry-map-file file://mappings.json ...

Você também pode especificar a localização do arquivo de parâmetros de mapeamento no S3:

aws omics create-workflow \ ... --container-registry-map-uri s3://amzn-s3-demo-bucket1/test.zip ...

Especifique o definition-uri parâmetro

Se você estiver incluindo vários arquivos de definição de fluxo de trabalho, use o main parâmetro para especificar qual arquivo é o principal arquivo de definição do seu fluxo de trabalho.

Se você carregou seu arquivo de definição de fluxo de trabalho em uma pasta do Amazon S3, especifique a localização usando o definition-uri parâmetro, conforme mostrado no exemplo a seguir. Se sua conta não for proprietária do bucket Amazon S3, forneça o ID do Conta da AWS proprietário.

aws omics create-workflow \ --name Test \ --definition-uri s3://omics-bucket/workflow-definition/ \ --owner-id 123456789012 ...

Especifique o arquivo main de definição

Se você estiver incluindo vários arquivos de definição de fluxo de trabalho, use o main parâmetro para especificar o arquivo de definição principal para seu fluxo de trabalho.

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

Usando os parâmetros de armazenamento de execução

Você pode especificar o tipo de armazenamento de execução padrão (DINÂMICO ou ESTÁTICO) e a capacidade de armazenamento de execução (necessária para armazenamento estático). Para obter mais informações sobre como executar tipos de armazenamento, consulteExecute tipos de armazenamento em HealthOmics fluxos de trabalho.

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 \

Usar o parâmetro accelerators

Use o parâmetro accelerators para criar um fluxo de trabalho executado em uma instância de computação acelerada. O exemplo a seguir mostra como usar o accelerators parâmetro. Você especifica a configuração da GPU na definição do fluxo de trabalho. Consulte Instâncias de computação acelerada.

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

Criação de um fluxo de trabalho usando um SDK

Você pode criar um fluxo de trabalho usando um dos SDKs. O exemplo a seguir mostra como criar um fluxo de trabalho usando o SDK do Python.

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