如何在AWS Lambda函数内部获取对应log stream(日志流)名称
AWS Lambda内部获取日志流名称解决方案
可以直接获取,AWS Lambda运行时已经内置了对应参数,不需要调用额外的服务API。
获取方式
有两种等效的获取方式,拿到的结果和控制台「Monitor」标签页展示的日志流名称完全一致:
- 方式1:读取运行时环境变量
AWS_LAMBDA_LOG_STREAM_NAME,无需依赖handler的context参数,通用性更强 - 方式2:直接从handler传入的
context对象的log_stream_name属性读取
Python代码示例
import os def lambda_handler(event, context): # 方式1:从环境变量读取 log_stream_name = os.environ.get("AWS_LAMBDA_LOG_STREAM_NAME") # 方式2:从context对象读取,二选一即可 # log_stream_name = context.log_stream_name # 此处写入你的业务逻辑 # 你可以将log_stream_name写入结果文件、返回值或者其他存储介质,后续直接用该值搜索对应日志即可 return { "statusCode": 200, "log_stream_name": log_stream_name # 补充你的其他返回内容 }
注意事项
- 拿到的日志流名称格式和你给出的示例
YYYY/MM/DD/[$latest]45ea5df5ec5a4f15e1f5af8a5f12e8完全匹配,不需要做额外的拼接或处理 - 同一个Lambda运行实例冷启动后会复用同一个日志流,直到实例被销毁回收,因此同一个实例处理的多次请求会返回相同的日志流名称,和实际日志写入规则一致
内容的提问来源于stack exchange,提问作者sliders_alpha
相关产品推荐
相关产品推荐

