Friday, 19 March 2021

Deploy Lambda with dependency on AWS

AWS Lambda is a server less compute service that lets you run code without provisioning or managing servers, creating workload-aware cluster scaling logic, maintaining event integrations, or managing runtimes. With Lambda, you can run code for virtually any type of application or backend service - all with zero administration. Just upload your code as a ZIP file or container image, and Lambda automatically and precisely allocates compute execution power and runs your code based on the incoming request or event, for any scale of traffic. You can set up your code to automatically trigger from 140 AWS services or call it directly from any web or mobile app.



Suppose you have written your lambda in python and trying to import you favorite packages which you have used in code then it might create problem for you. eg. like Pandas, numpy 


Although Python AWS lambda give access to all BOTO3 lib resources.


Below are the steps to Import your Lambda code into AWS.



Step 1: Start a Cloud9 Linux instance in AWS


  •    Search for Cloud9 in the AWS Services
            



  •     Click ‘Create Environment’
  •     Name your environment whatever you like (e.g. transformer ) and click next step
  •     Keep the environment default settings and click next.


  •     Click ‘Create Environment’ and you’re ready to go



Step 2: Creating dependency layer of Pandas library


Enter below steps on the terminal to create package and download dependencies.





mkdir dependency

cd dependency

virtualenv v-env

source ./v-env/bin/activate

pip install pandas

deactivate


Check for python version installed on machine


mkdir python

cd python

cp -r ../v-env/lib64/python3.7/site-packages/* .

cd ..

zip -r panda_layer.zip python

aws lambda publish-layer-version --layer-name pandas --zip-file fileb://panda_layer.zip --compatible-runtimes python3.7


Output after completion of all steps should look like this




Step 3: Adding the Pandas layer to your Lamda function


  • Go to the AWS Lambda service and click ‘Create Function’
  • Name your function, set the runtime to ‘Python 3.7’, and click ‘Create Function’
  • Click on Layers 


  • Click on ‘Layers’ in the function designer, then click ‘add a layer’










  • Choose custom layers from the layers options and on the dropdown, you should see your Pandas layer. 
  • Select that layer and choose your version as 1
  • Click ‘Add’.


 You are now good to go with your lambda having dependency of Pandas.

Spring boot with CORS

CORS (Cross-Origin Resource Sharing) errors occur when a web application running in a browser requests a resource from a different domain or...