Terraform module for automatically deleting Elasticsearch index exceeding maximum retention period.
Index name in Elasticsearch Service must include YYYYMMDD timeformat key.
module "es_cleaner" {
source = "baikonur-oss/lambda-es-cleaner/aws"
lambda_package_url = "https://github.com/baikonur-oss/terraform-aws-lambda-es-cleaner/releases/download/v1.0.0/lambda_package.zip"
name = "es_cleaner"
elasticsearch_host = "search-dev-elasticsearch-xxxxxxxx.ap-northeast-1.es.amazonaws.com"
elasticsearch_arn = "arn:aws:es:ap-northeast-1:0123456789:domain/elasticsearch"
schedule_expression = "cron(0 1 * * ? *)"
}Warning: use same module and package versions!
Use version parameter to pin to a specific version, or to specify a version constraint when pulling from Terraform Module Registry (source = baikonur-oss/lambda-es-cleaner/aws).
For more information, refer to Module Versions section of Terraform Modules documentation.
Make sure to use ?ref= version pinning in module source URI when pulling from GitHub.
Pulling from GitHub is especially useful for development, as you can pin to a specific branch, tag or commit hash.
Example: source = github.com/baikonur-oss/terraform-aws-lambda-es-cleaner?ref=v1.0.0
For more information on module version pinning, see Selecting a Revision section of Terraform Modules documentation.
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| dry_run_only | Dry run option for testing purpose | string | "false" |
no |
| elasticsearch_arn | Elasticsearch Service ARN | string | n/a | yes |
| elasticsearch_host | Elasticsearch Service endpoint (without https://) | string | n/a | yes |
| handler | Lambda Function handler (entrypoint) | string | "main.handler" |
no |
| lambda_package_url | Lambda package URL (see Usage in README) | string | n/a | yes |
| log_retention_in_days | Lambda Function log retention in days | string | "30" |
no |
| max_age_days | retention period of Elasticsearch Service index (days). Older indexes will be removed. | string | "60" |
no |
| memory | Lambda Function memory in megabytes | string | "256" |
no |
| name | Resource name | string | n/a | yes |
| runtime | Lambda Function runtime | string | "python3.7" |
no |
| schedule_expression | Lambda Schedule Expressions for Rules (https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/events/ScheduledEvents.html) | string | n/a | yes |
| tags | Tags for Lambda Function | map(string) | {} |
no |
| timeout | Lambda Function timeout in seconds | string | "60" |
no |
| timezone | tz database timezone name (e.g. Asia/Tokyo) | string | "UTC" |
no |
| tracing_mode | X-Ray tracing mode (see: https://docs.aws.amazon.com/lambda/latest/dg/API_TracingConfig.html ) | string | "PassThrough" |
no |
Make sure to have following tools installed:
brew install pre-commit terraform terraform-docs
# set up pre-commit hooks by running below command in repository root
pre-commit install