View a markdown version of this page

Il batch viene eseguito in HealthOmics - 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à.

Il batch viene eseguito in HealthOmics

AWS HealthOmics le esecuzioni in batch consentono di inviare più esecuzioni in una singola richiesta API. Ogni esecuzione del batch condivide una configurazione di base comune ma può avere input e parametri specifici dell'esecuzione diversi. Le esecuzioni in batch riducono il sovraccarico di invio e semplificano la gestione del ciclo di vita per l'elaborazione di flussi di lavoro su larga scala.

Con le esecuzioni in batch, puoi:

  • Invia fino a 100.000 esecuzioni in una singola StartRunBatch chiamata, con una configurazione condivisa definita una volta e applicata a tutte le esecuzioni.

  • Applica le sostituzioni dei parametri per esecuzione per singoli campioni, inclusi nome, URI di output, parametri, priorità e tag.

  • Tieni traccia dello stato generale del batch e dell'avanzamento dell'invio delle singole esecuzioni tramite e. GetBatch ListRunsInBatch

  • Annulla tutte le esecuzioni di un batch utilizzandoCancelRunBatch.

  • Elimina tutte le esecuzioni in un batch utilizzandoDeleteRunBatch.

  • Elimina i metadati del batch con. DeleteBatch

Concetti di esecuzione in batch

  • Batch: una raccolta di esecuzioni di flussi di lavoro che condividono una configurazione comune, gestita come un'unica risorsa con il proprio Amazon Resource Name (ARN) e lo stato del ciclo di vita.

  • Impostazione di esecuzione predefinita (defaultRunSetting): parametri del flusso di lavoro condivisi tra tutte le esecuzioni del batch, come ID del flusso di lavoro, ruolo IAM, URI di output, policy di sessione e parametri comuni.

  • Run-specific setting (inlineSettingsos3UriSettings): Per-run configurazioni che sovrascrivono o si fondono con l'impostazione di esecuzione predefinita. Ogni voce deve includere un nome univoco. runSettingId

  • Run setting ID (runSettingId): un identificatore univoco obbligatorio fornito dal cliente per ogni configurazione di esecuzione all'interno di un batch. Dopo l'invio, utilizzatelo ListRunsInBatch per mappare ciascuno di essi runSettingId a HealthOmics-generated runId, in modo da tracciare quale esecuzione è stata creata da quale configurazione di input.

  • Stato del batch: lo stato generale dell'operazione batch. Valori possibili:

    • CREATING— Il batch è in fase di creazione.

    • PENDING— Il batch è stato creato; le configurazioni di esecuzione vengono convalidate in modo asincrono.

    • SUBMITTING— Convalida completata; vengono inviate le singole esecuzioni.

    • INPROGRESS— Tutti gli invii delle esecuzioni sono stati tentati; le esecuzioni sono in esecuzione.

    • STOPPING— È stata ricevuta una richiesta di annullamento; le esecuzioni vengono interrotte.

    • CANCELLED— Il batch è stato annullato.

    • PROCESSED— Tutte le esecuzioni hanno raggiunto lo stato terminale (completate, non riuscite o annullate).

    • FAILED— Il batch stesso non è riuscito prima che le esecuzioni potessero essere create. Per informazioni dettagliate, vedi Batch-level guasti.

    • RUNS_DELETING— Le esecuzioni del batch vengono eliminate.

    • RUNS_DELETE_FAILED— Impossibile eliminare alcune o tutte le esecuzioni del batch.

    • RUNS_DELETED— Tutte le esecuzioni del batch sono state eliminate.

  • Stato dell'invio: il risultato dell'invio per una singola esecuzione all'interno del batch. Valori possibili:

    • SUCCESS— L'esecuzione è stata inviata correttamente.

    • FAILED— Esecuzione dell'invio non riuscita (ad esempio, a causa di un errore di convalida).

    • CANCEL_SUCCESS— L'esecuzione è stata annullata con successo.

    • CANCEL_FAILED— Annullamento dell'esecuzione non riuscito.

    • DELETE_SUCCESS— L'esecuzione è stata eliminata con successo.

    • DELETE_FAILED— L'esecuzione dell'eliminazione non è riuscita.

Prerequisiti

Prima di iniziare un'esecuzione in batch, assicurati di avere:

  • Un flusso di lavoro HealthOmics privato attivo. Le esecuzioni in batch non sono supportate con i flussi di lavoro Ready2Run.

  • Un ruolo di servizio IAM con autorizzazioni per eseguire HealthOmics flussi di lavoro e accedere ai bucket Amazon S3. Per informazioni dettagliate, vedi Ruoli di servizio per AWS HealthOmics.

  • Posizioni Amazon S3 per i dati di input e i risultati di output.

  • Run-specific parametri per ogni esempio o configurazione sperimentale.

