如何为AWS CloudFormation堆栈和资源实施特定于区域的配置

问题描述 投票:0回答:1

场景:

  1. 我们需要使用某些资源集创建CloudFormation堆栈例如Lambda,API网关,DynamoDB,ElasticSearch等。
  2. 这些堆栈需要部署在多个区域中,以实现更多特定的5个不同地区,例如俄勒冈州,悉尼等。
  3. 每个堆叠根据区域(例如区域)具有不同的配置每个区域的DynamoDB自动缩放值均不同,并且Lambda并发性或ElasticSearch等的实例类型是特定于区域的。

我们目前在做什么:

当前,我们有一个CloudFormation模板,其中为区域特定值定义了Mappings。也就是说,我们使用if-else之类的condition functions来检查当前AWS区域,并基于此选择该区域的映射。

问题:

  • 随着需求的增长,越来越多的地区需要映射也在增加
  • 对于每个要添加的新资源,我们需要更新映射以添加新资源的配置
  • 支持多个区域和资源配置以及条件变得难以处理

期望:

我们正在寻找一种全面的解决方案,以使用相同的CloudFormation模板来支持多个区域,并且需要摆脱映射并找到更可管理的方式来处理区域特定的配置。

非常感谢您的帮助。

javascript amazon-web-services aws-lambda amazon-cloudformation devops
1个回答
1
投票

您可以使用SSM参数来解决您的问题。如果您不知道,SSM允许您将参数存储在AWS环境中。参数范围是每个区域。该过程将是:

  1. 创建具有所有参数的CloudFormation模板。使用该区域的定义值在每个区域中创建堆栈;
  2. 更改当前模板以从参数存储而不是参数映射中读取参数;
  3. 创建您的主堆栈。

您可以找到有关此功能的更多信息here

© www.soinside.com 2019 - 2024. All rights reserved.