簡體   English   中英

Cloudformation 條件語句

[英]Cloudformation conditional statement

我正在嘗試使用用於登錄 ECS TaskDefination 的條件語句為 ECS 服務創建堆棧。 我正在嘗試根據環境將日志發送到不同的來源,但在堆棧更新期間失敗。

錯誤資源處理程序返回消息:“模型驗證失敗(#/ContainerDefinitions/0/Memory:預期類型:數字,找到:字符串#/ContainerDefinitions/0/Cpu:預期類型:數字,找到:字符串#/ContainerDefinitions/0/LogConfiguration :預期類型:JSONObject,發現:JSONArray #/ContainerDefinitions/0/PortMappings/0/ContainerPort:預期類型:數字,發現:字符串)”

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

LogConfiguration是對象,而不是對象列表。 您不需要的 Sp -開始時:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM