AWS EventBridge で、Javaで書いた Batch Job にパラメータを渡す。

AWS のナレッジを参考にするしかない。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/batch-parameters-trigger-eventbridge/

「準備:Job定義」
Javaで書いた Batch のイメージ作成済でAWS Job定義のジョブ設定を行う。
f:id:posturan:20220306125009j:plain
”Ref””::"{パラメータ参照名}
で、実行するコマンド、java -jar JARファイル名 に、パラメータを追加します。
Job定義で、パラメータを設定する場合は、この Ref:: の記述に合わせて、
f:id:posturan:20220306125521j:plain
のように設定します。
手動でJob生成&送信する時でもこのパラメータ設定&送信できます。

AWS EventBridge でイベント実行のJob送信で、、、
f:id:posturan:20220306125819j:plain
AWS EventBridge のルールで新しくイベントパターンをスケジュールで作成します。
ターゲットを選択で、「バッチジョブのキュー」を選択して対象のJobキュー、Job定義、Job名を指定
ターゲット入力を設定をクリックして
定数(JSONテキスト)で、パラメータとコマンドを入力設定します。
1行の入力フォームなので、長い場合この AWSコンソールページで設定するのは辛いです。
隠れてしまっているので、全部記述すると

{ "Parameters": {"param1":"ABC","param2":"1024" }, "ContainerOverrides": { "Command": ["java","-jar","sample.jar","Ref::param1","Ref::param2"] } }

ということになります。
パラメータの値として、JSON を渡す場合など、値に (")ダブルクォーテーションを含んでしまう場合は、
\ 文字(逆スラッシュ文字)でエスケープしなければなりません。