我如何基于AWS构建了一个级联的数据管道(第2部分)
AWS级联数据管道构建(第2部分)
自动、可扩展和强大
之前,我分享了我使用AWS CloudFormation技术开发数据流水线的经验。然而,这并不是一种最佳的方法,因为它留下了3个待解决的问题:
- 部署必须手动执行,这可能增加错误的机会;
- 所有资源都在一个单一的堆栈中创建,没有适当的边界和层次;随着开发周期的进行,资源堆栈将变得更重,管理起来将是一场灾难;
- 许多资源应该在其他项目中得到维护和重复使用。
简而言之,我们将以敏捷的方式提高这个项目的可管理性和可重复使用性。
解决方案
AWS允许用户实现两种CloudFormation结构模式:跨堆栈引用和嵌套堆叠。跨堆栈引用是指一种在开发云堆栈时独立进行设计的方式,通常是相互独立的,而所有堆栈中的资源可以根据引用关系相互关联。嵌套堆叠是指由其他堆栈组成的CloudFormation堆栈。它是通过使用AWS::CloudFormation::Stack
资源实现的。
由于我们的一个使命是提供更好的项目管理,因此项目将通过分层分离进行拆分,而嵌套堆叠是帮助实现这一目标的方法。然而,考虑到现有堆栈中的工件之间的内在相互关系,我们还需要引入一些跨堆栈引用。
实施
我们创建了3个Lambda函数、3个DynamoDB表、1个IAM角色以及附加的策略,多个SQS队列和多个Cloudwatch警报。由于函数本身的复杂性,在此版本中,它们将在单独的模板中定义,仅由它们自己使用的服务包括警报和死信队列。除此之外,IAM资源将会…