Aws lambda 如何使用build stage创建的zip文件创建Lambda函数

Aws lambda 如何使用build stage创建的zip文件创建Lambda函数,aws-lambda,aws-cdk,Aws Lambda,Aws Cdk,使用新的管道构造,我成功创建了一个使用zip文件的Lambda函数: export class MyLambdaStack extends cdk.Stack { constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); const squareNumberLambdaFunction = new lambda.Function(this

使用新的管道构造,我成功创建了一个使用zip文件的Lambda函数:

export class MyLambdaStack extends cdk.Stack {

  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const squareNumberLambdaFunction = new lambda.Function(this, 'squareNumberLambdaFunction', {
      code: lambda.Code.fromAsset('./lambda.zip'),
      handler: 'SquareNumber.handler',
      runtime: lambda.Runtime.PROVIDED,
      tracing: lambda.Tracing.ACTIVE
    })
}
如果我在cdk项目中提交zip文件,这很好,但是我想在构建阶段创建zip文件。我已经验证了zip文件是在构建阶段创建的,但是我不知道如何在
MyLambdaStack
中使用zip文件。如果我试图在上面的代码中将zip文件作为资产提供,那么它只使用提交的zip文件,如果没有提交zip文件,则无法编译


codebuild.BuildSpec
的构建阶段,我有一个shell脚本,它创建了一个
lambda.zip
文件,我在后期构建阶段做了一个
ls-al
来检查它是否被创建了。

在我回答之前,你能确认一下构建是在哪里完成的吗?我想是AWS代码构建?您是否试图使用CodeDeploy将其部署到lambda函数中?是的,lambda函数的构建由CodePipeline中的CodeBuild完成。不,我没有使用CodeDeploy,部署是由CDK完成的(转换为CloudFormation)。事实上,我已经通过使用几周前推出的lambda的新docker映像支持解决了这个问题,这使得这变得更加容易,但我仍然有兴趣看看如何使用zip文件来实现这一点。在我回答之前,您能否确认一下您的构建正在哪里进行?我想是AWS代码构建?您是否试图使用CodeDeploy将其部署到lambda函数中?是的,lambda函数的构建由CodePipeline中的CodeBuild完成。不,我没有使用CodeDeploy,部署是由CDK完成的(转换为CloudFormation)。实际上,我已经通过使用几周前引入的lambda的新docker映像支持解决了这一问题,这使这变得更加容易,但我仍然有兴趣了解如何使用zip文件实现这一点。