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.CloudWatchEvent
ich 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