是的,AWS Lambda函数可以使用Amazon CloudWatch Logs API将日志消息发送到多个日志组。这可以通过指定多个名称为“logGroupName”的键值对来实现,来自AWS Lambda的日志消息将写入这些日志组。
以下是向多个日志组记录AWS Lambda函数的示例代码:
import boto3
import logging
# Define the log groups to send logs to
log_groups = ['log-group-1', 'log-group-2']
# Create a CloudWatch Logs client
client = boto3.client('logs')
# Configure the logger
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
# Log an INFO message
logger.info("Example log message")
# Send the log message to all configured log groups
for group in log_groups:
response = client.create_log_group(
logGroupName=group
)
response = client.describe_log_streams(
logGroupName=group,
orderBy='LastEventTime',
descending=True,
limit=1
)
log_stream_name = response['logStreams'][0]['logStreamName']
response = client.put_log_events(
logGroupName=group,
logStreamName=log_stream_name,
logEvents=[
{
'timestamp': int(round(time.time() * 1000)),
'message': logger.info.message
}
]
)
此函数将日志消息发送到两个日志组,'log-group-1'和'log-group-2',并使用Python日志API记录日志消息。 AWS Lambda函数仅需维护单个函数,但可以以完全不同的名称将消息存储在多个日志组中。