Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending and reading data to AWS Lambda function

So i have setup a lambda function to upload a txt file to S3. How do i send data to the function using API Gateway?

Ive setup API Gateway to have a POST method.

here is my Lambda function

import boto3

s3 = boto3.resource('s3')

def lambda_handler(event, context):

    data = 'Totally awesome sword design' #event['data']

    filename = 'awesomeSword2' #event['filename']

    object = s3.Object(BUCKET_NAME, KEY + filename + '.txt')
    object.put(Body=data)

I just need to know how to send data and filename to the function (and read it)

like image 461
Zyie Avatar asked Oct 19 '25 20:10

Zyie


1 Answers

The lambda will be invoked with the data that you send with the POST request.

For example, let's say that you make a POST request to your API gateway with this JSON:

{"data": "some data"}

The lambda function will receive in the event argument a proper Python dictionary:

{'data': 'some data'}

Then you can do something like that:

def lambda_handler(event, context):
    data = event.get('data') 
    # this will avoid raising an error if event doesn't contain the data key

    # do whatever you like with Data
like image 87
nicor88 Avatar answered Oct 22 '25 11:10

nicor88