我正在编写一个lambda函数,它从dynamodb获取数据并将其存储在数组中。现在我想从这个数组创建一个csv文件并返回它(最好直接从lambda函数,而不是将其上载到s3,然后共享链接)。你知道怎么做吗?
我的代码到现在为止-
import AWS from "aws-sdk";
import createError from "http-errors";
import commonMiddleware from "../lib/commonMiddleware";
const dynamodb = new AWS.DynamoDB.DocumentClient();
async function getFile(event, context) {
const { id: someId } = event.pathParameters;
let data;
const params = {
TableName: process.env.TABLE_NAME,
IndexName: "GSIsomeId",
KeyConditionExpression: "someId = :someId",
ExpressionAttributeValues: {
":someId": someId,
},
};
try {
const result = await dynamodb.query(params).promise();
data = result.Items;
} catch (error) {
console.error(error);
throw new createError.InternalServerError(error);
}
// data is array of objects which I can change to 2d array using Object.values()
// I want to create and return a CSV from this array
return {
statusCode: 200,
body: JSON.stringify(data),
};
}
export const handler = commonMiddleware(getFile);
1条答案
按热度按时间r1wp621o1#
使用此处提到的任何方法生成csv后,请在节点中将json数组转换为csv
我想您可以尝试发回文件的字节数组。