确保容器存在并且镜像名称和标记没有拼写错误。可以在 EC2 实例上尝试手动拉取并运行容器以确认镜像是否可用。
确保实例拥有运行任务所需的 IAM 权限。
检查 ECS 任务定义中使用的容器映像名称和标记是否与 Dockerfile 文件一致。
检查 ECS 计划任务是否正确配置。可以尝试强制更新计划任务以确保最新的映像被使用。
以下是从 AWS Step Functions 启动 ECS 任务时拉取容器的示例代码:
{
"StartAt": "RunEcsTask",
"States": {
"RunEcsTask": {
"Type": "Task",
"Resource": "your_ecs_task_arn",
"Parameters": {
"LaunchType": "FARGATE",
"PlatformVersion": "1.4.0",
"TaskDefinitionArn": "your_task_definition_arn"
},
"End": true,
"Catch": [{
"ErrorEquals": ["States.ALL"],
"Next": "HandleError"
}]
},
"HandleError": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Parameters": {
"FunctionName": "your_error_handler_function_arn",
"Payload": {
"Error": "TaskFailed"
}
},
"End": true
}
}
}