3
votes

regex dans la correspondance de modèle d'événement CloudWatch

Comment puis-je faire correspondre un événement CloudWatch sur une expression régulière. Je dois appeler uniquement une cible SNS particulière sur un nom de travail spécifique. Par exemple, quelque chose comme ci-dessous où je veux faire une correspondance regex sur TranscriptionJobName. Merci.

{
  "source": [
    "aws.transcribe"
  ],
  "detail-type": [
    "Transcribe Job State Change"
  ],
  "detail": {
    "TranscriptionJobStatus": [
      "COMPLETED",
      "FAILED"
    ],
    "TranscriptionJobName": [
      "transcription-localhost-*"
    ]
  }
}


2 commentaires

J'essaye de faire quelque chose de similaire. Y a-t-il des progrès à ce sujet?


@YaroslavTkachenko: J'ai fini par créer une règle distincte pour chaque sujet SNS cible.


3 Réponses :


2
votes

J'ai fini par créer une règle distincte pour chaque sujet SNS cible.


0 commentaires

2
votes

J'essaie également de résoudre ce problème et il ne semble pas que cela soit possible, étant donné la documentation AWS suivante.

https://docs.aws.amazon.com/AmazonCloudWatch /latest/events/CloudWatchEventsandEventPatterns.html

Il est important de se souvenir de ce qui suit à propos du modèle d'événement correspondant:

  • Pour qu'un modèle corresponde à un événement, l'événement doit contenir tous les noms de champs répertoriés dans le modèle. Les noms de champ doivent apparaître dans le événement avec la même structure d'imbrication.

  • Les autres champs de l'événement non mentionnés dans le modèle sont ignorés; effectivement, il existe un caractère générique "": "" pour les champs non mentionnés.

  • La correspondance est exacte (caractère par caractère), sans casse ni aucune autre normalisation de chaîne.

  • Les valeurs mises en correspondance suivent les règles JSON: les chaînes entre guillemets, les nombres et les mots-clés sans guillemets true, false et null.

  • La correspondance des nombres est au niveau de la représentation sous forme de chaîne. Par exemple, 300, 300.0 et 3.0e2 ne sont pas considérés comme égaux.

Dommage ...


0 commentaires

0
votes

C'est désormais possible avec EventBridge et son possibilité de faire une correspondance de préfixe . Cela fonctionne pour moi. J'ai une fonction Lambda configurée comme cible et la fonction est exécutée uniquement lorsqu'un travail de transcription atteint le statut COMPLETED et dont le nom de travail commence par messagerie vocale- .

{
  "source": [
    "aws.transcribe"
  ],
  "detail": {
    "TranscriptionJobName": [
      {
        "prefix": "voicemail-"
      }
    ],
    "TranscriptionJobStatus": [
      "COMPLETED"
    ]
  }
}


0 commentaires