在AWS CloudWatch中,您可以使用过滤表达式来筛选和搜索日志事件。默认情况下,过滤表达式是AND逻辑,即所有条件都必须匹配。
以下是使用AWS SDK for Python(Boto3)的代码示例,演示如何创建和使用过滤表达式:
import boto3
# 创建CloudWatch Logs客户端
client = boto3.client('logs')
# 定义过滤表达式
filter_expression = "ERROR AND (prod OR staging)"
# 创建日志组
response = client.create_log_group(
logGroupName='my-log-group'
)
# 创建日志流
response = client.create_log_stream(
logGroupName='my-log-group',
logStreamName='my-log-stream'
)
# 过滤日志事件
response = client.filter_log_events(
logGroupName='my-log-group',
logStreamNames=['my-log-stream'],
filterPattern=filter_expression
)
# 打印匹配的日志事件
for event in response['events']:
print(event['message'])
上述示例中,我们首先创建了一个CloudWatch Logs客户端,并定义了一个过滤表达式"ERROR AND (prod OR staging)"
。然后,我们创建了一个日志组和一个日志流,并使用filter_log_events
方法来过滤匹配的日志事件。最后,我们遍历匹配的日志事件并打印出来。
请注意,上述示例仅演示了如何创建和使用过滤表达式。实际中,您可能需要根据自己的需求进行适当的调整和扩展。