Wie Parameter AWS Lambda-Funktion übergeben

8

Ich weiß, dass es möglich ist, Parameter an ein Java-Programm zu übergeben, das auf AWS Lambda läuft, um es zu testen. Aber ich weiß nicht, wie ich diese Parameter übergeben soll, wenn dieses Programm von einem Zeitplanereignis aufgerufen wird.

Weiß jemand, ob das möglich ist? Wenn ja, wie? Ich konnte nichts darüber finden.

Vielen Dank im Voraus

    
sengbatz 06.01.2016, 12:35
quelle

5 Antworten

3

Sie können Parameter indirekt übergeben, zum Beispiel indem Sie diese auf s3 oder dynamo db speichern. Bei jedem geplanten Zyklus können Sie vom vorgegebenen Ort lesen und an Ihr Programm übergeben. Wenn ich mehrere geplante Lambda-Funktionen mit gemeinsam genutztem Quellcode starten möchte, bündle ich normalerweise eine Datei (jedes lesbare Format) mit dem Quellcode selbst und lese ihn während des Laufs. @garnaat hat recht, außerdem ist es derzeit unmöglich, neue Lambda-Funktionen dynamisch zu starten, was eine große Unannehmlichkeit darstellt.

    
Yerken 06.01.2016, 13:59
quelle
0

Gegenwärtig besteht die einzige Möglichkeit, eine geplante Lambda-Funktion zu erstellen, über die AWS-Konsole, und es bietet keine Möglichkeit, Parameter an die Lambda-Funktion zu übergeben, wenn der Scheduler sie aufruft. Da Ihre Lambda-Funktion vom Scheduler in AWS aufgerufen wird, ist es für mich nicht wirklich klar, wie die Parameterübergabe funktionieren würde.

    
garnaat 06.01.2016 13:37
quelle
0

Eine weitere Option, wenn Sie automatisierte Deploys oder CI haben, besteht darin, Ihre Argumente mit maven (oder ähnlich) und Eigenschaften in die Build-Zeit einzufügen. Ich denke, es ist ein wenig mehr optimiert, da Sie keine Datei von S3 lesen müssen?

Zum Beispiel können Sie config/env1/app.properties und config/env2/app.properties

haben

Mit dem Maven erstellen Sie Profile, die die jeweilige Konfiguration laden wie:

%Vor%

Lesen Sie in Ihrem Code die Requisiten wie gewohnt props.load(ClassLoader.getSystemResourceAsStream("app.properties"));

In Ihrer Automatisierung können Sie mvn install -P en1 erstellen, damit Ihr Jar bereitgestellt wird.

    
Santiago Trias 26.04.2017 20:29
quelle
0

Sie könnten die Umgebungsvariablen aus der Lambda-Konfiguration nutzen. Dann lesen Sie sie in Ihrem Java-Programm mit:

%Vor%     
Diogo Schneider 09.01.2018 17:10
quelle
0

Sie können die CloudWatch-Regel als Zeitplan erstellen und die Eingabe des Ziels als konstanten JSON-Wert konfigurieren:

CloudWatch - & gt; Ereignisse - & gt; Regeln - & gt; Zeitplan - & gt; Targers

Setze Konfiguriere Eingabe als Konstant (JSON-Text) und gib dort gültige JSON-Daten weiter.

In Lambda können Sie auf eine konstante Eingabe als Eingabeobjekt zugreifen.

Screenshot von AWS CloudWatch

    
Sergey Nikitin 12.03.2018 15:01
quelle