Да, но вам придется взять на себя немного больше ответственности за процесс.
Так же, как и в случае динамо, вы можете вызывать лямбда-функцию из консоли или с помощью лямбда-вызова из aws cli (https://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html)
Лямбда имеет для полезной нагрузки JSON (которая становится вашим аргументом event
в обработчике). Но нет никаких других требований, кроме этого, если вы вызываете напрямую.
Если вы хотите отправить файл, то все, что вам нужно сделать, это найти способ кодировать его в JSON. Обычный подход - это кодировать base64.
Чтобы вызвать лямбдуот Почтальона:
Метод : POST
Запрос URL : https://lambda.$REGION.amazonaws.com/2015-03-31/functions/$FUNCTION_NAME/invocations
Заголовки :
- X-Amz-Invocation-Type:
RequestResponse
- X-Amz-Client-Context:
e30=
(это просто пустое закрытие ({}
) в base64)
Кузов :
{
filedata: 'base64encodedfile-made-using-link-below'
}
Чтобы получить значение filedata
, вам необходимо использоватьинструмент преобразования, подобный этому (https://www.base64encode.org/), чтобы получить версию вашего файла для base64.
Аутентификация : Подпись AWS
(Вы можете прочитать руководство по сервису для получения дополнительной информации по этому вызову:https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)
Затем вашему лямбде потребуется декодировать кодировку base64, чтобы получить двоичный файл.Например:
lambda.js
exports.handler = function(event, context, callback) {
const { filedata } = event;
const data = Buffer.from(filedata, 'base64').toString(); // or whatever format you need to read.
callback(null, "some success message");
}