未为任务创建 ECS awslogs 日志组
ECS awslogs Log group not being created for Task
这是我的任务定义的一部分:
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/main-frontend-production-php",
"awslogs-region": "us-west-1",
"awslogs-stream-prefix": "ecs",
"awslogs-create-group": "true"
}
},
如果我在 aws 控制台中查看任务,它说日志驱动程序是 awslogs 并且在我单击它时立即显示“在 cloudwatch 中查看日志”我收到错误消息:There was an error getting log events. The specified log group does not exist.
并且没有日志。
有点不知所措,看来是这样的:https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_awslogs.html我做的对吗?
现在我的任务停留在“待定”状态,我没有可以查看的日志来找出原因。
这将由于写入 CloudWatch 日志的权限无效而发生。
您必须将权限附加到您正在使用的角色。
如果您不确定如何执行此操作,请参阅 Using CloudWatch Logs with container instances 文档。
导致此错误的可能原因是错误似乎是容器实例能够获取日志组列表。
- 确保容器和日志组在同一区域
us-west-1
。
- 确保容器有创建日志组的权限
- 只是为了缩小问题范围,只需使用 aws cli 或 aws 控制台创建日志组
/ecs/main-frontend-production-php
,这样您就会知道实际原因,因为区域或权限。
aws logs create-log-group --log-group-name /ecs/main-frontend-production-php --region us-west-1
政策应该类似于
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
好吧,我终于想通了。我没有云监视日志的原因是因为图像没有从 ECR 中提取。我一直认为“最新”是一些神奇的 docker 标签。显然不是,我必须实际标记它最新才能找到它。
我想 cloudwatch 日志本来可以一直工作的,但是镜像拉不出来,所以没有日志可言。
这是我的任务定义的一部分:
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/main-frontend-production-php",
"awslogs-region": "us-west-1",
"awslogs-stream-prefix": "ecs",
"awslogs-create-group": "true"
}
},
如果我在 aws 控制台中查看任务,它说日志驱动程序是 awslogs 并且在我单击它时立即显示“在 cloudwatch 中查看日志”我收到错误消息:There was an error getting log events. The specified log group does not exist.
并且没有日志。
有点不知所措,看来是这样的:https://docs.aws.amazon.com/AmazonECS/latest/userguide/using_awslogs.html我做的对吗?
现在我的任务停留在“待定”状态,我没有可以查看的日志来找出原因。
这将由于写入 CloudWatch 日志的权限无效而发生。
您必须将权限附加到您正在使用的角色。
如果您不确定如何执行此操作,请参阅 Using CloudWatch Logs with container instances 文档。
导致此错误的可能原因是错误似乎是容器实例能够获取日志组列表。
- 确保容器和日志组在同一区域
us-west-1
。 - 确保容器有创建日志组的权限
- 只是为了缩小问题范围,只需使用 aws cli 或 aws 控制台创建日志组
/ecs/main-frontend-production-php
,这样您就会知道实际原因,因为区域或权限。
aws logs create-log-group --log-group-name /ecs/main-frontend-production-php --region us-west-1
政策应该类似于
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogStreams"
],
"Resource": [
"arn:aws:logs:*:*:*"
]
}
]
}
好吧,我终于想通了。我没有云监视日志的原因是因为图像没有从 ECR 中提取。我一直认为“最新”是一些神奇的 docker 标签。显然不是,我必须实际标记它最新才能找到它。
我想 cloudwatch 日志本来可以一直工作的,但是镜像拉不出来,所以没有日志可言。