autorizzazioni IAM per le operazioni in batch

La tua identità IAM deve disporre delle autorizzazioni sia per l'operazione batch che per la singola operazione di esecuzione sottostante. La seguente politica di esempio concede le autorizzazioni per tutte le operazioni batch:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperations", "Effect": "Allow", "Action": [ "omics:StartRunBatch", "omics:GetBatch", "omics:ListBatch", "omics:ListRunsInBatch", "omics:CancelRunBatch", "omics:DeleteRunBatch", "omics:DeleteBatch" ], "Resource": "arn:aws:omics:*:123456789012:runBatch/*" }, { "Sid": "AllowRunCreation", "Effect": "Allow", "Action": "omics:StartRun", "Resource": [ "arn:aws:omics:*:123456789012:run/*", "arn:aws:omics:*:123456789012:workflow/*", "arn:aws:omics:*:123456789012:runGroup/*" ] }, { "Sid": "AllowListOperations", "Effect": "Allow", "Action": [ "omics:ListBatch", "omics:ListRunsInBatch" ], "Resource": "*" }, { "Sid": "AllowPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/OmicsRole", "Condition": { "StringEquals": { "iam:PassedToService": "omics.amazonaws.com" } } } ] }
Nota

StartRunBatchrichiede una doppia autorizzazione: omics:StartRunBatch sulla risorsa batch e omics:StartRun sulle risorse di gruppo di esecuzione, flusso di lavoro ed esecuzione. Affinché il batch abbia esito positivo, è necessario concedere entrambe le autorizzazioni.

Il ruolo del servizio IAM trasmesso roleArn (utilizzato da HealthOmics per eseguire le esecuzioni) richiede le stesse autorizzazioni previste per le singole StartRun chiamate. Per informazioni dettagliate, vedi Ruoli di servizio per AWS HealthOmics.

Tagging e controllo degli accessi basato su tag

Batch esegue i tag di supporto a due livelli:

  • Tag batch (tag su StartRunBatch richiesta): applicati alla risorsa batch. Tag-based il controllo degli accessi (TBAC) è completamente applicato per i tag batch.

  • Tag di esecuzione (runTagsin corso defaultRunSetting e per esecuzionerunTags): applicati alle singole risorse di esecuzione. Questi tag vengono uniti utilizzando le stesse regole di precedenza dei parametri.

Se utilizzi politiche di controllo degli accessi basate su tag, assicurati che la tua politica IAM includa omics:TagResource le condizioni e appropriateaws:RequestTag. aws:TagKeys

Esempio: limita la creazione di batch agli ambienti non di produzione

La seguente politica consente agli utenti di creare batch ed esecuzioni, ma impedisce di etichettare qualsiasi risorsa con: environment=production

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchAndRunCreation", "Effect": "Allow", "Action": [ "omics:StartRunBatch", "omics:StartRun" ], "Resource": "*" }, { "Sid": "AllowTaggingNonProd", "Effect": "Allow", "Action": "omics:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": ["dev", "test"] } } }, { "Sid": "DenyProductionTags", "Effect": "Deny", "Action": "omics:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": "production" } } } ] }

Con questa politica:

  • tags: {"environment": "dev"}sul batch → Consentito

  • tags: {"environment": "production"}sul batch → Negato (403)

  • runTags: {"environment": "production"}in defaultRunSetting → Negato per singole esecuzioni durante la creazione asincrona

Guida introduttiva: invia il tuo primo batch

L'esempio seguente illustra l'invio di un piccolo batch di due esecuzioni, la verifica dello stato di avanzamento e la revisione dei risultati.

Fase 1: Inviare il batch

aws omics start-run-batch \ --batch-name "my-first-batch" \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "storageType": "DYNAMIC", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{ "inlineSettings": [ { "runSettingId": "sample-A", "parameters": {"inputUri": "s3://my-bucket/sampleA.fastq"} }, { "runSettingId": "sample-B", "parameters": {"inputUri": "s3://my-bucket/sampleB.fastq"} } ] }'

La risposta restituisce un ID batch da utilizzare per tutte le operazioni successive:

{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "CREATING" }

Passaggio 2: verifica l'avanzamento del batch

aws omics get-batch --batch-id 7123456

Guarda l'avanzamento del status campo da CREATING PENDING → → SUBMITTING → INPROGRESS →PROCESSED. submissionSummaryMostra quante esecuzioni sono state inviate con successo e runSummary mostra l'avanzamento dell'esecuzione.

