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.
- 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.
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 an actions.yml file with the actions to be triggered by the lambda function.
make package
This will create a FUNCTION_NAME.zip including the bootstrap.py (and all Curator dependencies) and actions.yml.
make awspush
This will create and publish the lambda-curator function.
make awsupdate
This will update any existing lambda-curator function.
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.