yaml - Fn::Foreach 具有内部函数参数 | Fn::GetAZ |找不到集合

标签 yaml aws-cloudformation

我正在尝试根据Fn::GetAZs'集合动态生成资源:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::LanguageExtensions'
Resources:
  Fn::ForEach::CreateSecurityGroups:
    - 'AZIndex'
    - Fn::Split: [",", Fn::GetAZs: !Ref "AWS::Region"]
    - Fn::Sub: SecurityGroup${AZIndex}
      Type: 'AWS::EC2::SecurityGroup'
      Properties:
        GroupDescription: 'SecurityGroup-${AZIndex}'
        GroupName: 
          Fn::Sub: 'SecurityGroup-${AZIndex}'

但是堆栈创建失败,并且在事件中错误是:

转换 AWS::LanguageExtensions 失败:找不到集合或无法解析 Fn::ForEach

如何解决这个问题?

我尝试过的其他方法

所有这些都会重现相同类型的错误。

- Fn::Join:
  - ","
  - Fn::GetAZs: ''

- Fn::GetAZs:
    Ref: 'AWS::Region'

- Fn::GetAZs: ''

最佳答案

我认为该问题是由使用内联 Fn::Sub 引起的,非伪参数不支持该内联函数。这应该有效:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::LanguageExtensions'
Resources:
  Fn::ForEach::CreateSecurityGroups:
    - 'AZIndex'
    - Fn::Split: [",", Fn::GetAZs: !Ref "AWS::Region"]
    - 'SecurityGroup${AZIndex}'
      Type: 'AWS::EC2::SecurityGroup'
      Properties:
        GroupDescription: 'SecurityGroup-${AZIndex}'
        GroupName: 
          Fn::Sub: 'SecurityGroup-${AZIndex}'

关于yaml - Fn::Foreach 具有内部函数参数 | Fn::GetAZ |找不到集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77175451/

相关文章:

使用 log4j 和 log4j.yaml 进行 java 日志记录

gitlab - 当 GItlab CI 上一阶段失败时阻止部署

json - 将yaml转换为不带结构的json

amazon-web-services - 尝试使用 cloudformation 在 AWS greengrass 版本 2 中创建物联网组件时出错

amazon-web-services - AWS-cloudformation "import existing resource"给出错误

amazon-web-services - 如何在 cloudformation 脚本的输出部分引用记录集名称?

amazon-web-services - 无服务器框架1.0 : Converting Cloudformation to Yaml for AWS Firehose

go - 这个命令 'GOFLAGS=-mod=mod' 是做什么的?

amazon-web-services - 如何组织云阵模板?

amazon-web-services - 角色无权在 KinesisStream 上执行DescribeStream