本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 awslogs 日志驱动程序
默认情况下,Amazon Batch启用awslogs
日志驱动程序将日志信息发送到 CloudWatch Logs。您可使用此功能在一个方便的位置查看容器中的不同日志,并防止您的容器日志占用您容器实例上的磁盘空间。本主题将帮助您配置awslogs
日志驱动程序。
作业中容器所记录的信息类型主要取决于其ENTRYPOINT
命令。默认情况下,捕获的日志显示命令输出是您在本地运行容器时在交互式终端上通常看到的内容,即STDOUT
和STDERR
I/O 流。这些区域有:awslogs
日志驱动程序只是将 Docker 中的这些日志传递到 CloudWatch Logs。有关如何处理 Docker 日志的更多信息,包括捕获不同文件数据或流的替代方法,请参阅查看容器或服务的日志
要将系统日志从容器实例发送到 CloudWatch Logs,请参阅使用CloudWatch带有日志Amazon Batch。有关 CloudWatch Logs 的更多信息,请参阅监控日志文件和CloudWatch Logs 配额中的Amazon CloudWatch Logs 用户指南。
awslogs 日志驱动程序选项
这些区域有:awslogs
日志驱动程序支持Amazon Batch作业定义。有关更多信息,请参阅 。CloudWatch Logs 驱动程序
awslogs-region
-
:必需 否
指定区域,其中
awslogs
日志驱动程序应发送您的 Docker 日志。默认情况下,使用的区域与作业的区域相同。您可以选择将不同区域中的作业中的所有日志发送到 CloudWatch Logs 中的单个区域。这样做可以让它们从一个位置可见。或者,您可以按 “区域” 分隔它们,以获得更精细的方法。但是,当您选择此选项时,请确保指定的日志组存在于您指定的区域中。 awslogs-group
-
:必需 可选
随着
awslogs-group
选项,可将日志组指定为awslogs
日志驱动程序将其日志流发送到。如果未指定该值,aws/batch/job
使用。 awslogs-stream-prefix
-
:必需 可选
随着
awslogs-stream-prefix
选项,您可将日志流与指定的前缀关联在一起,并将Amazon Batch作业。如果您使用此选项指定前缀,则日志流将采用以下格式:prefix-name
/default/ecs-task-id
awslogs-datetime-format
-
:必需 否
此选项以 Python
strftime
格式定义多行开始位置模式。日志消息由与模式匹配的行以及与模式不匹配的任何以下行组成。因此,匹配行是日志消息之间的分隔符。使用此格式的一个使用案例示例是用于解析输出(如堆栈转储),这可能记录在多个条目中。正确模式允许它捕获在单个条目中。
有关更多信息,请参阅 awslogs-datetime-format
。 如果同时配置了
awslogs-datetime-format
和awslogs-multiline-pattern
,此选项始终优先。注意 多行日志记录对所有日志消息执行正则表达式解析和匹配。这可能会对日志记录性能产生负面影响。
awslogs-multiline-pattern
-
:必需 否
此选项使用正则表达式定义多行开始位置模式。日志消息由与模式匹配的行以及与模式不匹配的任何以下行组成。因此,匹配行是日志消息之间的分隔符。
有关更多信息,请参阅 。awslogs 多行模式
在 Docker 文档中。 如果还配置了
awslogs-datetime-format
,则会忽略此选项。注意 多行日志记录对所有日志消息执行正则表达式解析和匹配。这可能会对日志记录性能产生负面影响。
awslogs-create-group
-
:必需 否
指定您是否希望自动创建日志组。如果未指定此选项,则默认为
false
。警告 不建议使用此选项。我们建议您使用 CloudWatch 日志提前创建日志组CreateLogGroupAPI 操作,因为每个作业尝试创建日志组,从而增加作业失败的可能性。
注意 您的执行角色的 IAM 策略必须包含
logs:CreateLogGroup
权限,然后再尝试使用awslogs-create-group
。
在作业定义中指定日志配置
默认情况下,Amazon Batch启用awslogs
日志驱动程序。本节说明如何将awslogs
日志配置。有关更多信息,请参阅 创建单节点作业定义 。
以下日志配置 JSON 代码段具有logConfiguration
对象为每个作业指定。一个是一个 WordPress 作业,它将日志发送到名为awslogs-wordpress
,另一个是用于将日志发送到名为awslogs-mysql
。两个容器都使用 awslogs-example
日志流前缀。
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "
awslogs-wordpress
", "awslogs-stream-prefix": "awslogs-example
" } }
"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "
awslogs-mysql
", "awslogs-stream-prefix": "awslogs-example
" } }
在Amazon Batch控制台的日志配置,则wordpress
作业定义如下图所示。

在将任务定义注册到awslogs
日志驱动程序,您可以提交具有该作业定义的作业以开始将日志发送到 CloudWatch Logs。有关更多信息,请参阅 提交作业。