我从同事那里得到了这个NodeJS代码。该代码位于AWS lambda中,用于处理每个webhook发送的传入事件。在这段代码中,我指定了一个Kinesis Firehose交付流,然后将数据发送到存储桶。我在两者之间有传递流来做一些压缩和添加分区。这段代码中第二件重要的事情是我将传入事件的主体作为json发送到交付流的部分。
有人能帮我把这段代码解释成python吗?
const AWS = require( 'aws-sdk' );
const firehose = new AWS.Firehose();
exports.handler = async (event) => {
console.log(JSON.stringify(event, null, 4));
try {
await firehose
.putRecord({
DeliveryStreamName: 'foo',
Record: {
Data:event.body
}
})
.promise();
} catch (error) {
console.error(error);
return {
statusCode: 400,
body: `Cannot process event: ${error}`
};
}
return {
statusCode: 200,
body: JSON.stringify({
ack: new Date().getTime()
})
};
};
可以使用Boto3 Python AWS SDK
import json
import boto3
from datetime import datetime
client = boto3.client('firehose')
def handler(event):
print(json.dumps(event, indent=4))
try:
response = client.put_record(
DeliveryStreamName='string',
Record={
'Data': event.body
}
)
except Exception as e:
return {
'statusCode': 400,
'body': json.dumps(f'Cannot process event: {e}')
}
return {
'statusCode': 200,
'body': json.dumps({ 'ack': datetime.now().strftime('%H:%M:%S') })
}