请求将AWS Lambda中NodeJS Webhook事件处理代码转译为Python
Node.js AWS Lambda 转 Python:Webhook事件转发至Kinesis Firehose
以下是对应你提供的Node.js代码的Python实现,功能完全一致:
import json import boto3 from datetime import datetime # 初始化Firehose客户端 firehose = boto3.client('firehose') def lambda_handler(event, context): # 打印事件详情 print(json.dumps(event, indent=4)) try: # 向Firehose发送记录 firehose.put_record( DeliveryStreamName='foo', Record={ 'Data': event['body'] } ) except Exception as e: # 捕获异常并返回错误响应 print(f"Error: {e}") return { 'statusCode': 400, 'body': json.dumps(f"Cannot process event: {str(e)}") } # 返回成功响应,包含毫秒级时间戳ack return { 'statusCode': 200, 'body': json.dumps({ 'ack': int(datetime.now().timestamp() * 1000) }) }
关键细节说明:
- 用AWS官方Python SDK
boto3替代Node.js的AWS SDK,初始化Firehose客户端的逻辑对应原代码 - Lambda入口函数为
lambda_handler,参数event对应原代码的事件对象 - 时间戳转换:通过
datetime.now().timestamp()获取秒级时间戳后乘以1000,和原代码new Date().getTime()的毫秒级时间戳逻辑一致 - 响应体需用
json.dumps序列化,对应原代码的JSON.stringify操作 - 异常捕获逻辑与原代码匹配,捕获所有异常后返回400错误响应
内容的提问来源于stack exchange,提问作者wihee
相关产品推荐
相关产品推荐

