Creare un flusso di lavoro privato - AWS HealthOmics

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare un flusso di lavoro privato

Crea un flusso di lavoro utilizzando la HealthOmics console, i comandi AWS CLI o uno dei. AWS SDKs

Nota

Non includere informazioni di identificazione personale (PII) nei nomi dei flussi di lavoro. Questi nomi sono visibili nei CloudWatch registri.

Quando crei un flusso di lavoro, HealthOmics assegna un identificatore univoco universale (UUID) al flusso di lavoro. L'UUID del flusso di lavoro è un identificatore univoco globale (GUID) unico per i flussi di lavoro e le versioni del flusso di lavoro. Ai fini della provenienza dei dati, si consiglia di utilizzare l'UUID del flusso di lavoro per identificare in modo univoco i flussi di lavoro.

Se le attività del flusso di lavoro utilizzano strumenti esterni (eseguibili, librerie o script), questi strumenti vengono incorporati in un'immagine contenitore. Sono disponibili le seguenti opzioni per ospitare l'immagine del contenitore:

  • Ospita l'immagine del contenitore nel registro privato ECR. Prerequisiti per questa opzione:

    • Crea un archivio privato ECR o scegli un repository esistente.

    • Configurare la politica delle risorse ECR come descritto in. Autorizzazioni Amazon ECR

    • Carica l'immagine del contenitore nell'archivio privato.

  • Sincronizza l'immagine del contenitore con il contenuto di un registro di terze parti supportato. Prerequisiti per questa opzione:

    • Nel registro privato ECR, configura una regola pull through cache per ogni registro upstream. Per ulteriori informazioni, consulta Mappature delle immagini .

    • Configura la politica delle risorse ECR come descritto in. Autorizzazioni Amazon ECR

    • Crea modelli per la creazione di repository. Il modello definisce le impostazioni per quando Amazon ECR crea l'archivio privato per un registro upstream.

    • Crea mappature di prefissi per rimappare i riferimenti alle immagini dei contenitori nella definizione del flusso di lavoro ai namespace della cache ECR.

Quando si crea un flusso di lavoro, si fornisce una definizione del flusso di lavoro che contiene informazioni sul flusso di lavoro, sulle esecuzioni e sulle attività. HealthOmics può recuperare la definizione del flusso di lavoro come archivio.zip archiviato localmente o in un bucket Amazon S3 o da un repository basato su Git supportato.

Creare un flusso di lavoro utilizzando la console