Fase 3: Rivedi le singole esecuzioni

aws omics list-runs-in-batch --batch-id 7123456

Ogni voce associa l'utente runSettingId (ad esempiosample-A) a HealthOmics-generatedrunId, in modo da poter ricondurre i risultati ai campioni di input.

Fase 4: Verifica la presenza di invii non riusciti

aws omics list-runs-in-batch --batch-id 7123456 --submission-status FAILED

Se alcune esecuzioni non sono state inviate, la risposta include submissionFailureReason e ti aiuta submissionFailureMessage a diagnosticare il problema.

Avvio di un'esecuzione in batch

StartRunBatchDa utilizzare per inviare più esecuzioni con una singola richiesta. La richiesta include:

  • defaultRunSetting— Configurazione condivisa per tutte le esecuzioni del batch. Sono inclusi campi comeworkflowId,roleArn, outputUriparameters,scratchStorageMode, eengineSettings. Per i flussi di lavoro Nextflow, utilizzalo engineSettings per specificare i profili che si applicano a tutte le esecuzioni del batch. Per ulteriori informazioni, consulta Specifica le impostazioni del motore Nextflow.

  • batchRunSettings— Le configurazioni delle singole esecuzioni, fornite come una delle seguenti:

    • inlineSettings— Una serie di fino a 100 configurazioni specifiche per l'esecuzione fornite direttamente nel corpo della richiesta. Ogni impostazione in linea può includere la sostituzione del profilo predefinito engineSettings per le singole esecuzioni.

    • s3UriSettings— Un URI Amazon S3 che punta a un file JSON contenente le configurazioni di esecuzione. Richiesto per batch con più di 100 esecuzioni e supporta fino a 100.000 esecuzioni.

È inoltre possibile fornire i seguenti campi:

  • batchName— Un nome opzionale leggibile dall'uomo per il batch.

  • requestId— Un token di idempotenza per evitare l'invio di batch duplicati.

  • tags— Tag da associare alla risorsa batch stessa.

Invia piccoli batch con configurazioni di esecuzione in linea

Fornisci una serie di configurazioni specifiche per l'esecuzione direttamente nel corpo della richiesta utilizzando. inlineSettings Ogni voce deve includere un nome univoco runSettingId (obbligatorio). runSettingIdÈ la chiave per correlare i risultati: quando chiamiListRunsInBatch, ogni voce ti mappa con runSettingId HealthOmics-generated runId la runArn fine.

È possibile includere fino a 100 voci con configurazioni in linea.

{ "batchName": "genomics-cohort-analysis", "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "tags": { "project": "genomics-study", "environment": "production" }, "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": { "referenceUri": "s3://my-bucket/reference/genome.fasta" }, "runTags": { "analysis-type": "germline" } }, "batchRunSettings": { "inlineSettings": [ { "runSettingId": "sample-001", "name": "Sample-001-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-001.fastq", "sampleName": "sample-001" }, "runTags": { "patient-id": "patient001" } }, { "runSettingId": "sample-002", "name": "Sample-002-Analysis", "outputUri": "s3://my-bucket/output/special/", "parameters": { "inputUri": "s3://my-bucket/input/sample-002.fastq", "sampleName": "sample-002" }, "runTags": { "patient-id": "patient002" } } ] } }

CLI

aws omics start-run-batch \ --batch-name "genomics-cohort-analysis" \ --request-id "a1b2c3d4-e5f6-7890-abcd-ef1234567890" \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "storageType": "DYNAMIC", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{ "inlineSettings": [ { "runSettingId": "sample-001", "name": "Run-001", "parameters": {"inputUri": "s3://my-bucket/input1.fastq"} }, { "runSettingId": "sample-002", "name": "Run-002", "parameters": {"inputUri": "s3://my-bucket/input2.fastq"} } ] }'

Invia batch di grandi dimensioni con configurazioni di esecuzione in S3

Per i batch con più di 100 esecuzioni, archivia le configurazioni di esecuzione in un file JSON in Amazon S3 e fornisci l'URI utilizzando. s3UriSettings Il file JSON deve contenere una serie di oggetti di impostazione specifici per l'esecuzione, ciascuno con un valore univoco. runSettingId Il file può contenere fino a 100.000 voci.

Il formato del file S3 è lo stesso dell'inlineSettingsarray:

[ { "runSettingId": "sample-001", "name": "Sample-001-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-001.fastq", "sampleName": "sample-001" } }, { "runSettingId": "sample-002", "name": "Sample-002-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-002.fastq", "sampleName": "sample-002" } } ]

Richiesta API

