AWS Lambda 无法直接获取 CPU 利用率,但可以通过获取该函数执行过程中所使用的性能指标,例如占用内存量、持续时间和 CPU 周期数,来反映 CPU 的使用情况。暂时无法以百分比形式呈现,但可以通过自定义指标来统计并展示相关信息。
以下是一个使用 CloudWatch 指标监控 AWS Lambda 中 CPU 周期数的示例代码:
import boto3
import os
import psutil
def lambda_handler(event, context):
cw = boto3.client('cloudwatch')
pid = os.getpid()
process = psutil.Process(pid)
cpu_percent = process.cpu_percent(interval=1)
response = cw.put_metric_data(
Namespace='CustomMetrics',
MetricData=[
{
'MetricName': 'LambdaCPUUtilization',
'Dimensions': [
{
'Name': 'FunctionName',
'Value': context.function_name
},
{
'Name': 'FunctionVersion',
'Value': context.function_version
}
],
'Unit': 'Percent',
'Value': cpu_percent
}
]
)
return response
此示例代码将 CPU 周期数作为 CloudWatch 自定义指标写入,并将其绑定到特定的函数版本和名称上。可以在 CloudWatch 控制台中查看和分析此指标。
注意:此示例代码仅监控 CPU 周期数,如果需要监控其他性能指标,需要相应地修改代码。