Passaggi per creare un flusso di lavoro
  1. Apri la HealthOmics console.

  2. Se necessario, apri il riquadro di navigazione a sinistra (≡). Scegli Flussi di lavoro privati.

  3. Nella pagina Flussi di lavoro privati, scegli Crea flusso di lavoro.

  4. Nella pagina Definisci flusso di lavoro, fornisci le seguenti informazioni:

    1. Nome del flusso di lavoro: un nome distintivo per questo flusso di lavoro. Ti consigliamo di impostare i nomi dei flussi di lavoro per organizzare le esecuzioni nella AWS HealthOmics console e nei CloudWatch registri.

    2. Descrizione (opzionale): una descrizione di questo flusso di lavoro.

  5. Nel pannello di definizione del flusso di lavoro, fornite le seguenti informazioni:

    1. Lingua del flusso di lavoro (opzionale): seleziona la lingua specifica del flusso di lavoro. Altrimenti, HealthOmics determina la lingua dalla definizione del flusso di lavoro.

    2. Per l'origine delle definizioni di Workflow, scegli di importare la cartella delle definizioni da un repository basato su Git, una posizione Amazon S3 o da un'unità locale.

      1. Per l'importazione da un servizio di repository:

        Nota

        HealthOmics supporta repository pubblici e privati perGitHub,,, GitLabBitbucket,GitHub self-managed. GitLab self-managed

        1. Scegli una connessione per connettere AWS le tue risorse al repository esterno. Per creare una connessione, consultaConnect con repository di codice esterni.

          Nota

          I clienti della TLV regione devono creare una connessione nella regione IAD (us-east-1) per creare un flusso di lavoro.

        2. In Full repository ID, inserisci l'ID del repository come nome utente/nome del repository. Verifica di avere accesso ai file in questo repository.

        3. In Riferimento alla fonte (opzionale), inserisci un riferimento alla fonte del repository (branch, tag o ID di commit). HealthOmics utilizza il ramo predefinito se non viene specificato alcun riferimento alla fonte.

        4. In Escludi modelli di file, inserisci i modelli di file per escludere cartelle, file o estensioni specifici. Questo aiuta a gestire le dimensioni dei dati durante l'importazione dei file del repository. Esistono un massimo di 50 pattern e i pattern devono seguire la sintassi del modello glob. Ad esempio:

          1. tests/

          2. *.jpeg

          3. large_data.zip

      2. Per Seleziona la cartella di definizione da S3:

        1. Inserisci la posizione Amazon S3 che contiene la cartella di definizione del flusso di lavoro compressa. Il bucket Amazon S3 deve trovarsi nella stessa regione del flusso di lavoro.

        2. Se il tuo account non possiede il bucket Amazon S3, inserisci l'ID dell'account del proprietario del bucket nell'ID dell' AWS account del proprietario del bucket S3. Queste informazioni sono necessarie per verificare la proprietà del HealthOmics bucket.

      3. Per Seleziona la cartella di definizione da una fonte locale:

        1. Immettete la posizione sull'unità locale della cartella di definizione del flusso di lavoro compressa.

    3. Percorso principale del file di definizione del flusso di lavoro (opzionale): immettete il percorso del file dalla cartella o dall'archivio di definizione del flusso di lavoro compresso al file. main Questo parametro non è richiesto se è presente un solo file nella cartella di definizione del flusso di lavoro o se il file principale è denominato «principale».

  6. Nel pannello del file README (opzionale), selezionate l'origine del file README e fornite le seguenti informazioni:

    • Per Importazione da un servizio di repository, nel percorso del file README, inserisci il percorso del file README all'interno del repository.

    • Per Seleziona file da S3, nel file README in S3, inserisci l'URI Amazon S3 per il file README.

    • Per Seleziona file da una fonte locale: in README - opzionale, scegli Scegli file per selezionare il file markdown (.md) da caricare.

  7. Nel pannello di configurazione dell'archiviazione di esecuzione predefinita, fornisci il tipo e la capacità di archiviazione di esecuzione predefiniti per le esecuzioni che utilizzano questo flusso di lavoro:

    1. Tipo di archiviazione di esecuzione: scegli se utilizzare l'archiviazione statica o dinamica come impostazione predefinita per l'archiviazione di esecuzione temporanea. L'impostazione predefinita è l'archiviazione statica.

    2. Capacità di archiviazione di esecuzione (opzionale): per il tipo di storage di esecuzione statico, è possibile inserire la quantità predefinita di storage di esecuzione richiesta per questo flusso di lavoro. Il valore predefinito per questo parametro è 1200 GiB. È possibile sovrascrivere questi valori predefiniti quando si avvia un'esecuzione.

  8. Tag (opzionale): puoi associare fino a 50 tag a questo flusso di lavoro.

  9. Scegli Next (Successivo).

  10. Nella pagina Aggiungi parametri del flusso di lavoro (opzionale), seleziona l'origine dei parametri:

    1. Per Analizza dal file di definizione del flusso di lavoro, HealthOmics analizzerà automaticamente i parametri del flusso di lavoro dal file di definizione del flusso di lavoro.

    2. Per Fornire un modello di parametro dal repository Git, usa il percorso del file del modello di parametro dal tuo repository.

    3. Per Seleziona il file JSON dalla fonte locale, carica un JSON file da una fonte locale che specifichi i parametri.

    4. In Inserisci manualmente i parametri del flusso di lavoro, inserisci manualmente i nomi e le descrizioni dei parametri.

  11. Nel pannello di anteprima dei parametri, è possibile rivedere o modificare i parametri per questa versione del flusso di lavoro. Se ripristinate il JSON file, perderete tutte le modifiche locali apportate.

  12. Scegli Next (Successivo).

  13. Nella pagina di rimappatura dell'URI del contenitore, nel pannello Regole di mappatura, puoi definire le regole di mappatura URI per il tuo flusso di lavoro.

    Per Origine del file di mappatura, selezionate una delle seguenti opzioni:

    • Nessuna: non è richiesta alcuna regola di mappatura.

    • Seleziona il file JSON da S3: specifica la posizione S3 per il file di mappatura.

    • Seleziona il file JSON da una fonte locale: specifica la posizione del file di mappatura sul tuo dispositivo locale.

    • Inserisci manualmente le mappature: inserisci le mappature del registro e le mappature delle immagini nel pannello Mappature.

  14. La console visualizza il pannello Mappature. Se avete scelto un file sorgente di mappatura, la console visualizza i valori del file.

    1. Nelle mappature del registro, è possibile modificare le mappature o aggiungere mappature (massimo 20 mappature del registro).

      Ogni mappatura del registro contiene i seguenti campi:

      • URL del registro upstream: l'URI del registro upstream.

      • Prefisso del repository ECR: il prefisso del repository da utilizzare nell'archivio privato Amazon ECR.

      • (Facoltativo) Prefisso del repository upstream: il prefisso del repository nel registro upstream.

      • (Facoltativo) ID account ECR: ID account dell'account proprietario dell'immagine del contenitore upstream.

    2. Nelle mappature delle immagini, è possibile modificare le mappature delle immagini o aggiungere mappature (massimo 100 mappature di immagini).

      Ogni mappatura di immagini contiene i seguenti campi:

      • Immagine di origine: specifica l'URI dell'immagine di origine nel registro upstream.

      • Immagine di destinazione: specifica l'URI dell'immagine corrispondente nel registro privato di Amazon ECR.

  15. Scegli Next (Successivo).

  16. Controlla la configurazione del flusso di lavoro, quindi scegli Crea flusso di lavoro.

