Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I pass arguments to AWS Lambda functions using GET requests?

Say I want to pass val1 and val2 in the URL string when making a GET request from my Api gateway endpoint to my Lambda function:

https://xyz.execute-api.amazonaws.com/prod/test?val1=5&val2=10 

And I have a simple function that sums the two inputs, val1 and val2:

def lambda_handler(event, context):     # How do I get at val1 and val2??     return {'result': val1 + val2} 

I've added val1 and val2 to URL Query String Parameters on the Method Request on the AWS API Gateway. But how do I access them inside the function?

like image 931
capitalistcuttle Avatar asked Dec 20 '15 23:12

capitalistcuttle


People also ask

How do you trigger Lambda with HTTP request?

After configuring your function URL, you can invoke your function through its HTTP(S) endpoint via a web browser, curl, Postman, or any HTTP client. To invoke a function URL, you must have lambda:InvokeFunctionUrl permissions. For more information, see Security and auth model.

Can Lambda take parameters?

The lambda expressions are easy and contain three parts like parameters (method arguments), arrow operator (->) and expressions (method body). The lambda expressions can be categorized into three types: no parameter lambda expressions, single parameter lambda expressions and multiple parameters lambda expressions.


2 Answers

After defining the query string parameters in Method Request section of the API Gateway, you then need to define a Mapping Template in the Method Execution section.

In the Method Execution section, select Mapping Templates and then click Add Mapping Template. Enter application/json for the Content Type and then create a mapping template that looks something like this:

{     "va1": "$input.params('val1')",     "val2": "$input.params('val2')" } 

This will tell API Gateway to take the input parameters (either passed on the path, or in headers, or in query parameters) called val1 and val2 and send them to the Lambda function in the event data as val1 and val2.

like image 138
garnaat Avatar answered Sep 28 '22 18:09

garnaat


All the information can be retrieved from Event object.

For example : The value of a variable foo can be retrieved from the event as : event["foo"].

like image 24
Batman Avatar answered Sep 28 '22 18:09

Batman