【发布时间】: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