如何使用aws lambda和nodejs创建和发送csv?

q1qsirdb  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(401)

我正在编写一个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);
r1wp621o

r1wp621o1#

使用此处提到的任何方法生成csv后,请在节点中将json数组转换为csv
我想您可以尝试发回文件的字节数组。

相关问题