Automate Github push to AWS Lambda

Suppose as a Data Scientist you create a model for performing a task. The codes are well documented on Github.

You also create a lambda function that is capable of using this model when it is triggered with an event.

AWS LAMBDA: “AWS Lambda is an event-driven, serverless computing system provided. It is a computing service that runs code in response and you dont need to manage the underlying resources.”

Now suppose after 1 months of time you notice that there is a small bug and you change the codes, and push them to GitHub. Is is not frustrating that you also need to change the corresponding lambda function ?

Well there exists a simple solution to automate this process using Github Actions.

GITHUB ACTIONS: “GitHub Actions is a CI/CD tool for the GitHub flow. You can use it to integrate and deploy code changes to a third-party cloud application platform as well as test, track, and manage code changes.”

How To

1. Create a folder .github and within that .workflows, and within that a file main.yaml.

2. Copy the contents of the sample shown.

name: deploy to lambda
on:
push:
branches:
- main
jobs:

deploy_source:
name: deploy lambda from source
runs-on: ubuntu-latest
steps:
- name: checkout source code
uses: actions/checkout@v1
- name: default deploy
uses: appleboy/lambda-action@master
with:
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_region: eu-central-1
function_name: test-data
source: lambda_function.py

3. You should configue the aws credentials within your github account for that repository. Settings -> Secrets -> Actions -> New repository secret.

4. You can create a new IAM user and get the access key ID and access ID, with limited permissions.

5. Provide the name of lambda at function_name, and the code which should be triggered at source. By default the Lambda function will search and execute the lambda_handler function. However this can be changed at the Lambda function console.

Thats all, once this is set-up, you can push changes to GitHub and it should automatically reflect in your Lambda Function.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store