对象的 S3 存储桶路径能否决定步进函数中的 lambda?



我想进行以下过程:

一个对象被放置在s3 bucket的文件夹中。有三个文件夹可用文件夹1、文件夹2和文件夹3。从事件桥通知中,应调用一个步骤函数,该函数提供三个执行操作的lambda函数。对于folder1的对象,应调用lambda1,对于folder2中的对象,调用lambda2,对于folder 3中的对象调用lambda3。aws步骤函数是否提供了这种可能性?你能给我一个代码中的例子吗?

可以在Amazon S3存储桶上定义事件通知,以便在创建新对象时触发AWS Lambda函数。此事件可以在bucket的顶层定义,也可以在特定前缀上定义。

对于您的情况,最简单的配置是定义三个不同的事件——每个前缀一个,以便folder1触发lambda1等。

或者,您可以定义一个触发Step Function的事件。步骤函数然后可以触发AWS Lambda函数,该函数从S3提供的对象Key中提取前缀(例如folder1(。然后,Lambda函数可以输出前缀。然后,Step函数可以在该输出上应用Choice逻辑,以选择要运行的Lambda函数。

另请参阅:amazons3-有人有s3事件触发步骤功能的经验吗?-堆栈溢出

或者。。。我还没有尝试过,但我注意到Choice-AWS步骤函数也允许通配符匹配。因此,可能您可以引用S3事件中提供的密钥,并尝试在路径上匹配(例如$.event.Key或类似的东西(,然后测试folder1/*。让我们知道这是否有效!

最新更新