利用AWS服务与Kinesis进行数据转换、路由及第三方集成
立即解锁
发布时间: 2025-08-30 01:42:08 阅读量: 4 订阅数: 9 AIGC 

### 利用AWS服务与Kinesis进行数据转换、路由及第三方集成
#### 1. AWS服务的优势与决策思路
AWS服务就像一个个构建模块,如同一组微服务,能让我们快速构建或原型化应用程序。不过,由于可使用的服务众多,服务之间存在重叠,在选择服务时容易陷入分析瘫痪。
云服务的一大显著优势在于,在选择服务时犯错不会受到严重惩罚,具有较高的容错性。这里引入“双向门”和“单向门”决策的概念:
- **双向门决策**:如果选错了门,可以迅速返回并选择其他门。在采用云服务时,建议将服务选择视为双向门决策,快速选择一个服务并针对用例进行实验,而非无休止地讨论哪个服务更好。
- **单向门决策**:一旦做出选择就难以逆转,例如购买全新的服务器,做出决策后可操作的空间很小,因此需要花费大量时间进行决策。
#### 2. 理解企业服务总线(ESB)
如果你不熟悉企业服务总线(ESB)的概念,可将其理解为一个通信系统,用于在面向服务的架构(SOA)中实现相互交互的软件应用程序之间的通信。可以把邮政服务看作一个ESB,每个人既是消息生产者(寄信人)又是消息消费者(收信人)。作为生产者或消费者,我们无需了解邮件分类和路由的内部机制,只需使用邮政API指定收件地址并将信件放入邮箱,邮政服务会负责后续的路由和投递。如果需要确认收件人是否收到消息,提供自己的地址,邮政服务会在信件送达后返回投递确认。
#### 3. 使用EventBridge和Kinesis实现规则路由
EventBridge是一个无服务器事件总线,可用于连接应用程序或服务,同时保持它们之间的解耦。虽然Kinesis本身可以发送事件,但它无法进行事件路由。以SmartCity自行车车队为例,若要向特定的自行车停靠站发送数据(如解锁码),仅将数据放入Kinesis流中,每个站点都需要过滤事件并丢弃非自己的事件,这会带来大量工作。而使用EventBridge和Kinesis结合,就可以基于规则或一组规则来路由消息或事件。
以下是具体操作步骤:
1. **创建Kinesis数据流**:
- 导航到AWS控制台,创建两个Kinesis数据流:`station100stream` 和 `station200stream`,用于接收EventBridge为相应站点发送的事件。
2. **定义发送到EventBridge的事件结构**:
```json
[
{
"Source": "com.smartbike.maintenance",
"Detail": "{\"stationId\":\"200\"}",
"Resources": [
"unlock-key-34534"
],
"DetailType": "unlockDockingStation",
"EventBusName": "bike-ride-unlock"
}
]
```
3. **创建EventBridge事件总线**:
- 导航到EventBridge控制台,在“Events”下点击“Event busses”,然后点击“Create event bus”按钮。
- 输入事件总线名称 `bike-ride-unlock`,留空基于资源的策略,点击“Create”按钮。
4. **设置事件规则**:
- 导航到“Rules”并点击“Create rule”按钮。
- 为事件命名为 `station100Rule`。
- 在“Event matching pattern”下选择“Custom Pattern”,在“Event pattern”中输入以下模式:
```json
{
"source": [ "com.smartbike.maintenance" ],
"detail-type": [ "unlockDockingStation" ],
"detail": { "stationId": [ "100" ] }
}
```
- 在“Select event bus”下点击“Custom or Partner event bus”,从下拉菜单中选择 `bike-ride-unlock` 事件总线。
- 在“Select targets”的第一个下拉菜单中选择 `station100stream`。EventBridge需要IAM权限才能将记录放入Kinesis,它会创建特定角色,保持默认设置即可,点击“Create”按钮。
- 重复上述步骤创建 `station200Rule`,并选择 `station200stream` 作为相应的流,确保 `station200Rule` 中的 `stationId` 值为200。
#### 4. 测试规则
1. **创建测试
0
0
复制全文
相关推荐









