GitHub Actions is a powerful way to automate your projects. In this guide, we’ll show you how to deploy a simple Node.js application to AWS Lambda using GitHub Actions.
Creating an AWS Lambda Function
Firstly, go to the AWS Management Console and navigate to the Lambda service. Create a new function, specifying its name and functionality. Next, create an IAM role for the function, ensuring it includes the necessary permissions for Lambda function access.
GitHub Actions YAML File
Create a .github/workflows folder in your project directory and add a YAML file like the one below.
name: deploy to lambda
on:
push
jobs:
deploy_lambda:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
- name: aws configure
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: npm install
run: |
npm i -g bestzip
npm i
- name: deploy
run: |
bestzip bundle.zip *
aws lambda update-function-code --function-name=my-lambda-function --zip-file=fileb://bundle.zip
This YAML file will run every time a push to the main branch occurs and contains the necessary steps to deploy a Node.js project to AWS Lambda.
GitHub Secrets Configuration
Navigate to the Settings tab in your GitHub repository, then go to the Secrets section. Add a new secret, defining the AWS Lambda access keys (AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
).
Now, with each push, GitHub Actions will automatically deploy your Node.js application to AWS Lambda. By following these steps, you can streamline the process and easily manage your application.