This Terraform module creates an AWS ECS Fargate task definition.
Check versions for this module on:
- Github Releases: https://github.com/cn-terraform/terraform-aws-ecs-fargate-task-definition/releases
- Terraform Module Registry: https://registry.terraform.io/modules/cn-terraform/ecs-fargate-task-definition/aws
Name | Version |
---|---|
terraform | >= 0.13 |
Name | Version |
---|---|
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
command | (Optional) The command that is passed to the container | list(string) |
null |
no |
container_cpu | (Optional) The number of cpu units to reserve for the container. This is optional for tasks using Fargate launch type and the total amount of container_cpu of all containers in a task will need to be lower than the task-level cpu value | number |
1024 |
no |
container_depends_on | (Optional) The dependencies defined for container startup and shutdown. A container can contain multiple dependencies. When a dependency is defined for container startup, for container shutdown it is reversed | list(object({ |
null |
no |
container_image | The image used to start the container. | any |
n/a | yes |
container_memory | (Optional) The amount of memory (in MiB) to allow the container to use. This is a hard limit, if the container attempts to exceed the container_memory, the container is killed. This field is optional for Fargate launch type and the total amount of container_memory of all containers in a task will need to be lower than the task memory value | number |
8192 |
no |
container_memory_reservation | (Optional) The amount of memory (in MiB) to reserve for the container. If container needs to exceed this threshold, it can do so up to the set container_memory hard limit | number |
2048 |
no |
container_name | The name of the container. Up to 255 characters ([a-z], [A-Z], [0-9], -, _ allowed) | any |
n/a | yes |
dns_servers | (Optional) Container DNS servers. This is a list of strings specifying the IP addresses of the DNS servers | list(string) |
null |
no |
docker_labels | (Optional) The configuration options to send to the docker_labels |
map(string) |
null |
no |
entrypoint | (Optional) The entry point that is passed to the container | list(string) |
null |
no |
environment | (Optional) The environment variables to pass to the container. This is a list of maps | list(object({ |
[] |
no |
essential | (Optional) Determines whether all other containers in a task are stopped, if this container fails or stops for any reason. Due to how Terraform type casts booleans in json it is required to double quote this value | bool |
true |
no |
firelens_configuration | (Optional) The FireLens configuration for the container. This is used to specify and configure a log router for container logs. For more details, see https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_FirelensConfiguration.html | object({ |
null |
no |
healthcheck | (Optional) A map containing command (string), timeout, interval (duration in seconds), retries (1-10, number of times to retry before marking container unhealthy), and startPeriod (0-300, optional grace period to wait, in seconds, before failed healthchecks count toward retries) | object({ |
null |
no |
iam_partition | (Optional) IAM partition to use when referencing standard policies. GovCloud and some other regions use different partitions | string |
aws |
no |
links | (Optional) List of container names this container can communicate with without port mappings | list(string) |
null |
no |
linux_parameters | Linux-specific modifications that are applied to the container, such as Linux kernel capabilities. For more details, see https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LinuxParameters.html | object({ |
null |
no |
log_configuration | (Optional) Log configuration options to send to a custom log driver for the container. For more details, see https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_LogConfiguration.html | object({ |
null |
no |
mount_points | (Optional) Container mount points. This is a list of maps, where each map should contain a containerPath and sourceVolume |
list(object({ |
[] |
no |
name_prefix | Name prefix for resources on AWS | any |
n/a | yes |
placement_constraints | (Optional) A set of placement constraints rules that are taken into consideration during task placement. Maximum number of placement_constraints is 10. This is a list of maps, where each map should contain "type" and "expression" | list |
[] |
no |
port_mappings | The port mappings to configure for the container. This is a list of maps. Each map should contain "containerPort", "hostPort", and "protocol", where "protocol" is one of "tcp" or "udp". If using containers in a task with the awsvpc or host network mode, the hostPort can either be left blank or set to the same value as the containerPort | list(object({ |
[ |
no |
proxy_configuration | (Optional) The proxy configuration details for the App Mesh proxy. This is a list of maps, where each map should contain "container_name", "properties" and "type" | list |
[] |
no |
readonly_root_filesystem | (Optional) Determines whether a container is given read-only access to its root filesystem. Due to how Terraform type casts booleans in json it is required to double quote this value | bool |
false |
no |
repository_credentials | (Optional) Container repository credentials; required when using a private repo. This map currently supports a single key; "credentialsParameter", which should be the ARN of a Secrets Manager's secret holding the credentials | map(string) |
null |
no |
secrets | (Optional) The secrets to pass to the container. This is a list of maps | list(object({ |
null |
no |
start_timeout | (Optional) Time duration (in seconds) to wait before giving up on resolving dependencies for a container. | number |
30 |
no |
stop_timeout | (Optional) Timeout in seconds between sending SIGTERM and SIGKILL to container | number |
30 |
no |
system_controls | (Optional) A list of namespaced kernel parameters to set in the container, mapping to the --sysctl option to docker run. This is a list of maps: { namespace = "", value = ""} | list(map(string)) |
null |
no |
task_role_arn | (Optional) The ARN of IAM role that allows your Amazon ECS container task to make calls to other AWS services. If not specified, aws_iam_role.ecs_task_execution_role.arn is used |
string |
null |
no |
ulimits | (Optional) Container ulimit settings. This is a list of maps, where each map should contain "name", "hardLimit" and "softLimit" | list(object({ |
null |
no |
user | (Optional) The user to run as inside the container. Can be any of these formats: user, user:group, uid, uid:gid, user:gid, uid:group | string |
null |
no |
volumes | (Optional) A set of volume blocks that containers in your task may use | list(object({ |
[] |
no |
volumes_from | (Optional) A list of VolumesFrom maps which contain "sourceContainer" (name of the container that has the volumes to mount) and "readOnly" (whether the container can write to the volume) | list(object({ |
null |
no |
working_directory | (Optional) The working directory to run commands inside the container | string |
null |
no |
Name | Description |
---|---|
aws_ecs_task_definition_td_arn | Full ARN of the Task Definition (including both family and revision). |
aws_ecs_task_definition_td_family | The family of the Task Definition. |
aws_ecs_task_definition_td_revision | The revision of the task in a particular family. |
aws_iam_role_ecs_task_execution_role_arn | The Amazon Resource Name (ARN) specifying the role. |
aws_iam_role_ecs_task_execution_role_create_date | The creation date of the IAM role. |
aws_iam_role_ecs_task_execution_role_description | The description of the role. |
aws_iam_role_ecs_task_execution_role_id | The ID of the role. |
aws_iam_role_ecs_task_execution_role_name | The name of the role. |
aws_iam_role_ecs_task_execution_role_unique_id | The stable and unique string identifying the role. |
container_name | Name of the container |