{ "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": { "referenceUri": "s3://my-bucket/reference/genome.fasta" } }, "batchRunSettings": { "s3UriSettings": "s3://my-bucket/configs/run-configs.json" } }

CLI

aws omics start-run-batch \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{"s3UriSettings": "s3://my-bucket/configs/run-configs.json"}'
Importante

Il ruolo del servizio IAM specificato in roleArn deve avere accesso in lettura all'oggetto Amazon S3 specificato ins3UriSettings. HealthOmics convalida l'accesso al file Amazon S3 durante la chiamata API sincrona e registra l'ETag del file. Se il file viene modificato dopo l'invio, il batch fallisce durante l'elaborazione asincrona.

Risposta

Una richiesta riuscita restituisce l'ID del batch e lo stato iniziale:

{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "CREATING", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "tags": { "project": "genomics-study", "environment": "production" } }

Se la convalida sincrona fallisce (ad esempio, un ID di flusso di lavoro non valido o un URI Amazon S3 inaccessibile), l'API restituisce un errore prima dell'invio di qualsiasi esecuzione.

Documentazione di riferimento dei parametri

La tabella seguente mostra quali StartRun campi possono essere impostati per esecuzione e quali si applicano solo a livello di batch. Per le descrizioni complete dei campi, consulta il riferimento StartRun API.

Campo Batch-level (defaultRunSetting) Per-run configurabile () inlineSettings
workflowIdSìNo
workflowTypeSìNo
workflowVersionNameSìNo
workflowOwnerIdSìNo
roleArnSìNo
storageCapacitySìNo
storageTypeSìNo
runGroupIdSìNo
logLevelSìNo
cacheBehaviorSìNo
cacheIdSìNo
retentionModeSìNo
networkingModeSìNo
configurationNameSìNo
nameSìSì
outputUriSìSì
parametersSìSì (unito)
prioritySì Sì
runTagsSìSì (unito)
outputBucketOwnerIdSì Sì
Nota

Il campo runId (per le singole ripetizioni) non è supportato come input per. StartRunBatch Ogni invio di batch crea sempre nuove esecuzioni e ogni esecuzione riceverà un. runId Vedi Esegui nuovamente un run in HealthOmics per riprovare le singole esecuzioni.

Unione dei parametri

I parametri di defaultRunSetting vengono uniti ai parametri specifici dell'esecuzione forniti in inlineSettings o tramite un URI S3. Run-specific i valori hanno la precedenza quando le chiavi si sovrappongono.

Esempio:

Origine Parameters
defaultRunSetting {"referenceUri": "s3://bucket/ref.fasta", "version": "v1"}
inlineSettingsingresso {"inputUri": "s3://bucket/sample.fastq", "version": "v2"}
Risultato unito {"referenceUri": "s3://bucket/ref.fasta", "inputUri": "s3://bucket/sample.fastq", "version": "v2"}

Lo stesso comportamento di fusione si applica a. runTags I tag specificati nella configurazione per esecuzione sovrascrivono i tag con la stessa chiave di e vengono defaultRunSetting.runTags aggiunte nuove chiavi.

Esempio di unione di tag:

