ECS AWS CloudWatch:指定的日志流不存在

问题描述 投票:0回答:1

我从 Fargate 实例过渡到 EC2 实例,并从头开始我的 ECS 集群配置和 ECS 任务配置。

这是错误:

There was an error while retrieving logs from log stream: 
ecs/cu-now/e54e6c928fa54 in log group: cu-now-dev.
The specified log stream does not exist.

而在我的 ECS 任务配置中,我已指定上述日志流。此外,当我使用 Fargate 实例时,该日志流工作得很好。

            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-group": "cu-now-dev",
                    "awslogs-region": "us-east-1",
                    "awslogs-stream-prefix": "ecs"
                },
                "secretOptions": []
            }

我的任务角色具有以下权限,作为我添加的 CloudWatchLogsFullAccess 策略的一部分:

logs:CreateLogStream
logs:PutLogEvents permissions

此外,当我在服务启动后尝试启动任务时,我无限期地陷入待处理状态 - 不确定这个问题是否与 OP 有关。

amazon-ec2 amazon-ecs amazon-cloudwatch amazon-cloudwatchlogs ecs-taskdefinition
1个回答
0
投票

任务角色根本不需要这些权限。当您部署到 Fargate 时,任务执行角色需要这些权限。现在您正在部署到 EC2,ECS 实例角色需要这些权限。

请参阅我的回答此处,了解有关这三个角色差异的更多详细信息。

您还应该验证是否有 EC2 实例已成功注册到 ECS 集群。如果 EC2 实例未正确启动,或未成功注册到 ECS 集群,则可能会导致您的任务陷入 Pending 状态。

© www.soinside.com 2019 - 2024. All rights reserved.