Example Lambda function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import boto3 | |
import os | |
import subprocess | |
import uuid | |
libdir = os.path.join(os.getcwd(), 'lib') | |
import warnings | |
from astropy.utils.data import CacheMissingWarning | |
warnings.simplefilter('ignore', CacheMissingWarning) | |
from astropy.io import fits | |
import numpy as np | |
from photutils import datasets | |
from skimage import data | |
def do_science(event): | |
file = event['fits_s3_key'] | |
bucket = event['fits_s3_bucket'] | |
root = drz_file.split('/')[-1].split('_')[0] | |
# Create S3 session | |
s3 = boto3.resource('s3') | |
s3_client = boto3.client('s3') | |
# Download the file from S3 (note this is free from Lambda as long as your | |
# function is executing in the US-East AWS region) and write out to tmp. | |
bkt = s3.Bucket(bucket) | |
bkt.download_file(file, '/tmp/{0}'.format(root), | |
ExtraArgs={"RequestPayer": "requester"}) | |
# Open the FITS file and print some debug | |
hdul = fits.open('/tmp/{0}'.format(root)) | |
print(hdul.info()) | |
# Incoming event has the following structure: | |
# event = { | |
# 'fits_s3_key': 'S3 key name', | |
# 'fits_s3_bucket': 'stpubdata', | |
# 's3_output_bucket': 'output-bucket' # optional | |
# } | |
# | |
# 'process.handler' (this function) is what is called when the Lambda process spawns | |
def handler(event, context): | |
print event['s3_output_bucket'] | |
print event['fits_s3_key'] | |
print event['fits_s3_bucket'] | |
do_science(event) | |
if __name__ == "__main__": | |
handler('', '') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment