我如何基于AWS构建了一个级联的数据管道(第2部分)

AWS级联数据管道构建(第2部分)

自动、可扩展和强大

Mehmet Ali Peker在Unsplash上的照片

之前,我分享了我使用AWS CloudFormation技术开发数据流水线的经验。然而,这并不是一种最佳的方法,因为它留下了3个待解决的问题:

  1. 部署必须手动执行,这可能增加错误的机会;
  2. 所有资源都在一个单一的堆栈中创建,没有适当的边界和层次;随着开发周期的进行,资源堆栈将变得更重,管理起来将是一场灾难;
  3. 许多资源应该在其他项目中得到维护和重复使用。

简而言之,我们将以敏捷的方式提高这个项目的可管理性和可重复使用性。

解决方案

AWS允许用户实现两种CloudFormation结构模式:跨堆栈引用和嵌套堆叠。跨堆栈引用是指一种在开发云堆栈时独立进行设计的方式,通常是相互独立的,而所有堆栈中的资源可以根据引用关系相互关联。嵌套堆叠是指由其他堆栈组成的CloudFormation堆栈。它是通过使用AWS::CloudFormation::Stack资源实现的。

现实生活中的嵌套堆栈:充满嵌套/蛋的鸟巢(Giorgi Iremadze在Unsplash上的照片)

由于我们的一个使命是提供更好的项目管理,因此项目将通过分层分离进行拆分,而嵌套堆叠是帮助实现这一目标的方法。然而,考虑到现有堆栈中的工件之间的内在相互关系,我们还需要引入一些跨堆栈引用。

实施

我们创建了3个Lambda函数、3个DynamoDB表、1个IAM角色以及附加的策略,多个SQS队列和多个Cloudwatch警报。由于函数本身的复杂性,在此版本中,它们将在单独的模板中定义,仅由它们自己使用的服务包括警报和死信队列。除此之外,IAM资源将会…