View a markdown version of this page

Le lot s'exécute dans HealthOmics - AWS HealthOmics

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Le lot s'exécute dans HealthOmics

AWS HealthOmics les exécutions par lots vous permettent de soumettre plusieurs exécutions en une seule demande d'API. Chaque exécution du lot partage une configuration de base commune mais peut avoir des entrées et des paramètres spécifiques à l'exécution différents. Les traitements par lots réduisent les frais de soumission et simplifient la gestion du cycle de vie pour le traitement des flux de travail à grande échelle.

Grâce aux traitements par lots, vous pouvez :

  • Soumettez jusqu'à 100 000 exécutions en un seul StartRunBatch appel, avec une configuration partagée définie une seule fois et appliquée à toutes les exécutions.

  • Appliquez des remplacements de paramètres par exécution pour des échantillons individuels, notamment le nom, l'URI de sortie, les paramètres, la priorité et les balises.

  • Suivez l'état général des lots et la progression des soumissions individuelles via GetBatch etListRunsInBatch.

  • Annulez toutes les exécutions d'un lot à l'aide deCancelRunBatch.

  • Supprimez toutes les exécutions d'un lot à l'aide deDeleteRunBatch.

  • Supprimez les métadonnées du lot avecDeleteBatch.

Concepts d'exécution par lots

  • Batch  : ensemble d'exécutions de flux de travail qui partagent une configuration commune, gérées comme une ressource unique avec son propre Amazon Resource Name (ARN) et son statut de cycle de vie.

  • Paramètre d'exécution par défaut (defaultRunSetting) : paramètres de flux de travail partagés entre toutes les exécutions du lot, tels que l'ID du flux de travail, le rôle IAM, l'URI de sortie, la politique de session et les paramètres courants.

  • Run-specific paramètre (inlineSettingsous3UriSettings) : Per-run configurations qui remplacent ou fusionnent avec le paramètre d'exécution par défaut. Chaque entrée doit inclure un numéro uniquerunSettingId.

  • ID de réglage d'exécution (runSettingId) : identifiant unique obligatoire fourni par le client pour chaque configuration d'exécution d'un lot. Après la soumission, utilisez ListRunsInBatch pour mapper chacun runSettingId à HealthOmics-generated runId, ce qui vous permet de retracer quelle exécution a été créée à partir de quelle configuration d'entrée.

  • État du lot  : état général de l'opération par lots. Valeurs possibles :

    • CREATING— Le lot est en cours de création.

    • PENDING— Le lot a été créé ; les configurations d'exécution sont validées de manière asynchrone.

    • SUBMITTING— Validation terminée ; les essais individuels sont en cours de soumission.

    • INPROGRESS— Toutes les soumissions d'exécution ont été tentées ; les exécutions sont en cours d'exécution.

    • STOPPING— Une demande d'annulation a été reçue ; les courses sont interrompues.

    • CANCELLED— Le lot a été annulé.

    • PROCESSED— Toutes les courses ont atteint l'état terminal (terminées, échouées ou annulées).

    • FAILED— Le lot lui-même a échoué avant que des exécutions puissent être créées. Consultez Batch-level échecs pour plus de détails.

    • RUNS_DELETING— Les exécutions du lot sont en cours de suppression.

    • RUNS_DELETE_FAILED— Certaines ou toutes les exécutions du lot n'ont pas pu être supprimées.

    • RUNS_DELETED— Toutes les exécutions du lot ont été supprimées.

  • État de la soumission  : résultat de la soumission pour un traitement individuel au sein du lot. Valeurs possibles :

    • SUCCESS— L'exécution a été envoyée avec succès.

    • FAILED— La soumission de l'exécution a échoué (par exemple, en raison d'une erreur de validation).

    • CANCEL_SUCCESS— La course a été annulée avec succès.

    • CANCEL_FAILED— L'annulation de l'exécution a échoué.

    • DELETE_SUCCESS— L'exécution a été supprimée avec succès.

    • DELETE_FAILED— L'exécution de la suppression a échoué.

Conditions préalables

Avant de démarrer un traitement par lots, assurez-vous que vous disposez des éléments suivants :

  • Un flux de travail HealthOmics privé actif. Les exécutions par lots ne sont pas prises en charge avec les flux de travail Ready2Run.

  • Un rôle de service IAM avec des autorisations pour exécuter des HealthOmics flux de travail et accéder à vos compartiments Amazon S3. Pour plus de détails, consultez Rôles de service pour AWS HealthOmics.

  • Emplacements Amazon S3 pour les données d'entrée et les résultats de sortie.

  • Run-specific paramètres pour chaque échantillon ou configuration expérimentale.

