Skip to content

OCLC-Developer-Network/code4lib_serverless_alerts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Triggered Lambda Sends Email or SMS

Custom application looks for new files in an S3 bucket and sends an alert to subscribed users via AWS SNS

Installing Locally

Step 1: Clone the repository

Clone this repository

$ git clone {url}

or download directly from GitHub.

Change into the application directory

Step 2: Use npm

Download node and npm and use the install command to read the dependencies JSON file

$ npm install

Step 3: AWS Setup

  1. Install AWS Commandline tools
  1. Create an AWS user in IAM console. Give it appropriate permissions. Copy the key and secret for this user to use in the CLI.
  2. Configure the commandline tools - https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
  • Make sure you add -- key/secret -- region

Step 4: Create an S3 Bucket for the files

  1. Use the AWS Console to create a bucket. Note your bucket name!!!
  2. Add a sample file of OCLC Numbers to the bucket.

Step 5. Create an SNS Topic and add at least 1 subscriber

  1. Go to AWS Console and create a topic. Note your topic ARN

Step 6: Configure application

  1. Copy example_config.yml to prod_config.yml . Open prod_config.yml and edit to include:
  • topic_arn

Step 7: Encrypt your Credentials

  1. Create a KMS key

  2. Encrypt the config file

$ aws kms encrypt --key-id {key-id} --plaintext fileb://prod_config.yml --output text --query CiphertextBlob --output text | base64 -D > prod_config_encrypted.txt

Step 8: Test application

  1. Alter s3_event_alert.json to point to your bucket and your sample file.

  2. Use serverless to test locally

serverless invoke local --function sendAlert --path s3_event_alert.json

Installing in AWS Lambda

  1. Download and setup the application, see Installing locally
  2. Edit serverless.yml so it include your key ARN
service: 
    name: trigger-alert-test
    awsKmsKeyArn: arn:aws:kms:us-east-1:XXXXXX:key/some-hash
  1. Deploy the code using serverless
$ serverless deploy
  1. Make sure the role for the Lambda has the right permissions
  • KMS decrypt
  • S3 read
  • SNS publish
  1. Setup the trigger on the bucket

Releases

No releases published

Packages

No packages published