AWS Lambda不需要使用CloudWatch,但它集成了CloudWatch日志记录功能,以便用户可以轻松地从Lambda函数中获取日志,并进行监控和故障排除。
如果您想在Lambda函数中使用CloudWatch,您需要添加适当的权限和策略。以下是一个使用CloudWatch提交日志的示例Lambda函数:
import boto3
import json
# Create CloudWatchLogs client
cloudwatch_logs = boto3.client('logs')
def lambda_handler(event, context):
# Generate log data
log_data = {
'logType': 'INFO',
'message': 'Hello, world!'
}
# Submit log data to CloudWatch Logs
response = cloudwatch_logs.create_log_group(
logGroupName='/aws/lambda/my-function'
)
response = cloudwatch_logs.create_log_stream(
logGroupName='/aws/lambda/my-function',
logStreamName='my-stream'
)
response = cloudwatch_logs.put_log_events(
logGroupName='/aws/lambda/my-function',
logStreamName='my-stream',
logEvents=[
{
'timestamp': int(round(time.time()*1000)),
'message': json.dumps(log_data)
}
]
)
return 'Hello, world!'
在此示例中,我们使用了boto3模块来通过CloudWatch Logs提交日志数据。我们首先创建了一个client对象,然后使用该对象创建并提交了日志数据。请注意,我们需要在Lambda函数中添加CloudWatch Logs的IAM策略和权限才能使此功能正常工作。