Erstellen eines geplanten CloudWatch-Ereignisses mit beliebigen Daten im Feld „Detail“

Erstellen eines geplanten CloudWatch-Ereignisses mit beliebigen Daten im Feld „Detail“

Ich möchte eine Lambda-Aufgabe nach einem festen Zeitplan ausführen, wobei einige Konfigurationen vom geplanten CloudWatch-Ereignis, das die Aufgabe auslöst, übergeben werden. Ein Blick in die DokumentationHier, ich kann sehen, dass geplante Ereignisse in Cloudwatch folgendermaßen aussehen:

{
  "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa",
  "detail-type": "Scheduled Event",
  "source": "aws.events",
  "account": "123456789012",
  "time": "2015-10-08T16:53:06Z",
  "region": "us-east-1",
  "resources": [ "arn:aws:events:us-east-1:123456789012:rule/MyScheduledRule" ],
  "detail": {}
}

Meine Lambda-Aufgabe ist in Go geschrieben und ich sehe, dass event.CloudWatchEventich damit auf das JSON im Feld des Ereignisses zugreifen kann detail, aber ich kann nicht herausfinden, wie ich eine Regel für geplante Cloudwatch-Ereignisse mit benutzerdefinierten Details erstellen kann. Irgendwelche Ideen?

Antwort1

# This is for AWS Sam CF
MyScheduledRule:
    Type: "AWS::Events::Rule"
    Properties:
      Description: "ScheduledRule"
      ScheduleExpression: "rate(6 minutes)"
      State: "ENABLED"
      Targets:
        - Arn:
            !GetAtt MyLambdaFunction.Arn
          Id: "IdForAlert" 
          Input: "{\"name\": \"value\"}"

Antwort2

Es ist keine perfekte Antwort, aber ich habe es geschafft, mithilfe von Umgebungsvariablen mit der Lambda-Aufgabe zu kommunizieren.

https://docs.aws.amazon.com/lambda/latest/dg/env_variables.html

verwandte Informationen