AWSCDK:共享Lambda函数在堆栈之间不起作用
创始人
2024-09-24 03:30:58
0

使用 AWS CDK 创建多个堆栈时,可能需要在这些堆栈之间共享 Lambda 函数。然而,在尝试共享 Lambda 函数时,您可能会遇到问题。目前,AWS CDK 不支持将同一个 Lambda 函数添加到多个堆栈中的 CloudFormation 模板。

解决方法是将 Lambda 函数作为构造函数的参数传递给堆栈。这相当于在不同的堆栈中创建两个 Lambda 函数,然后将它们合并成一个。

下面是一个包含共享Lambda函数的AWS CDK TypeScript示例(注意:该代码片段需要aws-cdk-lib和aws-cdk-lib-lambda包):

import * as cdk from 'aws-cdk-lib';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as s3 from 'aws-cdk-lib/aws-s3';
import * as sns from 'aws-cdk-lib/aws-sns';
import * as snsSubs from 'aws-cdk-lib/aws-sns-subscriptions';
import * as sqs from 'aws-cdk-lib/aws-sqs';

export class SharedLambdaStack extends cdk.Stack {
  public readonly sharedFunction: lambda.Function;

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

    // Create the shared Lambda function
    this.sharedFunction = new lambda.Function(this, 'SharedFunction', {
      runtime: lambda.Runtime.NODEJS_14_X,
      handler: 'index.handler',
      code: lambda.Code.fromAsset(`${__dirname}/shared-lambda`),
      memorySize: 256,
      timeout: cdk.Duration.seconds(30),
    });
  }
}

interface SqsS3StackProps extends cdk.StackProps {
  readonly sharedFunction: lambda.Function;
}

export class SqsS3Stack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props: SqsS3StackProps) {
    super(scope, id, props);

    // Create an S3 bucket
    const bucket = new s3.Bucket(this, 'Bucket');

    // Create an SNS topic
    const topic = new sns.Topic(this, 'Topic');

    // Subscribe an SNS topic to the shared Lambda function
    topic.addSubscription(new snsSubs.LambdaSubscription(props.sharedFunction));

    // Create an SQS queue
    const queue = new sqs.Queue(this, 'Queue');

    // Subscribe an SQS queue to the shared Lambda function
    props.sharedFunction.addEventSource

相关内容

热门资讯

七分钟辅助!丽水茶苑苹果手机辅... 七分钟辅助!丽水茶苑苹果手机辅助,本来是真的有辅助教程(有挂方式)1、实时丽水茶苑苹果手机辅助透视辅...
第一分钟辅助!闲来辅助神器下载... 第一分钟辅助!闲来辅助神器下载2022,好像真的有辅助方法(有挂教程)1、不需要AI权限,帮助你快速...
九分钟辅助!丽水都莱辅助工具试... 九分钟辅助!丽水都莱辅助工具试用,确实存在有辅助神器(有挂方法)九分钟辅助!丽水都莱辅助工具试用,确...
第一分钟辅助!蛮王辅助器,好像... 第一分钟辅助!蛮王辅助器,好像是有辅助方法(有挂教学)1、首先打开蛮王辅助器辅助器下载最新版本,在蛮...
第六分钟辅助!潮汕汇挂,一贯真... 第六分钟辅助!潮汕汇挂,一贯真的是有辅助插件(有挂辅助)1、这是跨平台的潮汕汇挂轻量版有透视,在线的...
六分钟辅助!微信开心泉州辅助器... 六分钟辅助!微信开心泉州辅助器,一直有辅助器(有挂教学)1、下载好微信开心泉州辅助器透视辅助下载之后...
第3分钟辅助!佛手十三道破解版... 第3分钟辅助!佛手十三道破解版安卓,竟然真的有辅助攻略(有挂存在)1、让任何用户在无需佛手十三道破解...
2分钟辅助!sohoo竞技联盟... 2分钟辅助!sohoo竞技联盟辅助,切实真的有辅助脚本(有挂技术)1.sohoo竞技联盟辅助 选牌创...
第8分钟辅助!心悦手游辅助器,... 第8分钟辅助!心悦手游辅助器,原来真的是有辅助技巧(确实有挂);1、每一步都需要思考,不同水平的挑战...
第十分钟辅助!广东雀神祈福真的... 第十分钟辅助!广东雀神祈福真的有用吗,都是是有辅助技巧(有挂方略)1、下载好广东雀神祈福真的有用吗透...