На одном из моих шагов я использую лямбда-функцию в качестве задачи и хочу передать весь ввод как payload
, чтобы он мог преобразоваться в определенный объект Java строгого типа, который я определил.
Мой тип данных как объект:
@Data
public class JobMetaData {
public JobMetaData() {
}
private String jobName;
private String jobId;
Лямбда-функция:
@Override
public JobMetaData handleRequest(final JobMetaData jobMetaData,
final Context context) {
Шаг:
"Preparing Job": {
"Next": "Submitting Job",
"InputPath": "$",
"OutputPath": "$.bakeJobResult",
"Type": "Task",
"Comment": "Preparing Job",
"Parameters": {
"FunctionName": "MyLambdaFunctionName",
"Payload": {
"$": "$"
}
},
"Resource": "arn:aws:states:::lambda:invoke",
"ResultPath": "$.bakeJobResult"
}
При выполнении вышеуказанного шага JobMetaData
пройдено в качестве null
. Я могу заставить его работать, только изменив его на:
"Payload": {
"jobName.$": "$.jobName",
"jobId.$": "$.jobId"
}
Но если у меня много полей, это означает, что мне нужно извлечь все поля json и построить их заново, чтобы сделать их полезными. Я использую CDK для определения моего конечного автомата, похоже, что часть Payload
определена как Map<String, Object>
. Есть ли способ, которым я могу просто передать весь ввод как полезную нагрузку?