Origine Tag
defaultRunSetting.runTags {"project": "cancer-research", "pipeline-version": "v2.1"}
inlineSettings[].runTags {"patient-id": "patient001", "pipeline-version": "v3.0"}
Risultato unito (applicato all'esecuzione) {"project": "cancer-research", "patient-id": "patient001", "pipeline-version": "v3.0"}
Nota

Batch-level i tag (su StartRunBatch richiesta) vengono applicati solo alla risorsa batch stessa. Non vengono ereditati dalle singole esecuzioni. Run-level i tag sono controllati durante defaultRunSetting.runTags e per esecuzione. runTags

Invio graduale

StartRunBatchconvalida i campi comuni in modo sincrono e li restituisce immediatamente con un ID e uno stato del batch. CREATING Le esecuzioni in un batch vengono inviate gradualmente e in modo asincrono a una velocità controllata in base alle quote di produttività.

Per l'elenco completo delle quote, vedere. HealthOmics HealthOmics quote di servizio

Il batch passa attraverso i seguenti stati durante la normale elaborazione:

  1. CREATING— Il batch è in fase di creazione.

  2. PENDING— Creazione in batch, configurazione di esecuzione in fase di convalida.

  3. SUBMITTING— Convalida completata, invio delle singole esecuzioni.

  4. INPROGRESS— Tutti gli invii delle esecuzioni sono tentati, le esecuzioni sono in esecuzione.

  5. PROCESSED— Tutte le esecuzioni hanno raggiunto lo stato terminale.

Importante

L'invio in batch condivide la stessa quota di StartRun throughput delle chiamate StartRun API dirette. Se chiami StartRun direttamente mentre è in corso l'elaborazione di un batch di grandi dimensioni, sia gli invii in batch che le chiamate dirette competono per la stessa capacità. Ciò può causare il fallimento delle esecuzioni in batch ThrottlingException (frequenza superata) o la limitazione StartRun delle chiamate dirette. Lo stesso vale per CancelRun eDeleteRun: condividono le quote di throughput con e rispettivamente. CancelRunBatch DeleteRunBatch

Monitoraggio del progresso del batch

Ottieni lo stato del batch

GetBatchDa utilizzare per recuperare lo stato complessivo e l'avanzamento dell'invio di un batch.

aws omics get-batch --batch-id 7123456

La risposta include:

  • status— Stato generale del batch.

  • submissionSummary— Conteggio degli invii riusciti e non riusciti per le operazioni di avvio, annullamento ed eliminazione.

  • runSummary— Conteggio delle esecuzioni in ogni stato di esecuzione. Valori possibili: PENDINGSTARTING,RUNNING,STOPPING,COMPLETED,DELETED,CANCELLED, o FAILED

  • Timestamp per gli eventi del ciclo di vita:creationTime,,,. submittedTime processedTime failedTime

Esempio di risposta:

{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "name": "genomics-cohort-analysis", "status": "INPROGRESS", "totalRuns": 96, "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/" }, "submissionSummary": { "successfulStartSubmissionCount": 94, "failedStartSubmissionCount": 2, "pendingStartSubmissionCount": 0 }, "runSummary": { "pendingRunCount": 10, "startingRunCount": 5, "runningRunCount": 50, "stoppingRunCount": 0, "completedRunCount": 29, "failedRunCount": 0, "cancelledRunCount": 0, "deletedRunCount": 0 }, "creationTime": "2025-03-15T10:00:00Z", "submittedTime": "2025-03-15T10:05:00Z", "tags": { "project": "genomics-study" } }
Nota

I riepiloghi delle esecuzioni sono alla fine coerenti e possono rimanere indietro rispetto agli stati di esecuzione effettivi. I conteggi finali vengono riconciliati quando il batch raggiunge lo stato. PROCESSED

L'elenco viene eseguito in un batch

ListRunsInBatchDa utilizzare per recuperare informazioni dettagliate sulle singole esecuzioni all'interno di un batch. I risultati sono suddivisi in pagine.

aws omics list-runs-in-batch --batch-id 7123456

È possibile filtrare i risultati utilizzando uno dei seguenti parametri di interrogazione. È supportato un solo filtro per chiamata.

Filtro Description
submissionStatus Filtra per stato di invio:SUCCESS,FAILED,CANCEL_SUCCESS, CANCEL_FAILEDDELETE_SUCCESS, oDELETE_FAILED.
runSettingId Recupera l'esecuzione per un ID di impostazione di corsa specifico.
runId Recupera l'esecuzione per un ID di corsa specifico.

Esempio: elenca gli invii non riusciti

aws omics list-runs-in-batch --batch-id 7123456 --submission-status FAILED

Ogni risultato include:

  • runSettingId— L'identificatore fornito dal cliente per la configurazione di esecuzione.

  • runId— L'identificatore di HealthOmics-generated esecuzione (vuoto se l'invio non è riuscito).

  • runArn— L'ARN completo della corsa.

  • submissionStatus— L'esito dell'invio (SUCCESS,,FAILED, CANCEL_SUCCESS CANCEL_FAILEDDELETE_SUCCESS, oDELETE_FAILED).

  • submissionFailureReasone submissionFailureMessage — Dettagli in caso di invio non riuscito.

Nota

runSettingIdè l'identificatore specificato dal cliente fornito nella configurazione di esecuzione. runIdè l' HealthOmics-generated identificatore assegnato dopo l'invio riuscito. Se l'invio non è riuscito, runId è vuoto.

Elenca i batch

Utilizzalo ListBatch per recuperare tutte le risorse batch nel tuo account. I risultati sono suddivisi in pagine.

aws omics list-batch

È possibile filtrare i risultati utilizzando i seguenti parametri di interrogazione:

Filtro Description
statusFiltra in base allo stato del batch.
nameFiltra per nome del batch.
runGroupIdFiltra per ID del gruppo di esecuzione.

Abilita le metriche di esecuzione

Esegui un rapporto sulle metriche sull'utilizzo delle risorse quasi in tempo reale per le esecuzioni di un batch. Per abilitare le metriche di esecuzione, il ruolo di servizio utilizzato per il batch deve disporre dell'autorizzazione. cloudwatch:PutMetricData Per ulteriori informazioni, consulta Esegui metriche per flussi di lavoro privati.

