У меня есть трехступенчатый конечный автомат для пошаговой функции.
InputStep -> ExecuteSparkJob -> OutputLambda
ExecuteSparkJob - это связующая задача. Поскольку он не может передать свой вывод в пошаговую функцию, он записывает его в корзину S3. OutputLambda считывает его оттуда и передает в пошаговую функцию.
Идея InputStep
состоит в том, чтобы просто определить общий URI S3, который можно использовать в следующих шагах.
Ниже приведен код, который у меня есть для шага ввода.
const op1 = Data.stringAt("$.op1");
const op2 = Data.stringAt("$.op2");
const inputTask = new Pass(this, "Input Step", {
result: Result.fromString(this.getURI(op1, op2)),
resultPath: "$.s3path"
});
getURI(op1: string, op2: string): string {
return op1.concat("/").concat(op2).concat("/").concat("response");
}
Однако манипуляции со строками, которые я выполняю в getURI
, не работают. Значения в inputTask.result
не заменяются значением в Path
.
Это вход и выход для Input Step
{
"op1": "test1",
"op2": "test2"
}
Output
{
"op1": "test1",
"op2": "test2"
"responsePath": "$.op1/$.op2/response"
}
Можно ли выполнить некоторые манипуляции со строками, используя параметры в определении Path
в функции Step? Если да, то что мне не хватает?
Спасибо за вашу помощь.