Я пытаюсь вызвать пошаговую функцию из лямбды, поэтому у меня есть такая конфигурация:
let DIST_FOLDER = path.join(__dirname, "dist");
export class ServerStack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// State Machine code
let executorLambda = new lambda.Function(this, "executorFunction", {
runtime: lambda.Runtime.NODEJS_12_X,
handler: "main.handler",
code: new lambda.AssetCode(path.join(DIST_FOLDER, "executor-lambda")),
timeout: Duration.seconds(60)
});
let executorTask = new Task(this, "executorTask", {
task: new InvokeFunction(executorLambda)
});
let chain = Chain.start(executorTask);
let stateMachine = new StateMachine(this, "executorStateMachine", {
definition: chain
});
// Back-end and api
let backend = new lambda.Function(this, "backend", {
runtime: lambda.Runtime.NODEJS_12_X,
handler: "main.handler",
code: new lambda.AssetCode(path.join(DIST_FOLDER, "backend-lambda")),
environment: {
STEP_FUNCTION_ARN: stateMachine.stateMachineArn
}
});
new apigateway.LambdaRestApi(this, "strest-api", { handler: backend });
}
}
, и моя лямбда, подключенная к api-шлюзу:
import { StartExecution } from "@aws-cdk/aws-stepfunctions-tasks";
export async function handler(event: any, context: any) {
let env = process.env;
let STEP_FUNCTION_ARN = env.STEP_FUNCTION_ARN || "STEP_FUNCTION_ARN";
let body = JSON.stringify({
msg: "Hello world",
stepFunctionArn: STEP_FUNCTION_ARN
});
let stateMachineExecution = new StartExecution({ // Here I get an error, I don't know how to pass the correct step function arn or resource
stateMachineArn: STEP_FUNCTION_ARN
})
return {
statusCode: 200,
body
};
}
Кто-нибудь сталкивался с этим?