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.
Rubriques
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 chacunrunSettingIdà HealthOmics-generatedrunId, 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 (
runTagspendantdefaultRunSettinget 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"}indefaultRunSetting→ 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-id7123456
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-id7123456
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-id7123456--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 queworkflowIdroleArnoutputUri,parameters,scratchStorageMode, etengineSettings. Pour les flux de travail Nextflow, utilisez cette optionengineSettingspour 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 laengineSettingsmodification 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) |
|---|---|---|
workflowId | Oui | Non |
workflowType | Oui | Non |
workflowVersionName | Oui | Non |
workflowOwnerId | Oui | Non |
roleArn | Oui | Non |
storageCapacity | Oui | Non |
storageType | Oui | Non |
runGroupId | Oui | Non |
logLevel | Oui | Non |
cacheBehavior | Oui | Non |
cacheId | Oui | Non |
retentionMode | Oui | Non |
networkingMode | Oui | Non |
configurationName | Oui | Non |
name | Oui | Oui |
outputUri | Oui | Oui |
parameters | Oui | Oui (fusionné) |
priority | Oui | Oui |
runTags | Oui | Oui (fusionné) |
outputBucketOwnerId | Oui | Oui |
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 :
CREATING— Le lot est en cours de création.PENDING— Création par lots, configuration d'exécution en cours de validation.SUBMITTING— Validation terminée, les essais individuels étant soumis.INPROGRESS— Toutes les soumissions d'exécution ont été tentées, les exécutions sont en cours d'exécution.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-id7123456
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, ouFAILEDHorodatages 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-id7123456
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-id7123456--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).submissionFailureReasonetsubmissionFailureMessage— 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 |
|---|---|
status | Filtrer par statut du lot. |
name | Filtrer par nom de lot. |
runGroupId | Filtrer 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-id7123456
{ "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-id7123456
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-id7123456--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-id7123456
Important
L'annulation n'est autorisée que pour les lots dans
PENDINGSUBMITTING, ouINPROGRESSÉ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
successfulCancelSubmissionCountetfailedCancelSubmissionCountdans lesubmissionSummary.
Supprimer des cycles par lots
Permet DeleteRunBatch de supprimer les essais individuels d'un lot.
aws omics delete-run-batch --batch-id7123456
Important
La suppression n'est autorisée que pour les lots en cours de
PROCESSEDtraitementCANCELLED.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
successfulDeleteSubmissionCountetfailedDeleteSubmissionCountdans 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-id7123456
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 |
|---|---|---|
omicsVersion | Chaîne | Version du schéma d'événements (actuellement 1.0.0). |
arn | Chaîne | L'ARN du lot. |
batchId | Chaîne | L'identifiant du lot. |
status | Chaîne | Le nouveau statut du lot. |
uuid | Chaîne | L'UUID du lot. |
batchName | Chaîne | Le nom du lot (s'il est fourni). |
totalRuns | Chaîne | Nombre total d'essais dans le lot. |
failureReason | Chaîne | Motif de l'échec (présent uniquement lorsque le statut est FAILED défini). |
failureMessage | Chaîne | Message d'échec détaillé (présent uniquement lorsque l'état est définiFAILED). |
successfulStartSubmissionCount | Chaîne | Nombre de courses soumises avec succès. |
failedStartSubmissionCount | Chaîne | Nombre d'essais qui n'ont pas été soumis. |
pendingStartSubmissionCount | Chaîne | Nombre de tirages encore en attente de soumission. |
pendingRunCount | Chaîne | Nombre de courses en attente. |
startingRunCount | Chaîne | Nombre de descentes démarrées. |
runningRunCount | Chaîne | Nombre de courses en cours. |
stoppingRunCount | Chaîne | Nombre de courses interrompues. |
completedRunCount | Chaîne | Nombre de courses terminées. |
failedRunCount | Chaîne | Nombre de courses infructueuses. |
cancelledRunCount | Chaîne | Nombre de courses annulées. |
deletedRunCount | Chaîne | Nombre d'essais supprimés. |
workflowId | Chaîne | L'identifiant du flux de travail. |
workflowArn | Chaîne | L'ARN du flux de travail. |
workflowVersionArn | Chaîne | L'ARN de la version du flux de travail (le cas échéant). |
workflowOwnerId | Chaîne | L'identifiant du compte du propriétaire du flux de travail (pour les flux de travail partagés). |
runCache | Chaîne | L'ARN du cache d'exécution (le cas échéant). |
runCacheBehavior | Chaî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 atteint
PROCESSED.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é.