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)
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With