云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

微软云_数据库时间段查询_返现

小七 141 0

AWS简单存储服务(简称"S3")是应用最广泛的云存储服务之一,也是大多数AWS实现的关键。存储在S3中的对象通常通过对AWS S3服务的API调用进行检索。

但是S3还有一个事件通知机制,店铺淘客怎么做,可以主动通知对S3中状态更改感兴趣的应用程序,如新上载的,已存档或删除的对象。

本博客展示了如何使用S3事件通知通过SQS或SNS在SAP Process Orchestration中通过KaTe AWS适配器触发处理。

不需要像异步/同步桥或多个api调用这样的复杂配置,更简单的是一个发送方通道配置,因为适配器本机适合AWS生态系统。

S3事件通知

如果为S3 bucket启用了事件通知,S3对象的状态更改将发送到配置的目标,是Lambda函数、SQS队列或SNS主题。

外部应用程序可以利用SQS或SNS作为事件传递的入站机制。

然后,接收应用程序可以决定通知的类型,如果它想对S3对象执行任何操作。

这为连接的应用程序打开了广泛的用例应用程序

如果存在新的S3对象而不是轮询存储,则应用程序可以"实时"自动触发(例如,外部合作伙伴通过SFTP将订单上载到S3或其他应用程序创建S3对象)S3可以用作应用程序之间的持久消息传递解决方案(特别是SQS、SNS或Eventbridge),云主机云服务器,因为AWS消息传递服务有256K负载限制,而S3没有。如果使用相同的密钥重新上载S3对象,则可以启动或忽略重新处理,具体取决于通知类型。归档或恢复对象可以在发生时检测到(例如,从归档存储类型(如Glacier)中恢复通常需要一些时间,因此在发生这种情况时可以立即触发处理)。

我们现在将使用SAP PO和KaTe AWS适配器通过SQS队列作为消费应用程序。

设置S3和SQS

以便接收S3事件通知,事件通知需要通过CLI/API或S3控制台在S3存储桶上启用。

这里我们使用一个名为"my uploads"的桶。

作为第一步,我们创建一个简单的SQS队列(名称也是my uploads),并允许S3使用它进行通知。

需要配置前置任务,以允许S3将通知发送到此队列与sqs:发送消息为操作

下面是允许此设置的小策略声明:

接下来,返利购物,超级返利,需要在源bucket my uploads中启用事件通知。这可以通过API/CLI或直接在S3控制台UI中完成(这里是S3控制台的一个屏幕截图,它为该存储桶中S3对象的PUT/POST或多部分上载创建事件)

现在上载一个新对象时,会向队列发送一个通知,看起来像下面的事件。

请注意,它包含事件类型(eventName是奥布杰ctCreated:放置)和对象的键。

我们现在准备好接收SQS队列中的事件。

配置S3发送方通道

为了用SAP PO处理事件,我们需要用适配器配置发送方通道。然后通道可以接收这些通知并处理相关的S3对象。

下面是必要的通道配置。首先,我们选择带有S3的AWS适配器。

在常规部分,我们只需设置IAM凭据,并选择"侦听S3事件"作为S3操作。这将允许我们将先前定义的队列"my uploads"设置为输入触发器。

屏幕截图下端的复选框显示适配器中的另一个过滤机制,用于定义应处理哪些事件(如果不选中,则将忽略这些事件)。

这里我们选中所有"创建事件"。这将处理S3 bucket配置中配置的所有对象创建和更新(PUT或Multipart upload)

S3对象上载(或Multipart upload)后,通过SQS向PO发送S3通知事件。

然后发送方适配器将自动触发,解析通知以提取S3对象的密钥,获取对象并创建包含S3对象内容的PO消息。

重复数据消除

适配器还处理重复数据消除。

在检索时,S3对象被插入,可以通过s3Key和eTag进行重复数据消除。eTag只是S3上传时创建的内容的散列值。如果一个带有事件的SQS消息被处理了两次,或者同一个S3对象本身被上载了两次而没有更改,并且具有相同的S3键名,那么这样可以避免重复处理。

内容转换

对于JSON内容,适配器允许您在创建PO消息负载时将内容从JSON转换为XML。

错误处理

如果在处理对象通知期间出现任何持续错误(SQS具有可配置的重新交付选项),则可以使用死信队列"隔离"错误事件,以供以后检查或重放。

删除S3对象

还支持删除S3对象。如果您更改了存储桶上的S3事件通知设置(例如,大数据的未来,为了检测删除),适配器会将有关删除的信息传输到SAP PO消息中,该消息具有适配器特定的消息属性,其中包含有关已删除对象的信息。

S3事件通知的多个接收者

现在让我们看看发生了什么如果使用SNS代替SQS作为单个接收器,则会有多个应用程序希望侦听S3事件通知。

例如,想象一下从合作伙伴处收到一个通过SAP PO处理的订单,但也应该由另一个应用程序处理(例如,出于审计目的或订单收据)