Javascript 如何为AWS云信息堆栈和资源实施特定于区域的配置
场景:Javascript 如何为AWS云信息堆栈和资源实施特定于区域的配置,javascript,amazon-web-services,aws-lambda,amazon-cloudformation,devops,Javascript,Amazon Web Services,Aws Lambda,Amazon Cloudformation,Devops,场景: 我们需要使用特定的资源集创建CloudFormation堆栈 如Lambda、API网关、DynamoDB、ElasticSearch等 这些堆栈需要部署在多个区域中,以实现更大的扩展 具体包括俄勒冈州、悉尼等5个不同地区 每个堆栈根据区域具有不同的配置,例如。 DynamoDB自动缩放值对于每个区域和 ElasticSearch等的Lambda并发或实例类型是特定于区域的 我们目前正在做什么: 目前,我们有一个单一的CloudFormation模板,其中定义了特定于区域的值。 i、 e
- 随着需求的增长,支持越来越多的 映射也在增加
- 对于添加的每个新资源,我们需要更新要添加的映射 新资源的配置
- 支持多个区域和资源配置以及 情况变得难以管理
非常感谢您的帮助。您可以使用SSM参数来解决您的问题。如果您不知道,SSM允许您在AWS环境中存储参数。这些参数适用于每个区域。程序将是:
您可以找到有关此功能的更多信息。您是否考虑过使用CDK生成特定于区域的模板?您可能会发现最终结果比一个带有许多条件的复杂模板更干净、更易于维护。谢谢。使用CDK是一个不错的选择,但它需要我们重写当前处于CloudInformation中的整个基础架构。对于长期目标,我们可以考虑使用CDK,但你能建议一些减少当前平原。映射,而容易膨胀,是罚款本身。如果不想使用CDK,请结合AWS组织查看Stackset:如果映射存在问题,那么非CDK选项可能是稍微分解模板,并使用jinja2等模板引擎使用条件插入重新组合模板。一开始听起来可能很复杂,但实际上很简单。您将拥有一个主模板,然后是一些较小的模板,并且您将使用常规模板功能(如
{%include%}
)以编程方式将它们注入主模板中的相关位置,并使用相关值,并将运行时值传入。这样,您现有的模板将基本保持不变。SSM参数存储非常适合该用例,只是我使用脚本而不是Cloudformation模板在所有区域创建了参数,