【问题标题】:add trigger to lambda function using cli使用 cli 将触发器添加到 lambda 函数
【发布时间】:2022-01-08 03:51:26
【问题描述】:

我正在尝试使用 cli 向 lambda 版本添加触发规则:

我尝试以下命令:

aws events put-targets --rule rule-name --targets "Id"="1","Arn"="arn..."

此命令运行成功,我可以在目标下的事件桥控制台中看到我的 lambda 函数。但是当我转到 lambda 函数和版本时,我没有看到添加任何触发事件。

我不确定这是错误/错误还是预期的行为。有没有办法将触发事件添加到已发布版本的 lambda 函数中,以便使用 aws cli 在触发控制台中显示(主要是显示触发事件已成功添加)。

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-cli


    【解决方案1】:

    使用 CDK。它会工作

    使用 cdk 创建一个 lambda 函数和一个规则。然后你可以将该规则添加到 lambda。

    这适用于 CDK。但正如你所说,它不适用于 CLI。触发器未添加到 lambda 中。

    示例代码: 注意:这不是完整的 CDK 代码。这只是创建 lambda,rule 并将其添加到 lambda 的部分。这个例子是用 Python 编写的

            fn = lambda_.Function(self, "Name",
                runtime=lambda_.Runtime.PYTHON_3_7,
                handler="index.lambda_handler",
                role=custom_role,
                code=lambda_.Code.from_asset(
                    os.path.join(
                        up_dir(__file__, 2),
                        "resources/lambda/pathtoyourcode",
                    )
                ),
            )
    
            # Run Every Minute
            run_every_minute = _events.Rule(
                self,
                "runEveryMinute",
                schedule=_events.Schedule.rate(core.Duration.minutes(1))
            )
    
            # Add Lambda to CW Event Rule
            run_every_minute.add_target(_targets.LambdaFunction(fn))
    

    【讨论】:

      【解决方案2】:

      目前看来这是不可能的。我检查了 aws-sdk 并且有一个 createEventSourceMapping 方法,但该方法只允许 DynamoDB、Kinesis 等。

      https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#createEventSourceMapping-property

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-27
        • 2019-01-30
        • 1970-01-01
        • 2021-10-03
        • 2019-01-02
        • 2021-09-15
        • 1970-01-01
        • 2020-11-10
        相关资源
        最近更新 更多