Immagini di container in Amazon ECR per flussi di lavoro privati - 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à.

Immagini di container in Amazon ECR per flussi di lavoro privati

Prima di creare un flusso di lavoro privato, crei un'immagine del contenitore per il tuo flusso di lavoro. Carichi l'immagine in un archivio di immagini privato in Amazon Elastic Container Registry (Amazon ECR). Quando esegui il flusso di lavoro, il HealthOmics servizio accede ai contenitori che fornisci.

Immagine del contenitore L'archivio Amazon ECR deve risiedere nella stessa AWS regione dell'account che chiama il servizio. L'immagine del contenitore Account AWS può essere di proprietà di un altro soggetto, a condizione che l'archivio di immagini di origine fornisca le autorizzazioni appropriate. Per ulteriori informazioni, consulta le politiche del repository di Amazon Elastic Container Registry per i flussi di lavoro condivisi.

Ti consigliamo di definire l'immagine del contenitore Amazon ECR URIs come parametri del flusso di lavoro in modo che l'accesso possa essere verificato prima dell'inizio dell'esecuzione. Inoltre, semplifica l'esecuzione di un flusso di lavoro in una nuova regione modificando il parametro Region.

Nota

HealthOmics non supporta i contenitori ARM e non supporta l'accesso agli archivi pubblici.

Per informazioni sulla configurazione delle autorizzazioni IAM per l'accesso HealthOmics ad Amazon ECR, consulta. Autorizzazioni a livello di risorsa

Considerazioni generali per le immagini dei container Amazon ECR

  • Architettura

    HealthOmics supporta contenitori x86_64. Se il computer locale è basato su ARM, ad esempio Apple Mac), utilizzate un comando come il seguente per creare un'immagine del contenitore x86_64:

    docker build --platform amd64 -t my_tool:latest .
  • Entrypoint e shell

    HealthOmics i motori di workflow iniettano gli script di bash come comando che sostituiscono le immagini dei contenitori utilizzate dalle attività del flusso di lavoro. Pertanto, le immagini dei contenitori dovrebbero essere create senza un ENTRYPOINT specificato in modo tale che una shell bash sia l'impostazione predefinita.

  • Percorsi montati

    Un filesystem condiviso viene montato sulle attività del contenitore in /tmp. Tutti i dati o gli strumenti incorporati nell'immagine del contenitore in questa posizione verranno sovrascritti.

    La definizione del flusso di lavoro è disponibile per le attività tramite un montaggio in sola lettura in /mnt/workflow.

  • Dimensione dell’immagine

    Vedi per le dimensioni massime delle immagini dei contenitori. HealthOmics quote a dimensione fissa per il flusso di lavoro

Variabili di ambiente per i flussi HealthOmics di lavoro

HealthOmics fornisce variabili di ambiente che contengono informazioni sul flusso di lavoro in esecuzione nel contenitore. È possibile utilizzare i valori di queste variabili nella logica delle attività del flusso di lavoro.

Tutte le variabili HealthOmics del flusso di lavoro iniziano con il AWS_WORKFLOW_ prefisso. Questo prefisso è un prefisso di variabile di ambiente protetto. Non utilizzate questo prefisso per le vostre variabili nei contenitori del flusso di lavoro.

HealthOmics fornisce le seguenti variabili di ambiente di flusso di lavoro:

AWS_REGION

Questa variabile è la regione in cui è in esecuzione il contenitore.

AWS_WORKFLOW_ESEGUI

Questa variabile è il nome dell'esecuzione corrente.

AWS_WORKFLOW_RUN_ID

Questa variabile è l'identificatore di esecuzione della corsa corrente.

AWS_WORKFLOW_RUN_UUID

Questa variabile è l'UUID di esecuzione dell'esecuzione corrente.

AWS_WORKFLOW_ATTIVITÀ

Questa variabile è il nome dell'attività corrente.

AWS_WORKFLOW_TASK_ID

Questa variabile è l'identificatore dell'attività corrente.

AWS_WORKFLOW_TASK_UUID

Questa variabile è l'UUID dell'attività corrente.

L'esempio seguente mostra i valori tipici per ogni variabile di ambiente:

AWS Region: us-east-1 Workflow Run: arn:aws:omics:us-east-1:123456789012:run/6470304 Workflow Run ID: 6470304 Workflow Run UUID: f4d9ed47-192e-760e-f3a8-13afedbd4937 Workflow Task: arn:aws:omics:us-east-1:123456789012:task/4192063 Workflow Task ID: 4192063 Workflow Task UUID: f0c9ed49-652c-4a38-7646-60ad835e0a2e

Utilizzo di Java nelle immagini dei container Amazon ECR

Se un'attività di workflow utilizza un'applicazione Java come GATK, considera i seguenti requisiti di memoria per il contenitore:

  • Le applicazioni Java utilizzano la memoria stack e la memoria heap. Per impostazione predefinita, la memoria heap massima è una percentuale della memoria totale disponibile nel contenitore. Questa impostazione predefinita dipende dalla distribuzione JVM specifica e dalla versione JVM, quindi consulta la documentazione pertinente per la tua JVM o imposta esplicitamente il massimo della memoria heap utilizzando le opzioni della riga di comando Java (come `-Xmx`).

  • Non impostate che la memoria heap massima sia pari al 100% dell'allocazione di memoria del contenitore, poiché anche lo stack JVM richiede memoria. La memoria è richiesta anche per il Garbage Collector JVM e per qualsiasi altro processo del sistema operativo in esecuzione nel contenitore.

  • Alcune applicazioni Java, come GATK, possono utilizzare invocazioni di metodi nativi o altre ottimizzazioni come i file di mappatura della memoria. Queste tecniche richiedono allocazioni di memoria eseguite «off heap», che non sono controllate dal parametro JVM maximum heap.

    Se sai (o sospetti) che la tua applicazione Java alloca memoria off-heap, assicurati che l'allocazione della memoria delle attività includa i requisiti di memoria off-heap.

    Se queste allocazioni off-heap causano l'esaurimento della memoria nel contenitore, in genere non viene visualizzato un OutOfMemory errore Java, perché la JVM non controlla questa memoria.

Aggiungi gli input delle attività a un'immagine del contenitore ECR

Aggiungi tutti gli eseguibili, le librerie e gli script necessari per eseguire un'attività di workflow nell'immagine Amazon ECR utilizzata per eseguire l'attività.

È consigliabile evitare l'uso di script, file binari e librerie esterni all'immagine del contenitore di attività. Ciò è particolarmente importante quando si utilizzano nf-core flussi di lavoro che utilizzano una bin directory come parte del pacchetto workflow. Sebbene questa directory sia disponibile per l'attività del flusso di lavoro, viene montata come directory di sola lettura. Le risorse richieste in questa directory devono essere copiate nell'immagine dell'attività e rese disponibili in fase di esecuzione o durante la creazione dell'immagine del contenitore utilizzata per l'attività.

Vedi HealthOmics quote a dimensione fissa per il flusso di lavoro la dimensione massima dell'immagine del contenitore HealthOmics supportata.