当前位置: 首页 > 知识库问答 >
问题:

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

羊和光
2023-03-14

脚本:

  1. 我们需要使用某些资源集(如Lambda,API Gateway,DynamoDB,ElasticSearch等)创建CloudFormation堆栈。
  2. 这些堆栈需要部署在多个区域,更具体地说是 5 个不同的区域,如俄勒冈州、悉尼等。
  3. 每个
  4. 堆栈都有基于区域的不同配置,例如,每个区域的 DynamoDB 自动扩展值不同,而 Lambda 并发或 ElasticSearch 的实例类型等是特定于区域的。

我们目前在做什么:

目前,我们有一个 CloudFormation 模板,其中包含为区域特定值定义的映射。即我们使用 if-else 等条件函数来检查当前 AWS 区域,并在此基础上选择该区域的映射。

问题:

  • 随着需要支持越来越多的区域,映射的大小也在增加
  • 对于每个添加的新资源,我们需要更新映射以添加新资源的配置
  • 支持多个区域和资源配置,条件变得无法管理

期望:

我们正在寻找一个全面的解决方案来支持使用相同Cloud

非常感谢您的帮助。

共有1个答案

董桐
2023-03-14

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

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

您可以在此处找到有关此功能的更多信息。

 类似资料:
  • 问题: 最近,我们遇到了一个问题,即您可以在单个云形成模板中声明的最大资源数量。一个模板最多可以支持200个资源,我们非常接近这个限制。 为了指定更多资源,我们需要使用嵌套堆栈将模板拆分为多个模板,我们正在评估分解模板的最佳方法。 我们的做法: 我们已经从我们的主堆栈创建了一个嵌套堆栈,并从主堆栈中删除了一些资源并将它们添加到新的嵌套堆栈中。 错误: 我们在嵌套堆栈中遇到了一个错误。 资源已存在于

  • 问题内容: 在JavaScript中实现堆栈和队列的最佳方法是什么? 我正在寻找shunting-yard算法,并且我将需要这些数据结构。 问题答案: var stack = []; stack.push(2); // stack is now [2] stack.push(5); // stack is now [2, 5] var i = stack.pop(); // stack is no

  • 在C语言中,我可以用下面的小程序来耗尽堆栈内存区域(我的Mac中堆栈大小的限制是8MB) 由于数组是Java也是一个对象,它的元素存储在堆中。根据Oracle的文档,默认的线程堆栈大小在MAC中为512KB。是否有任何程序可以耗尽堆栈大小?

  • 本文向大家介绍iOS堆和栈的区别 ?相关面试题,主要包含被问及iOS堆和栈的区别 ?时的应答技巧和注意事项,需要的朋友参考一下 管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。 申请大小: 栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的

  • 本文向大家介绍C 堆和栈的区别相关面试题,主要包含被问及C 堆和栈的区别时的应答技巧和注意事项,需要的朋友参考一下 (1)申请方式 stack: 由系统自动分配。例如,声明在函数中一个局部变量 int b; 系统自动在栈中为b开辟空间 heap: 需要程序员自己申请,并指明大小,在c中malloc函数 (2)申请后系统的响应 栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提

  • 问题描述 (Problem Description) 如何实现堆栈? 解决方案 (Solution) 下面的示例演示如何通过创建用户定义的push()方法来输入元素来实现堆栈,以及pop()方法从堆栈中检索元素。 public class MyStack { private int maxSize; private long[] stackArray; private int t

  • 本文向大家介绍js如何实现打印指定的区域?相关面试题,主要包含被问及js如何实现打印指定的区域?时的应答技巧和注意事项,需要的朋友参考一下 css setting query print , hidden unwanted print DOM; call , OR using Chrome right-click menu js https://developer.mozilla.org/en-U

  • 本文向大家介绍C#中堆和栈的区别?相关面试题,主要包含被问及C#中堆和栈的区别?时的应答技巧和注意事项,需要的朋友参考一下 答 栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。 堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。   存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护; 堆是无序的,他是一片不连续