Terraform Module that spins up a Docker-based scheduled job on AWS ECR.
Source code referenced by the blog post: https://hyperscience.com/tech-blog/running-scheduled-jobs-in-aws/
| Name |
Description |
Type |
Default |
Required |
| cloudwatch_schedule_expression |
AWS cron schedule expression |
string |
n/a |
yes |
| ecr_repo_name |
Name of the ECR repo that contains the Docker image of your cron job |
string |
n/a |
yes |
| ecs_cluster_name |
(Optional) Name of the ECS Cluster that you want to execute your cron job. Defaults to your task name if no value is supplied |
string |
"" |
no |
| ecs_task_execution_role_name |
If the default AWS ECSTaskExecutionRole is not sufficient for your needs, you can provide your own ECS Task Execution Role here. The module will attach a CloudWatch policy for logging purposes. |
string |
"" |
no |
| extra_container_defs |
Additional configuration that you want to add to your task definition (see https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html for all options) |
any |
{} |
no |
| image_tag |
Docker tag of the container that you want to run |
string |
n/a |
yes |
| subnet_ids |
Subnets where the job will be run |
list(string) |
n/a |
yes |
| task_cpu |
CPU units to allocate to your job (vCPUs * 1024) |
number |
1024 |
no |
| task_memory |
In MiB |
number |
2048 |
no |
| task_name |
Name of the task for resource naming |
string |
n/a |
yes |
| task_role_arn |
IAM role ARN for your task if it needs to access any AWS resources. IMPORTANT: This must have an AssumeRolePolicy that includes the 'ecs-tasks.amazonaws.com' provider!! |
any |
null |
no |
| Name |
Description |
| sns_topic_arn |
ARN of the SNS Topic where job failure notifications are sent |