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

相关内容

热门资讯

开挂辅助脚本"aap... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
开挂辅助安装"wep... 开挂辅助安装"wepoker有透视功能吗"开挂(透视)辅助插件(有挂存在) 了解更多开挂安装加(13...
开挂辅助安装"pok... 您好:pokemmo脚本手机版这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多...
开挂辅助插件"wep... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
开挂辅助神器"wpk... 【亲,wpk德州局透视 这款游戏可以开挂的,确实是有挂的,很多玩家在这款wpk德州局透视中打牌都会发...
开挂辅助神器"wep... wepoker透视app下载开挂教程视频分享装挂详细步骤在当今的网络游戏中,wepoker透视app...
开挂辅助工具"hhp... 开挂辅助工具"hhpoker有没有辅助挂"开挂(透视)辅助下载(有挂解密);无需打开直接搜索加薇13...
开挂辅助平台"har... 【亲,hardrock辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款hardrock辅助中打...
开挂辅助神器"拱趴大... 开挂辅助神器"拱趴大菠萝挂"开挂(透视)辅助插件(真的有挂)《详细加薇136704302咨询》游戏特...
开挂辅助神器"wep... 开挂辅助神器"wepoker私人局怎么玩"开挂(透视)辅助脚本(有人有挂);无需打开直接搜索加(薇:...