AWS лямбда, предоставляющая API, а также использовать ту же лямбду для sqs (asyn c для синхронизации c в вызове API) - PullRequest
0 голосов
/ 02 августа 2020

Я работаю над сценарием использования функции создания расписания, где я использую лямбда-выражение для создания отчета c для записи CSV в корзину S3. (использовалась одна лямбда для генерации отчета - генерация отчетов включает поиск в базе данных и выполняет некоторую операцию и генерирует из нее CSV. И записывает ее в корзину S3)

лямбда получает триггер от SQS и выполняет операцию и генерирует файл на S3 , работает нормально.

Расширение того же, Теперь я хочу предоставить один api, который будет попадать в лямбду с теми же параметрами, чтобы получить информацию об отчете, и взамен я должен отправить данные (для внешнего интерфейса с генерацией CSV file).

Теперь я не понимаю, как заставить его работать обоими способами, например, как он обрабатывает SQS и этот API, как я могу заставить его работать. Как сделать это asyn c to syn c (процессор), потому что это должно быть быстро, но в то же время 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...') };
  }
};

1-я вещь Как заставить его работать, поскольку я должен идентифицировать вызов от API или SQS. [Примечание, которое я использую для взаимодействия с внешним интерфейсом, возврат вызова API может содержать массу данных, которые будут его обрабатывать в CSV.], затем обработайте его соответствующим образом. Кто-нибудь может мне с этим помочь? Я пытаюсь чего-то добиться, чтобы избежать дублирования лямбда (я считаю, что это может решить эту проблему ..)

Кто-нибудь может мне помочь с этим ??

Изменить - Значение _:> Если триггер SQS отправляет данные сообщения, переносимые имена отчетов, идентификаторы и лямбда-функции будут генерировать данные идентификаторов этих отчетов и записывать / выгружать их в корзину S3. (Выполняется SQS по триггеру) Теперь я ищу то же самое с той же lamdba, что я вызываю API с тем же запросом параметров, и он вернет данные, и я могу сгенерировать CSV на интерфейсе, когда каждый API попадет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...