Invoke a AWS Lambda function by a http request
Amazon Web-ServicesAws LambdaAmazon Web-Services Problem Overview
Is it possible to invoke a AWS Lambda function directly by a http request (either GET or POST)? If not, is there a workaround going through SNS or S3? Because I can't think of one...
Specifically, I would like to create a small API using JSON
Amazon Web-Services Solutions
Solution 1 - Amazon Web-Services
The AWS API Gateway is the only way to expose your lambda function over HTTP. The AWS lambda web console should create one automatically for you if you use the microservice-http-endpoint blueprint when creating a new lambda function.
Or you can set it from the following screen
Or create it from the AWS API Gateway web console.
You may also explore invoking it on demand using the SDK in your client, mobile or web app. More information here.
Solution 2 - Amazon Web-Services
Yes, you can invoke AWS Lambda function using HTTP POST method, for this you need to make sigv4 signed request with valid AWS IAM credentials.
I tested this using POSTMAN:
curl -X POST https://lambda.us-west-2.amazonaws.com/2015-03-31/functions/Function_NAME/invocations
Link: Invoke Syntax
Solution 3 - Amazon Web-Services
Just add a trigger in the lambda function and you can already send a GET or POST requests in the link that will be generated
Solution 4 - Amazon Web-Services
As of 28 Nov 2018, you can create an internet facing LoadBalancer with an HTTP listener, then configure the load balancer to have Lambda as its target group.
After the load balancer is created, you can use its DNS name as the HTTP endpoint to sent requests to Lambda.
More details here: https://aws.amazon.com/blogs/networking-and-content-delivery/lambda-functions-as-targets-for-application-load-balancers/
Solution 5 - Amazon Web-Services
Yes, you can. There's an API for this: Invoke
Solution 6 - Amazon Web-Services
Lambda now has built-in HTTPS endpoints that you can use to invoke the lambda. This can be enabled in the Advanced settings pane with the Enable function URL option:
You can find more information on this feature here.