AWS CDK同部署代码创建多ECS任务、Loki/Grafana部署及错误排查
ECS部署相关问题解答
同一份CDK代码创建多ECS任务说明
你完全可以在同一份CDK部署代码中创建2个及以上的ECS任务,不需要为每个ECS任务编写独立的应用代码。你可以在同一个CDK Stack中定义多个FargateTaskDefinition或Ec2TaskDefinition实例,分别为每个任务配置对应的容器镜像、端口映射、资源配额、挂载卷等参数即可,所有ECS相关资源都可以在同一套代码中统一管理。
Loki与Grafana部署方案说明
分开部署为两个独立ECS任务是可行的,也是更推荐的方案。单ECS任务内运行多容器仅适用于强耦合的sidecar场景(如日志代理、服务网格代理等和主容器绑定的辅助组件),Loki和Grafana是两个独立的服务,二者的扩缩容策略、生命周期、升级节奏都不相同,分开部署灵活度更高。你计划的共用ALB、通过不同监听器规则分别转发到两个服务的方案完全可以正常运行。
cdk.json解析错误解决方案
所有报错均为JSON语法错误,JSON规范不允许未闭合的括号、多余的分号、错误的字段类型、未转义的特殊字符,按以下步骤排查即可:
- 第一次报错
Expecting '}', ',', got ']'的原因是你在某一层对象未完成闭合时提前写了数组闭合符],检查文件第192行附近的结构,确认所有{都有对应的},数组内的对象之间用逗号分隔,最后一个数组元素后不要加多余的逗号。 - 第二次报错
Expecting 'STRING', got '{'的原因是你在要求字符串类型的字段位置错误传入了对象,检查第190行附近的appGrafana字段,确认该字段的值为字符串类型,不要额外套{}。 - 执行
cdk ls/cdk diff时的Unexpected token ; in JSON at position 5660报错是因为你在JSON文件中写入了非法的分号,找到文件字符位置5660附近的分号直接删除即可。 - 你也可以直接用IDE自带的JSON校验功能,语法错误位置会直接标红提示,调整到所有校验提示消失即可正常运行CDK命令。
内容的提问来源于stack exchange,提问作者Ashish Karpe
相关产品推荐
相关产品推荐