Aggiungi la seguente autorizzazione al ruolo di servizio che usi per il batch.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

Gestione delle esecuzioni non riuscite

Esistono due tipi distinti di errori nell'elaborazione in batch. Comprendere la differenza è fondamentale per la risoluzione dei problemi.

Batch-level guasti

Un errore a livello di batch indica che il batch stesso ha avuto esito negativo: non è stata creata alcuna esecuzione (o ne sono state create solo alcune prima dell'errore). Lo stato del batch è. FAILED

Chiama GetBatch e controlla il failureReason campo. I motivi più comuni di insuccesso includono:

Categoria di errore failureReasonMessaggio di esempio Azione
Errore di convalida «Il batch ha 100001 esecuzioni ma il numero massimo è 100000 esecuzioni. «, «Previste 50 esecuzioni uniche SettingIds ma ce ne sono state 49", «Formato JSON non valido nelle configurazioni di esecuzione» Correggi la configurazione e invia un nuovo batch. Questi errori non sono ripetibili.
La configurazione S3 è cambiata «Previsto s3 UriConfigs etag:\" abc123\» ma era:\ "def456\». s3 sono cambiati dopo la chiamata» UriConfigs StartRunBatch Non modificate il file S3 dopo l'invio. Invia nuovamente con il file corrente.
Errore temporaneo di servizio «Si è verificato un errore temporaneo nel servizio. Riprova il batch». Riprova inviando nuovamente lo stesso batch. Usa lo stesso requestId per l'idempotenza.

Esempio: batch non riuscito a causa della convalida

aws omics get-batch --batch-id 7123456
{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "FAILED", "failureReason": "Batch has 100001 runs but 100000 runs is the max.", "failedTime": "2025-03-15T10:01:00Z" }

Run-level guasti

Un errore a livello di esecuzione indica che il batch stesso è riuscito (lo stato è INPROGRESS oPROCESSED), ma le singole esecuzioni non sono state inviate. Il batch continua a elaborare altre esecuzioni e non si interrompe al primo errore.

1. Controlla il riepilogo dell'invio

aws omics get-batch --batch-id 7123456

Guarda. submissionSummary.failedStartSubmissionCount Se è maggiore di zero, alcune esecuzioni non sono riuscite durante l'invio.

2. Elenca gli invii non riusciti

aws omics list-runs-in-batch --batch-id 7123456 --submission-status FAILED

Ogni inserimento non riuscito include:

  • runSettingId— Quale configurazione di esecuzione non è riuscita.

  • submissionFailureReason— La categoria di errore.

  • submissionFailureMessage— Un messaggio di errore dettagliato.

3. Motivi del mancato invio

La tabella seguente elenca i valori possibili per submissionFailureReason singole esecuzioni:

submissionFailureReason Significato Non irreversibile?
ValidationException I parametri di esecuzione non sono validi, ad esempio, i parametri non corrispondono alla definizione del flusso di lavoro, al formato URI S3 non valido o alle violazioni dei vincoli. No: correggi la configurazione.
AccessDeniedException Il ruolo del servizio IAM non dispone delle autorizzazioni per accedere alle risorse richieste (input S3, chiavi KMS, CloudWatch registri, immagini ECR). No: aggiorna la politica del ruolo.
ResourceNotFoundException Una risorsa di riferimento (flusso di lavoro, gruppo di esecuzione o cache di esecuzione) non esiste o non è in uno stato attivo. No: verifica gli ID delle risorse.
ServiceQuotaExceededException L'account ha raggiunto il numero massimo di esecuzioni attive o un'altra quota di servizio. Attendi il completamento delle sessioni o richiedi un aumento della quota.
ConflictException È in corso un'operazione in conflitto, ad esempio un tentativo di creazione di una corsa duplicata. In genere si risolve da solo.
ThrottlingException La richiesta è stata limitata a causa dei limiti di velocità delle API. Il servizio riprova automaticamente. Se persiste dopo i tentativi, riduci gli invii di batch simultanei.
RequestTimeoutException La richiesta è scaduta durante l'elaborazione. Il servizio riprova automaticamente. Se il problema persiste, verifica la presenza di problemi a valle.
InternalServerException Si è verificato un errore di servizio imprevisto. Il servizio riprova automaticamente. Se il problema persiste dopo i nuovi tentativi, contatta l'assistenza. AWS
Nota

HealthOmics riprova automaticamente gli errori transitori (ThrottlingException,RequestTimeoutException,InternalServerException) per ogni esecuzione. Un'esecuzione viene contrassegnata come tale FAILED solo dopo che tutti i tentativi di nuovo tentativo sono esauriti. Non-retryable gli errori (ValidationException,AccessDeniedException,ResourceNotFoundException) falliscono immediatamente senza tentativi.

4. Invia nuovamente le esecuzioni non riuscite

Crea un nuovo batch contenente solo le configurazioni di esecuzione corrette. Usa lo stesso defaultRunSetting e includi solo le runSettingId voci che hanno avuto esito negativo. Non esiste un meccanismo di ripetizione integrato per le esecuzioni non riuscite: è necessario inviare un nuovo batch.

Annullamento di un batch

CancelRunBatchDa utilizzare per annullare un batch in corso. L'operazione di annullamento:

  • Impedisce l'avvio delle esecuzioni non ancora inviate e in sospeso

  • Invia CancelRun richieste per esecuzioni già iniziate.

aws omics cancel-run-batch --batch-id 7123456
Importante
  • L'annullamento è consentito solo per i batch nello statoPENDING,SUBMITTING, oINPROGRESS.

  • È consentita una sola operazione di annullamento o eliminazione per batch alla volta.

  • Le operazioni di annullamento non sono atomiche e possono avere esito parziale. GetBatchDa utilizzare per rivedere successfulCancelSubmissionCount e failedCancelSubmissionCount nel. submissionSummary

Eliminazione delle esecuzioni in batch

Consente DeleteRunBatch di eliminare le singole esecuzioni all'interno di un batch.

aws omics delete-run-batch --batch-id 7123456
Importante
  • L'eliminazione è consentita solo sui batch nello CANCELLED stato PROCESSED Or.

  • È consentita una sola operazione di annullamento o eliminazione per batch alla volta.

  • Le operazioni di eliminazione non sono atomiche e possono avere esito parziale. GetBatchDa utilizzare per rivedere successfulDeleteSubmissionCount e failedDeleteSubmissionCount nel. submissionSummary

Eliminazione dei metadati del batch

Consente DeleteBatch di rimuovere la risorsa batch e i metadati associati. Si tratta di un'operazione separata da. DeleteRunBatch

aws omics delete-batch --batch-id 7123456
Importante
  • DeleteBatchrichiede che il batch sia in uno stato terminale (PROCESSEDFAILED,CANCELLED,RUNS_DELETE_FAILED, oRUNS_DELETED).

  • DeleteBatchnon elimina le singole esecuzioni. Usa DeleteRunBatch prima se vuoi rimuovere anche le esecuzioni.

  • Una volta DeleteBatch completati, i metadati del batch non sono più accessibili. Non è possibile chiamareGetBatch, ListRunsInBatchDeleteRunBatch, o CancelRunBatch su un batch eliminato.

EventBridge eventi per batch

HealthOmics invia eventi ad Amazon EventBridge ogni volta che un batch cambia stato. Puoi utilizzare questi eventi per automatizzare i flussi di lavoro, ad esempio per attivare una notifica quando un batch viene completato o fallito o per avviare una pipeline downstream al termine di tutte le esecuzioni.

Gli eventi batch utilizzano lo stesso bus di eventi e la stessa origine degli altri eventi. HealthOmics Per istruzioni generali di configurazione, vedereUsare EventBridge con AWS HealthOmics.

Tipo di dettaglio dell'evento

Nome evento Emesso quando
RunBatch Modifica dello stato Il batch passa a un nuovo stato (CREATING,,PENDING,SUBMITTING,INPROGRESS,STOPPING,CANCELLED,PROCESSED, FAILEDRUNS_DELETING,RUNS_DELETED)

Campi con i dettagli dell'evento

L'detailoggetto in un evento batch include i seguenti campi:

Campo Tipo Description
omicsVersionStringa Versione dello schema dell'evento (attualmente 1.0.0).
arnStringa L'ARN del batch.
batchIdStringa L'identificatore del batch.
statusStringa Il nuovo stato del batch.
uuidStringa L'UUID del batch.
batchNameStringa Il nome del batch (se fornito).
totalRunsStringa Numero totale di esecuzioni nel batch.
failureReasonStringa Motivo dell'errore (presente solo quando lo stato èFAILED).
failureMessageStringa Messaggio di errore dettagliato (presente solo quando lo stato èFAILED).
successfulStartSubmissionCountStringa Numero di esecuzioni inviate correttamente.
failedStartSubmissionCountStringa Numero di esecuzioni che non sono state inviate.
pendingStartSubmissionCountStringa Numero di esecuzioni ancora in attesa di invio.
pendingRunCountStringa Numero di esecuzioni in sospeso.
startingRunCountStringa Numero di esecuzioni a partire.
runningRunCountStringa Numero di corse attualmente in esecuzione.
stoppingRunCountStringa Numero di esecuzioni interrotte.
completedRunCountStringa Numero di esecuzioni completate.
failedRunCountStringa Numero di esecuzioni non riuscite.
cancelledRunCountStringa Numero di corse annullate.
deletedRunCountStringa Numero di esecuzioni eliminate.
workflowIdStringa L'identificatore del flusso di lavoro.
workflowArnStringa L'ARN del flusso di lavoro.
workflowVersionArnStringa L'ARN della versione del flusso di lavoro (se applicabile).
workflowOwnerIdStringa L'ID dell'account del proprietario del flusso di lavoro (per i flussi di lavoro condivisi).
runCacheStringa L'ARN della cache di esecuzione (se applicabile).
runCacheBehaviorStringa Il comportamento di esecuzione della cache (se applicabile).

Esempi di eventi

Esempio: evento completato in batch

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-example11111", "detail-type": "RunBatch Status Change", "source": "aws.omics", "account": "123456789012", "time": "2025-03-15T12:30:00Z", "region": "us-west-2", "resources": [ "arn:aws:omics:us-west-2:123456789012:runBatch/7123456" ], "detail": { "omicsVersion": "1.0.0", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "batchId": "7123456", "status": "PROCESSED", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "batchName": "genomics-cohort-analysis", "totalRuns": "96", "successfulStartSubmissionCount": "94", "failedStartSubmissionCount": "2", "pendingStartSubmissionCount": "0", "completedRunCount": "90", "failedRunCount": "4", "cancelledRunCount": "0", "workflowId": "1234567" } }

Esempio: evento batch non riuscito

{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-example22222", "detail-type": "RunBatch Status Change", "source": "aws.omics", "account": "123456789012", "time": "2025-03-15T10:01:00Z", "region": "us-west-2", "resources": [ "arn:aws:omics:us-west-2:123456789012:runBatch/7123456" ], "detail": { "omicsVersion": "1.0.0", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "batchId": "7123456", "status": "FAILED", "failureReason": "VALIDATION_EXCEPTION", "failureMessage": "Expected 100 unique runSettingIds but there were 99" } }

Esempio: EventBridge regola per il completamento in batch

Il seguente schema di eventi corrisponde quando un batch raggiunge uno stato terminale:

{ "source": ["aws.omics"], "detail-type": ["RunBatch Status Change"], "detail": { "status": ["PROCESSED", "FAILED", "CANCELLED"] } }

Considerazioni e limitazioni

  • Quote di throughput condivise: le operazioni batch condividono le stesse quote per account delle singole controparti API. StartRunBatchconsuma quote di servizio. StartRun CancelRunBatchconsuma CancelRun quote e consuma quote. DeleteRunBatch DeleteRun Evita di chiamare le singole API di esecuzione mentre è in corso un batch di grandi dimensioni, poiché ciò può causare errori di invio.

  • Invio graduale: le esecuzioni in un batch vengono inviate gradualmente e in modo asincrono in base alle quote di throughput.

  • Non-atomic operazioni —StartRunBatch, e possono essere tutte parzialmente CancelRunBatch riuscite. DeleteRunBatch Controlla sempre i riepiloghi degli invii per identificare le esecuzioni da riprovare.

  • Coerenza finale: il conteggio dello stato di esecuzione GetBatch potrebbe essere inferiore rispetto agli stati di esecuzione effettivi. I conteggi finali sono accurati una volta raggiunto il batch. PROCESSED

  • Filtro singolo per chiamata alla lista ListRunsInBatch e ListBatch supporta solo un filtro per chiamata API.

  • Re-run non supportato: il campo runId (riesegui) non è supportato inStartRunBatch. Ogni invio di batch crea sempre nuove esecuzioni.

  • Flussi di lavoro Ready2Run: le esecuzioni batch non sono supportate con i flussi di lavoro Ready2Run.

  • Limite di configurazione in linea: le configurazioni in linea () supportano fino a 100 voci. inlineSettings Per batch più grandi, utilizzare. s3UriSettings Questo limite non è regolabile.

  • File di configurazione S3: il file di configurazione S3 deve essere un array JSON di oggetti di impostazione di esecuzione. La dimensione massima del file è di 6 GB e supporta fino a 100.000 configurazioni di esecuzione.

  • Immutabilità del file S3: non modificare il file di configurazione S3 dopo aver inviato il batch. HealthOmics convalida il tag di entità del file (ETag) durante l'invio e fallisce il batch se il file è cambiato.