ECS 任务 / Lambda / Fargate / Athena / Glue
、一、题目核心(隐含目标)
你被告知某个 “纽约打车公司数据分析平台” 出现问题:
-
数据上传到了 S3,但 后续流程不工作
-
包括 ECS 任务 / Lambda / Fargate / Athena / Glue 等服务
-
要你找到 中断点 + 修复方法
二、排错思路总览(五步法)
我们分为 5 个关键组件进行排查
步骤 1:S3 数据上传是否成功?
检查:
-
文件是否出现在 S3 bucket 中?格式是否正确(如
.csv
,.parquet
)? -
触发事件是否配置(如 Lambda Trigger)?
常见错误:
问题 | 解决方式 |
---|---|
Lambda 没被触发 | 检查 S3 事件通知是否启用 |
上传路径不对 | 检查 bucket 中对象前缀(path) |
权限不足 | Lambda 是否有 s3:GetObject 权限? |
步骤 2:Lambda 处理失败(或根本未触发)
检查 CloudWatch Logs:
aws logs describe-log-groups
aws logs tail /aws/lambda/<your-function-name> --follow
典型报错:
报错 | 含义 |
---|---|
AccessDenied | Lambda 没权限访问 S3 / ECS |
Invalid JSON | 处理的数据格式不对 |
Timeout | Lambda 超时,应调大 timeout |
步骤 3:ECS / Fargate 任务未触发或失败
检查任务状态:
aws ecs describe-tasks --cluster <your-cluster-name>
重点关注:
-
任务定义中 container 镜像是否拉取失败?
-
镜像是否存在于 ECR?
-
子网 / 安全组 / 网络模式是否配置正确?
-
日志写入 CloudWatch 吗?
步骤 4:IAM 权限问题
常见权限错误:
错误组件 | 应检查权限 |
---|---|
Lambda | s3:GetObject , ecs:RunTask , iam:PassRole |
ECS 任务角色 | logs:PutLogEvents , s3:GetObject , dynamodb:PutItem |
Athena 查询 | s3:ListBucket , glue:GetTable , athena:StartQueryExecution |
使用 IAM Policy Simulator 快速验证权限:
https://policysim.aws.amazon.com
步骤 5:Glue/Athena 查询失败(用于分析结果)
检查:
-
Glue Catalog 表是否与 S3 数据格式匹配?
-
Athena 查询是否失败?检查 CloudTrail 或 Athena 控制台
-
查询失败报错信息(如 “table not found”, “malformed row”)
三、典型报错 + 正确修复建议(常考)
报错 | 根因 | 修复建议 |
---|---|---|
Lambda 报 403 | IAM 权限不全 | 给执行角色加 s3:GetObject , ecs:RunTask |
ECS 任务 pending | 没有可用子网 / CPU 不够 | 修改任务定义,绑定 Fargate + 合理配置 CPU |
无日志输出 | 没配 CloudWatch 日志组 | 更新 task definition 加日志配置 |
Athena 查询为空 | 数据没落地 / 分区没刷新 | 修 Glue 表 / 加 partition 信息 |
四、常用命令速查表
# 查看 ECS 任务状态
aws ecs describe-tasks --tasks <task-id> --cluster <cluster-name># 查看 S3 中文件
aws s3 ls s3://nyc-taxi-data-bucket/# 查看 Lambda 日志
aws logs tail /aws/lambda/<lambda-name> --follow# 查看 Glue 表
aws glue get-table --database-name nycdb --name trips
五、答题技巧(适用于考试或挑战题)
题型 | 答题技巧 |
---|---|
Lambda 报错题 | 看日志里是否是权限问题 / 网络问题 |
S3 未触发 | 看 bucket notification 设置是否生效 |
ECS 问题 | 看任务定义 + 网络配置 + 镜像拉取情况 |
Athena 问题 | 检查 Glue 表 / 文件格式是否对齐 |
总结口诀(NYC Taxi 数据管道排错口诀)
S3 是源头,Lambda 是触发,ECS 是处理,IAM 要放权,Athena 最终查结果。