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
  • 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.