如何通过SAM模板传入城市列表批量创建CloudFormation日志组?
通过城市列表参数批量创建CloudFormation日志组
实现步骤
定义城市列表参数
使用CommaDelimitedList类型参数接收逗号分隔的城市名称,限制最多50个条目:批量生成日志组资源
借助CloudFormation的Fn::ForEach循环语法(需启用AWS::LanguageExtensions转换),遍历城市列表为每个城市创建对应日志组。
完整SAM模板示例
AWSTemplateFormatVersion: '2010-09-09' Transform: - AWS::Serverless-2016-10-31 - AWS::LanguageExtensions # 支持Fn::ForEach循环的必要转换 Parameters: CityList: Type: CommaDelimitedList Description: 逗号分隔的城市名称列表,最多50个城市 MaxItems: 50 Default: London,New York,Dubai Resources: # 遍历城市列表批量创建日志组 Fn::ForEach::Cities: - City - !Ref CityList - !Sub '${City}LogGroup': Type: AWS::Logs::LogGroup Properties: LogGroupName: !Sub '/aws/ecs/${City}' RetentionInDays: 30 # 可按需调整日志保留天数
关键说明
AWS::LanguageExtensions转换必须添加,否则Fn::ForEach循环无法生效;- 日志组名称严格按照
/aws/ecs/{城市名}格式生成,包含空格的城市名(如New York)也能正常处理; CityList参数的MaxItems设为50,满足最多50个城市的需求;- 可根据实际需求修改日志组的
RetentionInDays等属性。
内容的提问来源于stack exchange,提问作者Luv
相关产品推荐
相关产品推荐

