【问题标题】:On adding target(LambdaFunction) to Event Rule in AWS-CDK in java giving error: There is already a Construct with name lambda_name in stack在 java 中将目标(LambdaFunction)添加到 AWS-CDK 中的事件规则时出现错误:堆栈中已经有一个名称为 lambda_name 的构造
【发布时间】:2020-10-12 09:29:27
【问题描述】:
Function lambdaFun =
            Function.Builder.create(this, LAMBDA_NAME)
                    .runtime(Runtime.JAVA_11)
                    .code(LambdaCode)
                    .functionName(LAMBDA_NAME)
                    .handler("handler_xyz")
                    .role(role)
                    .memorySize(3008)
                    .timeout(Duration.minutes(15))
                    .environment(LAMBDA_ENV)
                    .build();
    Rule rule =
                Rule.Builder.create(this, CWE_NAME)
                        .schedule(Schedule.rate(Duration.seconds(60)))
                        .description("CloudWatch Event")
                        .build();

    rule.addTarget(new LambdaFunction(lambdaFun));

这样做会出现以下错误

Caused by: software.amazon.jsii.JsiiException: There is already a Construct with name 'lambda-name' in Stack

不知道如何将函数类型转换为 IRuleTarget 或如何将函数转换为 IRuleTarget 对象

【问题讨论】:

  • 目前使用CDK 1.45.0版

标签: amazon-web-services aws-lambda amazon-cloudformation aws-cdk


【解决方案1】:

您是否尝试过命名空间或在函数名称中添加前缀?如果在同一个堆栈中有另一个同名的 lambda 函数,则该错误听起来会出现。

【讨论】:

  • 你的评论让我很开心,我在一个块中创建函数,并试图在另一个块的规则目标中添加它,所以分别调用这两个块是创建两个具有相同名称的 lambda并给出错误。我把整个代码放在一个块(函数)中就完成了!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2019-11-29
  • 1970-01-01
  • 2022-01-27
  • 2021-09-06
相关资源
最近更新 更多