60
votes

I am fairly new to AWS Lambda but sure can see the benefits of it and stumbled upon the superb framework Serverless to help me built solutions on Lambda.

I started out building solutions using AWS API Gateway but really need "internal" VPC API's and not public Internet facing API's like API GW creates.

I found that Servless indeed can expose a HTTP endpoint but I can't figure out how this is done and how the URL is created. When I deploy the Lambda from Serverless it gives me the URL, e.g.:

https://uxezd6ry8z.execute-api.eu-west-1.amazonaws.com/dev/ping

I would like to be able to find (or create) this same http listener for already existing Lambdas so my question is how is the URL created and where is teh actual HTTP listener deployed?

3
You don't create the url yourself. You create the HTTP methods, aws gives you the urls for those methods. You just bind the methods with a lambda_handler function. - Mohammad Yusuf
API Gateway endpoints are always public Internet facing. The API Gateway service does not provide private VPC endpoints. - Mark B
I know API GW creates public endpoints, that's what I want to avoid having! - Anders
@Mohammad Yusuf Ghazi, you write "aws gives you the urls for those methods". That is exactly my question, where do I find that URL in the Lambda console? - Anders

3 Answers

44
votes

You might be looking for the invoke url,

1. go to https://console.aws.amazon.com/apigateway

2. select api link (which you have deployed on aws lambda).
enter image description here

3. select stages in left side panel and see the invoke url.

23
votes

Adding a http listener can be done by going to your lambda function, selecting the 'triggers' tab and 'add trigger', finally selecting API Gateway - but as others mentioned this does create a public facing url.

adding api gateway as a trigger will give you a url to an existing lambda

1
votes

Duh, I was in the wrong AWS logon previously so the API GW was not showing any matching Serverless API and that was why I couldn't understand how they did it...

Once I logged into the AWS account that hosts the Serverless structure I can see the API GW GET API's for the Serverless HTTP listener.