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

在作业定义日志配置中向awslogs
日志驱动程序注册任务定义后,可以提交包含该作业定义的作业,开始向日志发送日 CloudWatch 志。有关更多信息,请参阅 教程:提交作业。