【问题标题】:Cloudformation conditional statementCloudformation 条件语句
【发布时间】:2021-09-09 07:03:43
【问题描述】:

我正在尝试使用用于登录 ECS TaskDefination 的条件语句为 ECS 服务创建堆栈。我正在尝试根据环境将日志发送到不同的来源,但在堆栈更新期间它失败了。

错误 资源处理程序返回消息:“模型验证失败(#/ContainerDefinitions/0/Memory:预期类型:Number,找到:String #/ContainerDefinitions/0/Cpu:预期类型:Number,找到:String #/ContainerDefinitions/0 /LogConfiguration:预期类型:JSONObject,找到:JSONArray #/ContainerDefinitions/0/PortMappings/0/ContainerPort:预期类型:Number,找到:String)"

Conditions:
  HasDefaultLog:
    !Or [ !Equals [ !Ref EnvType, 'Prod' ], !Equals [ !Ref EnvType, 'Dev' ], !Equals [ !Ref EnvType, 'Sit' ] ]

ContainerDefinitions:
        - Name: !Ref 'ServiceName'
          Cpu: !Ref 'ContainerCpu'
          Memory: !Ref 'ContainerMemory'
          Image: !Ref 'ImageUrl'
          PortMappings:
            - ContainerPort: !Ref 'ContainerPort'
          LogConfiguration:
            -
              Fn::If:
                - HasDefaultLog
                -
                  LogDriver: !Ref LogDriver
                  Options:
                    syslog-address: !Ref LogDestination
                    tag:  !Ref ServiceName
                -
                  LogDriver: awsfirelens
                  Options:
                    Name: newlogdriver

同样适用于下面,并且能够看到目标中的日志

LogConfiguration:
  LogDriver: !Ref LogDriver
  Options:
    syslog-address: !Ref LogDestination
    tag:  !Ref ServiceName

【问题讨论】:

    标签: amazon-web-services amazon-cloudformation amazon-ecs


    【解决方案1】:

    LogConfiguration 是对象,而不是对象列表。 sp开头不用-

              LogConfiguration:
                  Fn::If:
                    - HasDefaultLog
                    -
                      LogDriver: !Ref LogDriver
                      Options:
                        syslog-address: !Ref LogDestination
                        tag:  !Ref ServiceName
                    -
                      LogDriver: awsfirelens
                      Options:
                        Name: newlogdriver
    

    【讨论】:

      猜你喜欢
      • 2021-09-29
      • 2021-07-31
      • 2023-02-23
      • 1970-01-01
      • 2016-06-25
      • 2013-03-09
      • 2011-05-29
      • 2012-07-16
      相关资源
      最近更新 更多