Skip to content

Instantly share code, notes, and snippets.

@mikepietruszka
Last active February 24, 2020 13:37
Show Gist options
  • Save mikepietruszka/5ae33d78e665fb477114715ee8fa777e to your computer and use it in GitHub Desktop.
Save mikepietruszka/5ae33d78e665fb477114715ee8fa777e to your computer and use it in GitHub Desktop.
Step Function for storing input payload in a file in S3
{
"StartAt":"Invoke Lambda function",
"States":{
"Invoke Lambda function":{
"Type":"Task",
"Resource":"arn:aws:states:::lambda:invoke",
"Parameters":{
"FunctionName":"arn:aws:lambda:::function:store-payload-to-s3",
"Payload":{
"Input.$":"$"
}
},
"End":true
}
}
}
import botocore.exceptions
import boto3
import json
import os
def lambda_handler(event, context):
session = boto3.Session(
region_name=''
)
s3 = session.resource('s3')
payload = json.dumps(event)
# Payload should be smaller than Lambda runtime memory (max: 3GB)
with open('/tmp/temporary.json', 'w') as data:
data.write(payload)
try:
s3.Object('fancy-bucket-name', 'temporary.json').upload_file(
Filename='/tmp/temporary.json')
print("Upload Successful")
except Exception as err:
print("ERROR: {0}".format(str(err)))
return false
return {
'statusCode': 200,
'body': json.dumps(payload)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment