AWSラムダで実行されているJavaプログラムにパラメータを渡してテストすることは可能です。しかし、このプログラムがスケジュールイベントによって呼び出された場合、これらのパラメータを渡す方法はわかりません。AWSラムダ関数にパラメータを渡す方法
これが可能なら誰でも知っていますか?はいの場合、どうですか? 私はそれについて何も見つけることができませんでした。事前
AWSラムダで実行されているJavaプログラムにパラメータを渡してテストすることは可能です。しかし、このプログラムがスケジュールイベントによって呼び出された場合、これらのパラメータを渡す方法はわかりません。AWSラムダ関数にパラメータを渡す方法
これが可能なら誰でも知っていますか?はいの場合、どうですか? 私はそれについて何も見つけることができませんでした。事前
パラメータを間接的に渡すことができます。たとえば、s3またはdynamo dbにパラメータを格納します。スケジュールされた各サイクルで、所定の場所から読み取り、プログラムに渡すことができます。通常、共有されたソースコードで複数のスケジュールされたラムダ関数を起動する必要がある場合、ソースコード自体にファイル(読み込み可能な形式)をバンドルし、実行中に読み込みます。 @garnaatが正しかったです。さらに、新しいラムダ関数を動的に起動することは現時点では不可能です。これは大きな不便です。
で
おかげで現在、スケジュールされたラムダ関数を作成するための唯一の方法は、AWSコンソール経由で、それは、スケジューラがそれを呼び出すときにラムダ関数にパラメータを渡すためにどのような方法を提供していません。ラムダ関数がAWSのスケジューラによって呼び出されているので、パラメータの受け渡しがどのように機能するかはわかりません。
自動配置またはCIを使用している場合は、ビルド時に引数をMaven(または同様のもの)およびプロパティとともに挿入することもできます。 S3からファイルを読み込む必要がないので、もう少し最適化されていると思いますか?あなたは、それぞれの設定のようなロードのプロファイル作成のmavenでconfig/env1/app.properties
とconfig/env2/app.properties
持つことができる。例えば
:あなたのコードでは
...
<profiles>
<profile>
<id>env1</id>
<build>
<resources>
<resource>
<directory>config/env1</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
<profile>
<id>env2</id>
<build>
<resources>
<resource>
<directory>config/env2</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</profile>
</profiles>
...
は通常のprops.load(ClassLoader.getSystemResourceAsStream("app.properties"));
のような小道具を読みますあなたの自動化では、mvn install -P en1
をビルドしてJarをデプロイすることができます。
ラムダ設定の環境変数を利用できます。
System.getenv("VAR_NAME")
これらのパラメータをS3に格納することは素晴らしい考えです。なぜそれが私の心に来ていないのか不思議です:-)ありがとう。 – sengbatz