Typescript AWS CDK类型脚本,如何从lambda触发步进函数?
我试图从lambda触发一个step函数,因此我有以下配置: 让DIST\u FOLDER=path.join\u dirname,DIST; 导出类ServerStack扩展了cdk.Stack{ 构造函数范围:cdk.Construct,id:string,props?:cdk.StackProps{ 超级作用域、id、道具; //状态机代码 让executorLambda=new lambda.Functionthis,executorFunction{ 运行时:lambda.runtime.NODEJS_12_X, handler:main.handler, 代码:新lambda.AssetCodepath.joinDIST_文件夹,执行器lambda, 超时:Duration.seconds60 }; 让executorTask=新任务此,executorTask{ 任务:新建InvokeFunctionexecutorLambda }; 设chain=chain.startexecutorTask; 让stateMachine=newstateMachinethis,executorStateMachine{ 定义:链 }; //后端和api 让backend=new lambda.Functionthis,backend{ 运行时:lambda.runtime.NODEJS_12_X, handler:main.handler, 代码:新lambda.AssetCodepath.joinDIST_文件夹,后端lambda, 环境:{ 步骤\功能\学习:stateMachine.stateMachiner } }; 新的apigateway.lambdarestapiths,strestapi,{handler:backend}; } } 我的api网关连接lambda是: 从@aws cdk/aws stepfunctions任务导入{StartExecution}; 导出异步函数handlerevent:any,上下文:any{ 设env=process.env; 设STEP_FUNCTION_ARN=env.STEP_FUNCTION_ARN | STEP_FUNCTION_ARN; 让body=JSON.stringify{ 你好,世界, 步骤函数n:步骤函数 }; 让stateMachineExecution=new StartExecution{//这里有一个错误,我不知道如何传递正确的step函数arn或resource StateMachiner学习:步骤功能学习 } 返回{ 状态代码:200, 身体 }; }Typescript AWS CDK类型脚本,如何从lambda触发步进函数?,typescript,amazon-web-services,aws-lambda,aws-cdk,Typescript,Amazon Web Services,Aws Lambda,Aws Cdk,我试图从lambda触发一个step函数,因此我有以下配置: 让DIST\u FOLDER=path.join\u dirname,DIST; 导出类ServerStack扩展了cdk.Stack{ 构造函数范围:cdk.Construct,id:string,props?:cdk.StackProps{ 超级作用域、id、道具; //状态机代码 让executorLambda=new lambda.Functionthis,executorFunction{ 运行时:lambda.runtim
有人对此有经验吗?问题似乎出在Lambda函数中:
import { StartExecution } from "@aws-cdk/aws-stepfunctions-tasks";
从CDK导入的StartExecution实际上就是基础结构构造。为了对AWS的API进行调用,您需要AWS SDK:
import { StepFunctions } from 'aws-sdk'
const stepfunctions = new StepFunctions();
export async function handler(event: any, context: any) {
...
stepfunctions.startExecution({
stateMachineArn: STEP_FUNCTION_ARN,
name: '...',
input: JSON.stringify({msg: 'Hello World!'})
})
...
}
有关更多信息,请参阅。并确保为Lambda提供必要的权限来调用相关的步骤函数
希望有帮助