如何从fargate任务设置/写入aws日志组



我已经通过cloudformation模板设置了一个fargate任务(见下面的示例(,该任务的代码在下面的script.py文件中。我成功地设置了任务,现在我想向cloudwatch写入日志。在设置fargate任务的同时,我已经建立了一个日志组,并计划使用python中的logger来编写日志。如何使用python中的logger从script.py向我用fargate任务创建的aws日志组写入。

AWSTemplateFormatVersion: 2010-09-09
Description: An example CloudFormation template for Fargate.
Parameters:
VPC:
Type: AWS::EC2::VPC::Id
SubnetA:
Type: AWS::EC2::Subnet::Id
SubnetB:
Type: AWS::EC2::Subnet::Id
Image:
Type: String
Default: 123456789012.dkr.ecr.region.amazonaws.com/image:tag
Resources: 
Cluster:
Type: AWS::ECS::Cluster
Properties:
ClusterName: !Join ['', [!Ref ServiceName, Cluster]]
TaskDefinition:
Type: AWS::ECS::TaskDefinition
DependsOn: LogGroup
Properties:
Family: !Join ['', [!Ref ServiceName, TaskDefinition]]
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 2GB
ExecutionRoleArn: !Ref ExecutionRole
TaskRoleArn: !Ref TaskRole
ContainerDefinitions:
- Name: !Ref ServiceName
Image: !Ref Image
LogConfiguration:
LogDriver: awslogs
Options:
awslogs-group: '/ecs/my_log_group'
awslogs-region: 'us-east-1'
awslogs-stream-prefix: ecs-myfargatetask

script.py

import logging
logger = logging.getlogger('...')
logger.info('logging working')

您只需要将Python记录器配置为输出到STDOUT/STDERR(我认为这是默认情况下它所做的(。ECS中docker容器主进程的控制台输出是发送到CloudWatch日志的内容。

最新更新