AWS Lambda公开API,并且也对sqs使用相同的lambda(异步以在API调用中同步)

我正在研究生成计划功能的用例,其中使用lambda生成特定的报告以将CSV写入S3存储桶。 (使用一个lambda来生成报告-生成报告具有数据库查找并执行一些操作并从中生成CSV。并将其写入S3存储桶中)

lambda正在从SQS触发并在S3上执行操作并生成文件,但工作正常。

扩展相同的内容,现在我想公开一个将用相同参数命中lambda的api,以获得报告信息,而作为回报,我必须发送数据(到生成CSV文件的前端)。

现在,我对如何使其以两种方式工作都感到困惑,例如它也处理SQS和此API,我该如何使它工作。 像使这个异步同步(处理器) 因为它应该很快,但是同时SQS和该API也必须在不影响生成报告时间的前提下工作。

以下是我实际上在处理报告生成并能够在S3存储桶上进行写入的代码(与SQS触发器配合使用) 现在正在寻找如上所述的API解决方案。

/**
 * handler function
 */
exports.handler = async (event, context) => {

    for (const { receiptHandle, messageId, body } of event.Records) {
    // -------- 
    // Performing logic to s write CSV data to S3 Bucket and once its done
    // sending trigger SQS queue to another server.
    // --------
    return { "meta": { "message": "success" }, "data": JSON.stringify('Sent to SQS Successfully...') };
  }
};

第一件事如何使它工作,因为我必须确定调用来自API还是SQS。 [我在前端使用React的注释,API调用返回可能包含大量数据,这些数据将以CSV处理。] 然后进行相应处理。谁能帮我这个?我正在努力取得一些成就,以便避免重复使用lambda(我相信它可以解决此问题。)

谁能帮我这个??

编辑- 意思是:>如果SQS触发器发送消息数据,则携带的报告名称和ID,lambda函数将生成这些报告ID数据并将其写入/上传到S3存储桶中(由SQS在触发器上完成) 现在,我正在使用相同的lamdba寻找相同的对象,即使用相同的params请求进行API调用,它将返回数据,并且当每个API都被命中时,我可以在前端生成CSV。