An Elasticsearch Curator bootstrapper for AWS Lambda
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
Makefile
README.md
actions.example.yml
bootstrap.py
curator.yml
requirements.txt

README.md

lambda-curator - An Elasticsearch Curator bootstrapper for AWS Lambda.

This is a simple bootstrapper for running the Elasticsearch Curator as an AWS Lambda-function. Lambda functions can be triggered using CloudWatch Events making it a suitable environment for running Curator tasks.

Note: Currently Lambda functions have a maximum execution time of 300 seconds so long-running Curator tasks are not suitable for running as Lambda functions.

Setup

Environment variables

  • ES_HOST: the base url of the Elasticsearh cluster (default: http://localhost).
  • ES_PORT: the Elasticseach cluster port (default: 9200).
  • DRY_RUN: set Curator --dry-run flag (default: True)
  • FUNCTION_NAME: the lambda function name (default: lambda-curator).
  • IAM_ROLE: the lambda function execution role.

AWS CLI

The AWS CLI needs to be installed in order to push/update the lambda-curator function. As a minimum the following variables need to be set:

  • AWS_ACCESS_KEY_ID: the aws access key id.
  • AWS_SECRET_ACCESS_KEY: the aws secret access key.
  • AWS_REGION: the aws region.

Add actions.yml

Add an actions.yml file with the actions to be triggered by the lambda function.

Package function

make package

This will create a FUNCTION_NAME.zip including the bootstrap.py (and all Curator dependencies) and actions.yml.

Push package to function

make awspush

This will create and publish the lambda-curator function.

Update package function

make awsupdate

This will update any existing lambda-curator function.

Connecting to an AWS Elasticsearch cluster

The lambda-curator function will sign all requests with the AWS credentials of the execution role (IAM_ROLE). Giving this role access to your AWS Elasticsearch cluster using IAM will authenticate all lambda-curator actions automagically.