Github Action部署ECS服务报错:Unsupported deployment controller: ECS
解决GitHub Action部署ECS服务报错
Error: Unsupported deployment controller: ECS 问题背景
使用aws-actions/amazon-ecs-deploy-task-definition@v1部署ECS服务数月正常,今日突然报错Error: Unsupported deployment controller: ECS,未修改工作流,手动在AWS控制台更新服务正常。
可能原因
该Action的v1分支近期更新了逻辑,新增了部署控制器类型的校验,默认不再自动兼容ECS部署控制器(这是ECS服务的默认控制器),导致未显式指定参数时触发错误。
解决方案
1. 显式指定部署控制器类型
在部署步骤中添加deployment-controller-type: ECS参数,强制指定使用ECS部署控制器,修改后的工作流步骤如下:
- name: Deploy Amazon ECS task definition uses: aws-actions/amazon-ecs-deploy-task-definition@v1 with: task-definition: ${{ steps.task-def.outputs.task-definition }} service: ${{ env.ECS_SERVICE }} cluster: ${{ env.ECS_CLUSTER }} wait-for-service-stability: true deployment-controller-type: ECS
2. 锁定Action到稳定旧版本
如果不想修改参数,可以将Action版本从@v1锁定到之前能正常运行的具体提交版本。找到之前成功执行的工作流记录,复制该Action对应的提交哈希,替换为:
uses: aws-actions/amazon-ecs-deploy-task-definition@<具体提交哈希>
这样可以避免后续Action更新带来的兼容性问题。
3. 确认ECS服务部署控制器配置(可选)
虽然手动更新正常,但可快速确认服务配置:
- 登录AWS控制台,进入目标ECS集群
- 找到对应服务,查看「部署控制器」配置,确认类型为「ECS」(默认配置)
若配置无误,可排除服务本身的问题。
内容的提问来源于stack exchange,提问作者Markoorn
相关产品推荐
相关产品推荐

