Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript AWS CDK类型脚本,如何从lambda触发步进函数?_Typescript_Amazon Web Services_Aws Lambda_Aws Cdk - Fatal编程技术网

Typescript AWS CDK类型脚本,如何从lambda触发步进函数?

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触发一个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, 身体 }; }
有人对此有经验吗?

问题似乎出在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提供必要的权限来调用相关的步骤函数

希望有帮助