2017-08-12 10 views
0

Benötigen Sie eine Funktion zu bestimmten Zeiten aufrufen, ohne einen Server zu müssen und läuft die ganze ZeitAufruf einer Funktion zu bestimmten Zeiten ohne laufenden Server

Insbesondere die Herausforderung, die ich mit Blick auf bin, ist, dass wir nur AWS nutzen Lambda und DynamoDB senden unter anderem eine Erinnerung an Benutzer zu einem Zeitpunkt ihrer Wahl. Das bedeutet, dass wir eine Lambda-Funktion aufrufen müssen, wenn der Benutzer erinnert werden möchte.

Die Zeit ändert sich dynamisch (abhängig von der Wahl des Benutzers), also ist die Frage, was ist eine gute Möglichkeit, dies einzurichten?

Wir erwägen, einen Server einzurichten, wenn es keinen Weg gibt, aber selbst wenn wir uns für diese Lösung entscheiden, fehlt mir die Erfahrung, einen guten Weg zu finden, dies einzurichten. Irgendwelche Vorschläge werden sehr geschätzt.

Antwort

1

überschreitet Sie können Ihre Lambda-Funktion auf einem geplanten Ereignis nennen:

http://docs.aws.amazon.com/lambda/latest/dg/with-scheduled-events.html

So Ihre Lambda-Funktion mit cron wie Ereignis eingerichtet wecken Sie in jedem gewünschten Intervall, rufen Sie die Liste der Alarme auf, die Sie als nächstes senden möchten, senden Sie sie, markieren Sie die abgeschlossenen Alarme, damit sie nicht erneut ausgelöst werden.

2

Sie können den TTL-Ereignisstrom von AWS DynamoDB verwenden, um Lambda auszulösen, um dies zu erreichen. Der Ansatz ist wie folgt.

  • Erstellen Sie eine DynamoDB-Tabelle zum Speichern von Benutzeralarmen.
  • Wenn der Benutzer einen Alarm eingerichtet hat, berechnen Sie die Differenz zwischen dem Alarmzeitstempel und dem aktuellen Zeitstempel.
  • Dann die Differenz als TTL-Wert des Alarmsatzes zusammen mit den Alarminformationen speichern.
  • konfigurieren DynamoDB Ströme eine Lambda auszulösen, wenn TTL
Verwandte Themen