Creazione di un flusso di lavoro utilizzando la CLI

Se i file del flusso di lavoro e il file del modello dei parametri si trovano sul computer locale, è possibile creare un flusso di lavoro utilizzando il seguente comando CLI.

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

L'create-workflowoperazione restituisce la seguente risposta:

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

Parametri opzionali da utilizzare durante la creazione di un flusso di lavoro

È possibile specificare uno qualsiasi dei parametri opzionali quando si crea un flusso di lavoro. Per i dettagli sulla sintassi, CreateWorkflowconsulta AWS HealthOmics API Reference.

Specificare la definizione del flusso di lavoro (posizione Amazon S3)

Se il file di definizione del flusso di lavoro si trova in una cartella Amazon S3, specifica la posizione utilizzando il definition-uri parametro, come mostrato nell'esempio seguente. Se il tuo account non possiede il bucket Amazon S3, fornisci l'ID del proprietario. Account AWS

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

Usa la definizione del flusso di lavoro da un repository basato su Git

Per utilizzare la definizione del flusso di lavoro da un repository basato su Git supportato, usa il definition-repository parametro nella richiesta. Non fornire nessun altro definition parametro, poiché una richiesta ha esito negativo se include più di una fonte di input.

Il definition-respository parametro contiene i seguenti campi:

  • connectionArn— ARN della Code Connection che collega le risorse AWS al repository esterno.

  • fullRepositoryId— Inserisci l'ID del repository come. owner-name/repo-name Verifica di avere accesso ai file in questo repository.

  • sourceReference(Facoltativo): immettete un tipo di riferimento del repository (BRANCH, TAG o COMMIT) e un valore.

    HealthOmics utilizza il commit più recente sul ramo predefinito se non specificate un riferimento alla fonte.

  • excludeFilePatterns(Facoltativo): immettete i modelli di file per escludere cartelle, file o estensioni specifiche. Questo aiuta a gestire le dimensioni dei dati durante l'importazione dei file del repository. Fornisci un massimo di 50 pattern. I pattern devono seguire la sintassi del modello glob. Ad esempio:

    • tests/

    • *.jpeg

    • large_data.zip

Quando specifichi la definizione del flusso di lavoro da un repository basato su Git, usa parameter-template-path per specificare il file modello dei parametri. Se non fornite questo parametro, HealthOmics crea il flusso di lavoro senza un modello di parametro.

L'esempio seguente mostra i parametri relativi al contenuto di un repository privato basato su 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" \

Per altri esempi, consulta il post sul blog How To Create an AWS HealthOmics Workflows from Content in Git.

Specificare un file Readme

È possibile specificare la posizione del file README utilizzando uno dei seguenti parametri:

  • readme-markdown— Inserimento di una stringa o di un file sul computer locale.

  • readme-uri— L'URI di un file archiviato su S3.

  • readme-path — Il percorso del file README nel repository.

Utilizza readme-path solo insieme a definition-repository. Se non specificate alcun parametro README, HealthOmics importa il file README.md di livello root nel repository (se esiste).

Gli esempi seguenti mostrano come specificare la posizione del file README utilizzando readme-path e readme-uri.

# 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"

Per ulteriori informazioni, consulta HealthOmics File README del flusso di lavoro.

Specificare il file di definizione main

Se state includendo più file di definizione del flusso di lavoro, utilizzate il main parametro per specificare il file di definizione principale per il flusso di lavoro.

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

Specificate il tipo di archiviazione di esecuzione

È possibile specificare il tipo di run storage predefinito (DYNAMIC o STATIC) e la capacità di storage di esecuzione (richiesta per lo storage statico). Per ulteriori informazioni sui tipi di run storage, consultaEsegui tipi di storage nei flussi HealthOmics di lavoro.

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 \

Specificare la configurazione della GPU

Utilizza il parametro accelerators per creare un flusso di lavoro che viene eseguito su un'istanza di calcolo accelerato. L'esempio seguente mostra come utilizzare il parametro. accelerators La configurazione della GPU viene specificata nella definizione del flusso di lavoro. Per informazioni, consulta Istanze di elaborazione accelerata.

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

Configura i parametri di mappatura pull through cache

Se utilizzi la funzionalità di mappatura pull through della cache di Amazon ECR, puoi sostituire le mappature predefinite. Per ulteriori informazioni sui parametri di configurazione del contenitore, consulta. Immagini di container per flussi di lavoro privati

Nell'esempio seguente, il file mappings.json contiene questo contenuto:

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

Specificate i parametri di mappatura nel comando create-workflow:

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

È inoltre possibile specificare la posizione S3 del file dei parametri di mappatura:

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

Creazione di un flusso di lavoro utilizzando un SDK

Puoi creare un flusso di lavoro utilizzando uno dei SDKs. L'esempio seguente mostra come creare un flusso di lavoro utilizzando 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={ ... } )