关于ECS的AWSlog的方式和原因(咨询)

时间:2019-11-13 01:14:57

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

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

我目前的奋斗目标是从容器中获取日志,以便我可以排除为什么它们停止的麻烦。我似乎无法正确定义“任务定义”,以便将其生成。

ecsInstanceRole

我已经将它们的日志驱动程序设置为awslogs,但是当我尝试在CloudWatch中查看日志时,却什么也没得到:

  • 如果我将awslogs-create-group指定为“ true”(它需要一个字符串,而不是一个布尔值,这很奇怪;我认为大小写无关紧要),但是我发现未创建该组。
  • 如果我手动创建该组,则会发现未创建日志流。

我怀疑我的权限可能有错误,尽管当然没有错误消息可确认。文档(here)表示我需要对runTask附加某些策略,该策略似乎是在该过程中 where 处使用的角色的占位符。

但是我已经将这样的策略附加到我的ECS执行角色,执行对{{1}}的API调用的角色上,并且我还寻找了可能涉及的任何其他角色(实际的“ instanceRole”没有似乎没有出现在Task Def中),并且没有任何东西可以改善我的状况。

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

有人看到吗?

1 个答案:

答案 0 :(得分:0)

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

  

任务需要此角色才能拉出容器映像并将容器日志发布到Amazon CloudWatch。

您在此处附加的角色需要一个AmazonECSTaskExecutionRolePolicy之类的策略(AWS托管策略),并且受信任实体是ecs-tasks.amazonaws.com

我认为也不需要awslogs选项awslogs-create-group