目录
[■AWS ECS 【CLI】的具体操作部分(三个步骤)](#■AWS ECS 【CLI】的具体操作部分(三个步骤))
[什么是 CLI?](#什么是 CLI?)
[1. 注册新任务定义 (Register New Task Definition)](#1. 注册新任务定义 (Register New Task Definition))
[使用 AWS CLI 注册](#使用 AWS CLI 注册)
[2. 更新服务使用新任务定义 (Update Service with New Task Definition)](#2. 更新服务使用新任务定义 (Update Service with New Task Definition))
[使用 AWS CLI 更新](#使用 AWS CLI 更新)
[3. 查询服务状态验证部署 (Verify Deployment Status)](#3. 查询服务状态验证部署 (Verify Deployment Status))
[使用 AWS CLI 查询](#使用 AWS CLI 查询)
================
■简介:什么是ECS
-
集群 (Cluster) :您容器应用运行的基础设施集合,可以是一组 EC2 实例(需要您管理服务器),也可以使用AWS Fargate 这种无服务器模式(无需管理服务器,只需为资源付费)。
-
任务定义 (Task Definition):一份描述您的应用如何运行的"蓝图",类似于 Docker Compose 文件。它定义了使用哪个镜像、需要多少 CPU 和内存、开放哪些端口以及环境变量等。
-
服务 (Service):负责确保指定数量的任务(即基于任务定义运行的容器实例)始终处于运行状态。它还会与负载均衡器集成,实现流量分发和滚动更新

==========
■控制台操作
=================

==========

============

==========
■AWS ECS 【CLI】的具体操作部分(三个步骤)
什么是 CLI?
CLI 是 Command Line Interface (命令行界面)的缩写。它是一种基于文本的交互工具,允许用户通过输入命令来与操作系统或云服务进行交互。在 AWS 中,AWS CLI 是一个官方提供的命令行工具,您可以在本地终端或 CI/CD 环境中使用它来管理 AWS 资源(如 ECS、EC2、S3 等),而无需登录 AWS 管理控制台。使用 CLI 可以实现自动化、可重复的部署操作。
1. 注册新任务定义 (Register New Task Definition)
任务定义是部署到 ECS 的"蓝图",它描述了您的容器应用如何运行,包括:
-
容器镜像地址(如您的 Liberty 镜像)
-
容器所需的 CPU 和内存
-
端口映射
-
环境变量
-
启动命令等
当您修改了应用配置或镜像版本时,就需要创建一个新版本的任务定义。
使用 AWS CLI 注册
首先,准备一个 JSON 文件(例如 task-definition.json),内容类似:
javascript
json
{
"family": "my-liberty-app",
"networkMode": "awsvpc",
"requiresCompatibilities": ["FARGATE"],
"cpu": "1024",
"memory": "3072",
"executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole",
"containerDefinitions": [
{
"name": "liberty-container",
"image": "icr.io/appcafe/websphere-liberty:25.0.0.12-full-java21-openj9-ubi-minimal",
"portMappings": [
{
"containerPort": 9080,
"protocol": "tcp"
}
],
"essential": true
}
]
}
然后执行命令:
bash
aws ecs register-task-definition --cli-input-json file://task-definition.json
成功后,AWS 会返回新注册的任务定义 ARN 和版本号(如 my-liberty-app:3)。
控制台操作 :
进入 ECS → 任务定义 → 创建新任务定义,填写相关信息后保存,会自动生成一个新版本。
======================
2. 更新服务使用新任务定义 (Update Service with New Task Definition)
服务负责维护指定数量的任务实例。当您需要发布新版本时,只需更新服务引用的任务定义版本,ECS 会自动执行滚动更新(逐步停止旧任务、启动新任务)。
使用 AWS CLI 更新
bash
aws ecs update-service \
--cluster MyCluster \
--service MyService \
--task-definition my-liberty-app:3 \
--force-new-deployment
===
控制台操作 :
进入集群 → 选择服务 → 点击"更新 (Update)",在"任务定义"下拉列表中选择新版本,然后按照向导完成更新。
===
3. 查询服务状态验证部署 (Verify Deployment Status)
更新服务后,您需要监控部署进度,确保新版本任务正常运行,且旧版本任务已终止。
使用 AWS CLI 查询
查看服务状态:
bash
aws ecs describe-services --cluster MyCluster --services MyService
===
-
services[].deployments:列出正在进行的部署,包括任务定义、状态(PRIMARY/ACTIVE)、滚动更新的统计(如runningCount,desiredCount)。 -
services[].events:最近的服务事件日志,包含任务启动/停止信息。 -
services[].runningCount:当前运行的任务数,应等于desiredCount。
====
查看具体任务列表:
bash
aws ecs list-tasks --cluster MyCluster --service-name MyService
查看单个任务详情:
bash
aws ecs describe-tasks --cluster MyCluster --tasks <task-arn>
可以检查任务的 lastStatus 是否为 RUNNING,healthStatus 是否为 HEALTHY(如果配置了健康检查)。
控制台操作 :
进入集群 → 选择服务 → 查看"部署"标签页和"事件"标签页,可以看到正在进行的部署进度和最新事件;点击"任务"标签页可以查看所有任务实例的状态。
====
总结
这三个步骤构成了 ECS 应用更新的核心循环:
-
注册新任务定义(记录应用新版本配置)
-
更新 服务引用该新版本(触发滚动部署) // 注册后跟新,才能生效
-
查询 服务状态确保部署成功(监控并验证) // 并非必须操作
您可以将这些命令集成到 CI/CD 流水线(如 Jenkins、GitHub Actions)中,实现全自动化的持续部署。如果过程中遇到权限不足等问题,请检查 IAM 角色是否包含 ecs:RegisterTaskDefinition、ecs:UpdateService、ecs:DescribeServices 等权限。
====