Autorisations IAM pour les opérations par lots

Votre identité IAM doit disposer d'autorisations à la fois pour l'opération par lots et pour l'opération d'exécution individuelle sous-jacente. L'exemple de politique suivant accorde des autorisations pour toutes les opérations par lots :

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

StartRunBatchnécessite une double autorisation : omics:StartRunBatch sur la ressource par lots et omics:StartRun sur les ressources d'exécution, de flux de travail et de groupe d'exécution. Les deux autorisations doivent être accordées pour que le lot réussisse.

Le rôle de service IAM transmis roleArn (utilisé par HealthOmics pour exécuter les exécutions) nécessite les mêmes autorisations que pour les StartRun appels individuels. Pour plus de détails, consultez Rôles de service pour AWS HealthOmics.

Balisage et contrôle d'accès basé sur les balises

Batch exécute les balises de support à deux niveaux :

  • Balises de lot (balises sur la StartRunBatch demande) — Appliquées à la ressource de lot. Tag-based le contrôle d'accès (TBAC) est entièrement appliqué pour les balises de lot.

  • Tags d'exécution (runTagspendant defaultRunSetting et par exécutionrunTags) : appliqués aux ressources d'exécution individuelles. Ces balises sont fusionnées selon les mêmes règles de priorité que les paramètres.

Si vous utilisez des politiques de contrôle d'accès basées sur des balises, assurez-vous que votre politique IAM inclut omics:TagResource les conditions aws:RequestTag et aws:TagKeys appropriées.

Exemple : Restreindre la création de lots aux environnements hors production

La politique suivante permet aux utilisateurs de créer des lots et des exécutions, mais interdit de baliser une ressource avec : 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" } } } ] }

Avec cette politique :

  • tags: {"environment": "dev"}sur le lot → Autorisé

  • tags: {"environment": "production"}sur le lot → Refusé (403)

  • runTags: {"environment": "production"}in defaultRunSetting → Refusé pour les exécutions individuelles lors de la création asynchrone

Pour commencer : Soumettez votre premier lot

L'exemple suivant explique comment soumettre un petit lot de deux essais, vérifier la progression et examiner les résultats.

Étape 1 : Soumettre le lot

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 réponse renvoie un identifiant de lot que vous utiliserez pour toutes les opérations suivantes :

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

Étape 2 : Vérifier la progression du lot

aws omics get-batch --batch-id 7123456

Suivez la progression du status terrain à partir de CREATING PENDING → SUBMITTING → → INPROGRESS →PROCESSED. submissionSummaryIndique le nombre d'exécutions qui ont été soumises avec succès et runSummary indique la progression de l'exécution.

Étape 3 : Passez en revue les courses individuelles

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

Chaque entrée associe votre runSettingId (par exemple,sample-A) à la HealthOmics-generatedrunId, afin que vous puissiez retracer les résultats jusqu'à vos échantillons d'entrée.

Étape 4 : Vérifiez les soumissions ayant échoué

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

Si l'une des exécutions n'a pas été envoyée, la réponse inclut submissionFailureReason et vous aide submissionFailureMessage à diagnostiquer le problème.

Démarrage d'un traitement par lots

Permet StartRunBatch de soumettre plusieurs essais avec une seule demande. La demande comprend :

  • defaultRunSetting— Configuration partagée pour toutes les exécutions du lot. Cela inclut des champs tels que workflowId roleArnoutputUri,parameters,scratchStorageMode, etengineSettings. Pour les flux de travail Nextflow, utilisez cette option engineSettings pour spécifier des profils qui s'appliquent à toutes les exécutions du lot. Pour plus d’informations, consultez Spécifier les paramètres du moteur Nextflow.

  • batchRunSettings— Les configurations de course individuelles, fournies sous la forme de l'une des options suivantes :

    • inlineSettings— Un éventail de 100 configurations spécifiques à l'exécution fournies directement dans le corps de la requête. Chaque paramètre en ligne peut inclure la engineSettings modification du profil par défaut pour les exécutions individuelles.

    • s3UriSettings— Un URI Amazon S3 pointant vers un fichier JSON contenant les configurations d'exécution. Nécessaire pour les lots de plus de 100 essais et prend en charge jusqu'à 100 000 essais.

