amazon-web-services - ECS 上的 awslogs 的方式和原因(fargate)

标签 amazon-web-services amazon-ecs amazon-cloudwatch aws-fargate

我正在努力使用 ECS Fargate 运行任务,并从 AWS SDK 脚本(JS/Node)启动(ecs.runTask)。

我目前的斗争是从容器中获取日志,以便我可以解决它们停止的原因。我似乎无法正确地获得任务定义,以便生成它们。

    logConfiguration: {
        logDriver: 'awslogs',
        options: {
            "awslogs-region": 'us-west-2',
            "awslogs-group": 'myTask',
            "awslogs-stream-prefix": "myTask",
            "awslogs-create-group": "true"
        }
    }

我已将它们的日志驱动程序设置为 awslogs,但是当我尝试在 CloudWatch 中查看日志时,我什么也得不到:
  • 如果我将 awslogs-create-group 指定为“true”(它需要一个字符串,而不是一个 bool 值,这很奇怪;我认为大小写无关紧要),我仍然发现该组没有被创建。
  • 如果我手动创建组,我发现没有创建日志流。

  • 我怀疑我的权限可能有错误,但当然没有要确认的错误消息。文档( here )表明我需要将某些策略附加到 ecsInstanceRole ,这似乎是在流程中某处使用的角色的占位符。

    但是我已将这样的策略附加到我的 ECS executionRole,执行我对 runTask 的 API 调用的角色。 ,并且我一直在寻找可能涉及的任何其他角色(Task Def 中似乎不存在实际的“instanceRole”),但没有什么可以改善我的情况。

    我很乐意提供更多信息,但此时我不确定我的盲点在哪里。

    任何人都可以看到吗?

    最佳答案

    转到您的任务定义。您应该找到一个名为“任务执行 IAM 角色”的部分。描述说——

    This role is required by tasks to pull container images and publish container logs to Amazon CloudWatch.



    您在此处附加的角色需要像 AmazonECSTaskExecutionRolePolicy 这样的策略(AWS 托管策略),可信实体是 ecs-tasks.amazonaws.com .

    此外,awslogs选项 awslogs-create-group不需要,我想。

    关于amazon-web-services - ECS 上的 awslogs 的方式和原因(fargate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58828959/

    相关文章:

    amazon-web-services - 使用 YAML 设置 S3 存储桶的问题

    amazon-web-services - Amazon ECS故障排除任务启动失败

    amazon-web-services - ECS 服务 ARN 的实际结构是什么?

    amazon-dynamodb - 使用 CloudFormation 创建新的 DynamoDB 表时禁用/阻止 CloudWatch 警报

    amazon-web-services - 如何使用aws autoscaling基于自动缩放组的单个实例进行缩放?

    node.js - 如何正确从另一个 Lambda 调用 Lambda

    amazon-web-services - AWS 中 Jenkins 的替代品

    amazon-ecs - 尽管使用 AWS ubuntu 容器,我还是收到 AWS ECR 退出状态 255

    hadoop - 如何对 AWS 组件进行自动化功能测试?

    amazon-web-services - Amazon Web Services - 在 CloudFormation 中用自己的名称标记 S3 存储桶