Вызвать функцию AWS Lambda с помощью запроса http

Можно ли вызвать функцию AWS Lambda напрямую с помощью HTTP-запроса (GET или POST)? Если нет, есть ли обходной путь через SNS или S3? Потому что я не могу думать об одном...

В частности, я хотел бы создать небольшой API с помощью JSON

Ответы

Ответ 1

AWS API Gateway - это единственный способ представить вашу лямбда-функцию через HTTP. Лямбда-веб-консоль AWS должна автоматически создать ее для вас, если вы используете план microservice-http-endpoint при создании новой лямбда-функции.

enter image description here

Или вы можете установить его на следующем экране enter image description here

Или создайте его из веб-консоли AWS API Gateway. enter image description here


Вы также можете изучить возможность вызова по требованию с помощью SDK в своем клиенте, мобильном устройстве или веб-приложении. Больше информации здесь.

Ответ 3

Начиная с 28 ноября 2018 года, вы можете создать Интернет-интерфейс LoadBalancer с прослушивателем HTTP, затем настройте балансировщик нагрузки так, чтобы Lambda была его целевой группой.

После создания балансировщика нагрузки вы можете использовать его DNS-имя в качестве конечной точки HTTP для отправки запросов в Lambda.

Подробнее здесь: https://aws.amazon.com/blogs/networking-and-content-delivery/lambda-functions-as-targets-for-application-load-balancers/

Ответ 4

Да, вы можете вызывать функцию AWS Lambda, используя метод HTTP POST, для этого вам нужно сделать sigv4 подписанный запрос с действительными учетными данными AWS IAM.

Я проверил это с помощью POSTMAN:

curl -X POST https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/Function_NAME/invocations

Ссылка:   вызывать синтаксис

Ответ 5

Да, вы можете. Для этого существует API: Invoke