Vous pouvez également fournir les champs suivants :

  • batchName— Un nom facultatif lisible par l'homme pour le lot.

  • requestId— Un jeton d'idempotence pour éviter les soumissions de lots en double.

  • tags— Tags à associer à la ressource batch elle-même.

Soumettez de petits lots avec des configurations d'exécution en ligne

Fournissez un tableau de configurations spécifiques à l'exécution directement dans le corps de la requête à l'aide de. inlineSettings Chaque entrée doit inclure un numéro unique runSettingId (obligatoire). runSettingIdC'est votre clé pour corréler les résultats : lorsque vous appelezListRunsInBatch, chaque entrée vous met en correspondance runSettingId avec le HealthOmics-generated runId etrunArn.

Vous pouvez inclure jusqu'à 100 entrées avec des configurations en ligne.

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

INTERFACE DE LIGNE DE COMMANDE (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"} } ] }'

Soumettez de gros lots avec des configurations d'exécution dans S3

Pour les lots de plus de 100 exécutions, stockez vos configurations d'exécution dans un fichier JSON d'Amazon S3 et indiquez l'URI en utilisants3UriSettings. Le fichier JSON doit contenir un tableau d'objets de réglage spécifiques à l'exécution, chacun ayant une valeur unique. runSettingId Le fichier peut contenir jusqu'à 100 000 entrées.

Le format de fichier S3 est le même que celui du inlineSettings tableau :

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

Demande d'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" } }

INTERFACE DE LIGNE DE COMMANDE (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"}'
Important

Le rôle de service IAM spécifié dans roleArn doit disposer d'un accès en lecture à l'objet Amazon S3 spécifié danss3UriSettings. HealthOmics valide l'accès au fichier Amazon S3 lors de l'appel d'API synchrone et enregistre l'ETag du fichier. Si le fichier est modifié après sa soumission, le lot échoue lors du traitement asynchrone.

Réponse

Une demande réussie renvoie un identifiant de lot et un statut initial :

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

Si la validation synchrone échoue (par exemple, un ID de flux de travail non valide ou un URI Amazon S3 inaccessible), l'API renvoie une erreur avant que les exécutions ne soient soumises.

Référence des paramètres

Le tableau suivant indique quels StartRun champs peuvent être définis par exécution et lesquels s'appliquent uniquement au niveau du lot. Pour une description complète des champs, consultez la référence de StartRun l'API.

Champ Batch-level (defaultRunSetting) Per-run configurable (inlineSettings)
workflowIdOuiNon
workflowTypeOuiNon
workflowVersionNameOuiNon
workflowOwnerIdOuiNon
roleArnOuiNon
storageCapacityOuiNon
storageTypeOuiNon
runGroupIdOuiNon
logLevelOuiNon
cacheBehaviorOuiNon
cacheIdOuiNon
retentionModeOuiNon
networkingModeOuiNon
configurationNameOuiNon
nameOuiOui
outputUriOuiOui
parametersOuiOui (fusionné)
priorityOuiOui
runTagsOuiOui (fusionné)
outputBucketOwnerIdOuiOui
Note

Le champ runId (pour les rediffusions individuelles) n'est pas pris en charge comme entrée dansStartRunBatch. Chaque envoi par lots crée toujours de nouveaux tirages, et chaque série recevra unrunId. Voir Réexécuter un run in HealthOmics pour réessayer des exécutions individuelles.

Fusion de paramètres

Les paramètres de defaultRunSetting sont fusionnés avec les paramètres spécifiques à l'exécution fournis dans inlineSettings ou via un URI S3. Run-specific les valeurs sont prioritaires lorsque les touches se chevauchent.

Exemple :

Source Parameters
defaultRunSetting {"referenceUri": "s3://bucket/ref.fasta", "version": "v1"}
inlineSettingsentrée {"inputUri": "s3://bucket/sample.fastq", "version": "v2"}
Résultat fusionné {"referenceUri": "s3://bucket/ref.fasta", "inputUri": "s3://bucket/sample.fastq", "version": "v2"}

Le même comportement de fusion s'applique à. runTags Les balises spécifiées dans la configuration par exécution remplacent les balises dont la clé provient de la mêmedefaultRunSetting.runTags, et de nouvelles clés sont ajoutées.

Exemple de fusion de balises :

Source Étiquettes
defaultRunSetting.runTags {"project": "cancer-research", "pipeline-version": "v2.1"}
inlineSettings[].runTags {"patient-id": "patient001", "pipeline-version": "v3.0"}
Résultat fusionné (appliqué à l'exécution) {"project": "cancer-research", "patient-id": "patient001", "pipeline-version": "v3.0"}
Note

Batch-level les balises (sur la StartRunBatch demande) ne sont appliquées qu'à la ressource batch elle-même. Ils ne sont pas hérités par des courses individuelles. Run-level les balises sont contrôlées en continu defaultRunSetting.runTags et par exécutionrunTags.

Soumission graduelle

StartRunBatchvalide les champs communs de manière synchrone et renvoie immédiatement un numéro de lot et un statut. CREATING Les exécutions par lots sont soumises progressivement et de manière asynchrone à un rythme contrôlé en fonction de vos quotas de débit.

Pour la liste complète des HealthOmics quotas, voirHealthOmics quotas de service.

Le lot passe par les états suivants au cours du traitement normal :

  1. CREATING— Le lot est en cours de création.

  2. PENDING— Création par lots, configuration d'exécution en cours de validation.

  3. SUBMITTING— Validation terminée, les essais individuels étant soumis.

  4. INPROGRESS— Toutes les soumissions d'exécution ont été tentées, les exécutions sont en cours d'exécution.

  5. PROCESSED— Toutes les courses ont atteint un état terminal.

Important

La soumission par lots partage le même quota de StartRun débit que les appels StartRun d'API directs. Si vous appelez StartRun directement alors qu'un gros lot est en cours de traitement, les soumissions par lots et vos appels directs sont en concurrence pour la même capacité. Cela peut entraîner l'échec des exécutions par lots ThrottlingException (débit dépassé) ou la limitation de vos StartRun appels directs. Il en va de même pour CancelRun et DeleteRun : ceux-ci partagent les quotas de débit avec CancelRunBatch et DeleteRunBatch respectivement.

Suivi de la progression des lots

Obtenir l'état du lot

Permet GetBatch de récupérer l'état général et la progression de la soumission pour un lot.

aws omics get-batch --batch-id 7123456

La réponse inclut :

  • status— État général du lot.

  • submissionSummary— Nombre de soumissions réussies et échouées pour les opérations de démarrage, d'annulation et de suppression.

  • runSummary— Nombre d'exécutions dans chaque état d'exécution. Valeurs possibles : PENDINGSTARTING,RUNNING,STOPPING, COMPLETEDDELETED,CANCELLED, ou FAILED

  • Horodatages des événements du cycle de vie —creationTime,,submittedTime,processedTime. failedTime

Exemple de réponse :

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

Les résumés d'exécution des exécutions sont finalement cohérents et peuvent être inférieurs à l'état d'exécution réel. Les comptes finaux sont rapprochés lorsque le lot atteint PROCESSED le statut.

La liste s'exécute par lots

Permet ListRunsInBatch de récupérer des informations détaillées pour les essais individuels au sein d'un lot. Les résultats sont paginés.

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

Vous pouvez filtrer les résultats à l'aide de l'un des paramètres de requête suivants. Un seul filtre par appel est pris en charge.

Filtre Description
submissionStatus Filtrez par statut de soumission : SUCCESS FAILEDCANCEL_SUCCESS,CANCEL_FAILED,DELETE_SUCCESS, ouDELETE_FAILED.
runSettingId Récupérez l'exécution pour un ID de réglage d'exécution spécifique.
runId Récupérez l'exécution pour un ID d'exécution spécifique.

Exemple : répertorier les soumissions ayant échoué

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

Chaque résultat inclut :

  • runSettingId— Identifiant fourni par le client pour la configuration d'exécution.

  • runId— L'identifiant d' HealthOmics-generated exécution (vide en cas d'échec de la soumission).

  • runArn— L'ARN complet de la course.

  • submissionStatus— Le résultat de la soumission (SUCCESSFAILEDCANCEL_SUCCESS,CANCEL_FAILED,DELETE_SUCCESS, ouDELETE_FAILED).

  • submissionFailureReasonet submissionFailureMessage — Détails en cas d'échec de la soumission.

Note

runSettingIdest l'identifiant spécifié par le client que vous avez fourni dans la configuration d'exécution. runIdest l' HealthOmics-generated identifiant attribué après une soumission réussie. Si la soumission a échoué, elle runId est vide.

Répertorier les lots

ListBatchUtilisez-le pour récupérer toutes les ressources par lots de votre compte. Les résultats sont paginés.

aws omics list-batch

Vous pouvez filtrer les résultats à l'aide des paramètres de requête suivants :

Filtre Description
statusFiltrer par statut du lot.
nameFiltrer par nom de lot.
runGroupIdFiltrer par ID de groupe d'exécution.

Activer les métriques d'exécution

Les métriques d'exécution indiquent l'utilisation des ressources en temps quasi réel pour les exécutions d'un lot. Pour activer les métriques d'exécution, le rôle de service que vous utilisez pour le lot doit disposer de l'cloudwatch:PutMetricDataautorisation requise. Pour plus d’informations, consultez Exécutez des métriques pour les flux de travail privés.

Ajoutez l'autorisation suivante au rôle de service que vous utilisez pour le lot.

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

Gestion des essais échoués

Il existe deux types distincts de défaillances dans le traitement par lots. Il est essentiel de comprendre la différence pour résoudre les problèmes.

Batch-level échecs

Une défaillance au niveau du lot signifie que le lot lui-même a échoué : aucune exécution n'a été créée (ou seulement certaines ont été créées avant l'échec). L'état du lot estFAILED.

Appelez GetBatch et vérifiez le failureReason champ. Les raisons de défaillance courantes incluent :

Catégorie de défaillance Exemple de failureReason message Action
Erreur de validation « Le lot compte 10 0001 essais, mais 100 000 essais, c'est le maximum. «, « On s'attendait à 50 exécutions uniques, SettingIds mais il y en a eu 49 », « Format JSON non valide dans les configurations d'exécution » Corrigez la configuration et envoyez un nouveau lot. Ces erreurs ne peuvent pas être réessayées.
Configuration S3 modifiée « UriConfigs  Etag s3 attendu : \" abc123 \ » mais c'était : \ "def456 \ ». s3 UriConfigs ont changé depuis l'appel » StartRunBatch Ne modifiez pas le fichier S3 après sa soumission. Soumettez de nouveau avec le fichier actuel.
Erreur de service transitoire « Une erreur passagère s'est produite dans le service. Réessayez le lot. » Réessayez en soumettant à nouveau le même lot. Utilisez la même chose requestId pour l'idempotence.

Exemple : échec du lot en raison de la validation

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 échecs

Un échec au niveau de l'exécution signifie que le lot lui-même a réussi (l'état est INPROGRESS ouPROCESSED), mais que les essais individuels n'ont pas été soumis. Le lot continue à traiter les autres cycles ; il ne s'arrête pas au premier échec.

1. Consultez le résumé de la soumission

aws omics get-batch --batch-id 7123456

RegardesubmissionSummary.failedStartSubmissionCount. Si cette valeur est supérieure à zéro, certaines exécutions ont échoué lors de la soumission.

2. Liste des soumissions ayant échoué

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

Chaque entrée échouée inclut :

  • runSettingId— La configuration d'exécution a échoué.

  • submissionFailureReason— La catégorie d'erreur.

  • submissionFailureMessage— Message d'erreur détaillé.

3. Raisons de l'échec de soumission

Le tableau suivant répertorie les valeurs possibles pour submissionFailureReason des essais individuels :

submissionFailureReason Signification Récupérable ?
ValidationException Les paramètres d'exécution ne sont pas valides. Par exemple, les paramètres ne correspondent pas à la définition du flux de travail, un format d'URI S3 non valide ou des violations de contraintes. Non. Corrigez la configuration.
AccessDeniedException Le rôle de service IAM n'est pas autorisé à accéder aux ressources requises (entrées S3, clés KMS, CloudWatch journaux, images ECR). Non : mettez à jour la politique relative aux rôles.
ResourceNotFoundException Une ressource référencée (flux de travail, groupe d'exécution ou cache d'exécution) n'existe pas ou n'est pas dans un état actif. Non : vérifiez les identifiants des ressources.
ServiceQuotaExceededException Le compte a atteint le nombre maximum d'exécutions actives ou un autre quota de service. Attendez la fin des essais ou demandez une augmentation de quota.
ConflictException Une opération conflictuelle est en cours, par exemple une tentative de création d'une exécution en double. Se résout généralement d'elle-même.
ThrottlingException La demande a été limitée en raison des limites de débit de l'API. Le service réessaie automatiquement. S'il persiste après de nouvelles tentatives, réduisez les soumissions simultanées par lots.
RequestTimeoutException Le délai de traitement de la demande a expiré. Le service réessaie automatiquement. S'il persiste, vérifiez s'il n'y a pas de problèmes en aval.
InternalServerException Une erreur de service inattendue s'est produite. Le service réessaie automatiquement. Si le problème persiste après de nouvelles tentatives, contactez le AWS support.
Note

HealthOmics réessaie automatiquement les erreurs transitoires (ThrottlingException,RequestTimeoutException,InternalServerException) à chaque exécution. Une exécution est marquée comme une fois FAILED que toutes les tentatives de nouvelle tentative ont été épuisées. Non-retryable les erreurs (ValidationExceptionAccessDeniedException,ResourceNotFoundException) échouent immédiatement sans nouvelle tentative.

4. Soumettre à nouveau les exécutions ayant échoué

Créez un nouveau lot contenant uniquement les configurations d'exécution corrigées. Utilisez-le defaultRunSetting et incluez uniquement les runSettingId entrées qui ont échoué. Il n'existe aucun mécanisme de nouvelle tentative intégré en cas d'échec des exécutions. Vous devez soumettre un nouveau lot.

Annulation d'un lot

Permet CancelRunBatch d'annuler un lot en cours. L'opération d'annulation :

  • Empêche le démarrage des exécutions qui n'ont pas encore été soumises et en attente

  • Soumet CancelRun des demandes pour les courses qui ont déjà commencé.

aws omics cancel-run-batch --batch-id 7123456
Important
  • L'annulation n'est autorisée que pour les lots dans PENDINGSUBMITTING, ou INPROGRESS État.

  • Une seule opération d'annulation ou de suppression par lot est autorisée à la fois.

  • Les opérations d'annulation ne sont pas atomiques et peuvent être partiellement réussies. Utilisez GetBatch pour réviser successfulCancelSubmissionCount et failedCancelSubmissionCount dans lesubmissionSummary.

Supprimer des cycles par lots

Permet DeleteRunBatch de supprimer les essais individuels d'un lot.

aws omics delete-run-batch --batch-id 7123456
Important
  • La suppression n'est autorisée que pour les lots en cours de PROCESSED traitementCANCELLED.

  • Une seule opération d'annulation ou de suppression par lot est autorisée à la fois.

  • Les opérations de suppression ne sont pas atomiques et peuvent être partiellement réussies. Utilisez GetBatch pour réviser successfulDeleteSubmissionCount et failedDeleteSubmissionCount dans lesubmissionSummary.

Suppression de métadonnées par lots

Permet DeleteBatch de supprimer la ressource par lots et ses métadonnées associées. Il s'agit d'une opération distincte deDeleteRunBatch.

aws omics delete-batch --batch-id 7123456
Important
  • DeleteBatchnécessite que le lot soit dans un état terminal (PROCESSEDFAILED,CANCELLED,RUNS_DELETE_FAILED, ouRUNS_DELETED).

  • DeleteBatchne supprime pas les essais individuels. DeleteRunBatchUtilisez-le d'abord si vous souhaitez également supprimer les pistes.

  • Une DeleteBatch fois terminées, les métadonnées du lot ne sont plus accessibles. Vous ne pouvez pas appeler GetBatch ListRunsInBatchDeleteRunBatch,, ou CancelRunBatch sur un lot supprimé.

EventBridge événements pour lots

HealthOmics envoie des événements à Amazon EventBridge chaque fois qu'un lot change de statut. Vous pouvez utiliser ces événements pour automatiser les flux de travail, par exemple pour déclencher une notification lorsqu'un lot se termine ou échoue, ou pour démarrer un pipeline en aval lorsque toutes les exécutions sont terminées.

Les événements par lots utilisent le même bus d'événements et la même source que les autres HealthOmics événements. Pour les instructions générales de configuration, consultezUtilisation EventBridge avec AWS HealthOmics.

Type de détails de l'événement

Nom de l’événement Émis lorsque
RunBatch Changement de statut Le lot passe à un nouveau statut (CREATINGPENDING,SUBMITTING,INPROGRESS,STOPPING,CANCELLED,PROCESSED,FAILED,RUNS_DELETING,RUNS_DELETED)

Champs de détail de l'événement

L'detailobjet d'un événement groupé inclut les champs suivants :

Champ Type Description
omicsVersionChaîne Version du schéma d'événements (actuellement 1.0.0).
arnChaîne L'ARN du lot.
batchIdChaîne L'identifiant du lot.
statusChaîne Le nouveau statut du lot.
uuidChaîne L'UUID du lot.
batchNameChaîne Le nom du lot (s'il est fourni).
totalRunsChaîne Nombre total d'essais dans le lot.
failureReasonChaîne Motif de l'échec (présent uniquement lorsque le statut est FAILED défini).
failureMessageChaîne Message d'échec détaillé (présent uniquement lorsque l'état est définiFAILED).
successfulStartSubmissionCountChaîne Nombre de courses soumises avec succès.
failedStartSubmissionCountChaîne Nombre d'essais qui n'ont pas été soumis.
pendingStartSubmissionCountChaîne Nombre de tirages encore en attente de soumission.
pendingRunCountChaîne Nombre de courses en attente.
startingRunCountChaîne Nombre de descentes démarrées.
runningRunCountChaîne Nombre de courses en cours.
stoppingRunCountChaîne Nombre de courses interrompues.
completedRunCountChaîne Nombre de courses terminées.
failedRunCountChaîne Nombre de courses infructueuses.
cancelledRunCountChaîne Nombre de courses annulées.
deletedRunCountChaîne Nombre d'essais supprimés.
workflowIdChaîne L'identifiant du flux de travail.
workflowArnChaîne L'ARN du flux de travail.
workflowVersionArnChaîne L'ARN de la version du flux de travail (le cas échéant).
workflowOwnerIdChaîne L'identifiant du compte du propriétaire du flux de travail (pour les flux de travail partagés).
runCacheChaîne L'ARN du cache d'exécution (le cas échéant).
runCacheBehaviorChaîne Le comportement d'exécution du cache (le cas échéant).

Exemples d'événements

Exemple : événement terminé par lots

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

Exemple : échec d'un événement par lots

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

Exemple : EventBridge règle pour l'achèvement des lots

Le modèle d'événement suivant correspond à chaque fois qu'un lot atteint un état terminal :

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

Limites et considérations

  • Quotas de débit partagés  : les opérations par lots partagent les mêmes quotas par compte que leurs homologues d'API individuelles. StartRunBatchconsomme des quotas StartRun de service. CancelRunBatchconsomme CancelRun des quotas et DeleteRunBatch consomme DeleteRun des quotas. Évitez d'appeler des API d'exécution individuelles lorsqu'un lot important est en cours de traitement, car cela peut entraîner des échecs de soumission.

  • Soumission progressive  : les exécutions par lots sont soumises progressivement et de manière asynchrone en fonction de vos quotas de débit.

  • Non-atomic opérations —StartRunBatch,CancelRunBatch, et DeleteRunBatch peuvent toutes être partiellement couronnées de succès. Vérifiez toujours les résumés des soumissions pour identifier les essais qui nécessitent une nouvelle tentative.

  • Cohérence éventuelle  : le nombre d'états d'exécution des exécutions GetBatch peut être inférieur à celui des états d'exécution réels. Les dénombrements finaux sont exacts une fois le lot atteintPROCESSED.

  • Filtre unique par appel de liste ListRunsInBatch et ne ListBatch prend en charge qu'un seul filtre par appel d'API.

  • Re-run non pris en charge  : le champ runId (réexécution) n'est pas pris en charge dansStartRunBatch. Chaque envoi par lots crée toujours de nouveaux tirages.

  • Flux de travail Ready2Run — Les exécutions par lots ne sont pas prises en charge avec les flux de travail Ready2Run.

  • Limite de configuration en ligne — Les configurations en ligne (inlineSettings) prennent en charge jusqu'à 100 entrées. Pour les lots plus importants, utilisezs3UriSettings. Cette limite n’est pas réglable.

  • Fichier de configuration S3  : le fichier de configuration S3 doit être un tableau JSON contenant des objets de réglage d'exécution. La taille de fichier maximale est de 6 Go, prenant en charge jusqu'à 100 000 configurations d'exécution.

  • Immuabilité du fichier S3  : ne modifiez pas le fichier de configuration S3 après avoir soumis le lot. HealthOmics valide la balise d'entité du fichier (ETag) lors de la soumission et échoue au traitement par lots si le fichier a été modifié.