如何在AWS Python Boto3 Lambda中从Event对象获取Kinesis流名称?
从Kinesis触发的Lambda Event中获取流名称
当Lambda被Kinesis流触发时,每条Record里都自带流的ARN信息,你可以从ARN中解析出流名称,无需硬编码。
实现代码示例
修改你的lambda_handler函数,添加解析逻辑:
import boto3 import json from pprint import pprint s3 = boto3.client('s3') kinesis = boto3.client('kinesis') def lambda_handler(event, context): if event and event.get("Records"): # 提取第一条记录的Kinesis流ARN kinesis_arn = event["Records"][0]["eventSourceARN"] # ARN格式为 arn:aws:kinesis:区域:账号ID:stream/流名称,拆分后取最后一段 stream_name = kinesis_arn.split('/')[-1] print(f"当前处理的Kinesis流名称:{stream_name}") for i in event["Records"]: print(i)
关键说明
eventSourceARN是Kinesis触发Lambda时自动带入的字段,无需额外配置- 同一次Lambda调用的所有记录都来自同一个流,只需解析第一条记录的ARN即可
- 通过
split('/')[-1]可以快速从ARN中提取出流名称
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

