【问题标题】:aws cdk not creating s3 trigger for lambdaaws cdk 没有为 lambda 创建 s3 触发器
【发布时间】:2022-08-08 14:21:46
【问题描述】:

我正在尝试使用 python cdk 在 lambda 上创建一个 s3 触发器。我使用 cdk 创建了 lambda,但它工作正常,除此之外还有许多其他资源也使用 cdk 创建,但在 lambda 上它没有创建触发器,我的代码是这样的:

import aws_cdk.aws_lambda_event_sources as eventsources
import aws_cdk.aws_s3 as s3


    my_lambda.add_event_source(
        eventsources.S3EventSource(
            mybucket,
            events=[s3.EventType.OBJECT_CREATED], 
            filters=[
                s3.NotificationKeyFilter(
                    prefix=\"start\", 
                    suffix=\"mysufix.csv\",
                ),
            ],
        )
    )
  • 有错误信息吗?
  • @MarkSailes 没有一切正常:(
  • 检查 S3 存储桶,如果 Lambda 函数有其他通知不再存在,我认为它不会创建新的。
  • @MarkSailes 我检查了 s3 的通知。还有其他与我的其他 lambda 相关的通知。
  • @MarkSailes 我刚刚注意到 cdk 甚至没有检测到 change 。即使我尝试使用其他前缀。 cdk 说没有检测到变化

标签: amazon-web-services amazon-s3 aws-lambda aws-cdk aws-cdk-python


【解决方案1】:

尝试创建eventsources 的实例,因为S3EventSource 是一个类,addEventSource 方法需要IEventSource 作为源参数

import aws_cdk.aws_lambda_event_sources as eventsources
import aws_cdk.aws_s3 as s3


my_lambda.add_event_source(
    new eventsources.S3EventSource(
        mybucket,
        events=[s3.EventType.OBJECT_CREATED], 
        filters=[
            s3.NotificationKeyFilter(
                prefix="start", 
                suffix="mysufix.csv",
            ),
        ],
    )
)

文档:https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_lambda_event_sources.S3EventSource.html

【讨论】:

    猜你喜欢
    • 2022-07-21
    • 1970-01-01
    • 2018-02-16
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多