[
  {
    "name": "${service_name}",
    "image": "${docker_image}",
    "cpu": ${application_task_cpu},
    "memory": ${application_task_memory},
    "essential": true,
    "dockerLabels": {
      "Environment": "${environment}"
    },
    "mountPoints": [],
    "healthCheck": {
      "command": ${jsonencode("${health_check_command}")},
      "interval": ${health_check_interval},
      "retries": 3,
      "startPeriod": ${health_check_grace_period_seconds},
      "timeout": ${health_check_timeout}
    },
    "portMappings": [
      {
        "hostPort": 0,
        "containerPort": ${container_port},
        "protocol": "tcp"
      }
    ],
    "volumesFrom": [],
    "logConfiguration": {
      "logDriver": "awsfirelens",
      "options": {
        "Name": "datadog",
        "Host": "http-intake.logs.datadoghq.com",
        "TLS": "on",
        "dd_service": "${service_name}",
        "dd_source": "${environment}-${service_name}",
        "dd_tags": "env:${environment},environment:${environment},service_name:${service_name}",
        "dd_message_key": "log",
        "provider": "ecs"
      },
      "secretOptions": [{
        "name": "apikey",
        "valueFrom": "${datadog_api_key}"
      }]
    },
    "ulimits": [
      {
        "name": "nofile",
        "softLimit": ${ulimit_nofile_soft_limit},
        "hardLimit": ${ulimit_nofile_hard_limit}
      }
    ],
    "environment": [
      ${environment_variables}
    ],
    "secrets": [
      ${secrets}
    ],
    "linuxParameters": {
      "maxSwap": ${max_swap},
      "swappiness": ${swappiness}
    },
    "versionConsistency": "${version_consistency}"
  },
  {
    "name": "fluentbit-datadog",
    "image": "${fluentbit_image}",
    "cpu": ${fluentbit_task_cpu},
    "memory": ${fluentbit_task_memory},
    "essential": false,
    "dockerLabels": {
      "Environment": "${environment}"
    },
    "firelensConfiguration": {
      "type": "fluentbit",
      "options": {
        "enable-ecs-log-metadata": "true",
        "config-file-type": "file",
        "config-file-value": "/fluent-bit/configs/parse-json.conf"
      }
    },
    "portMappings": [],
    "mountPoints": [],
    "volumesFrom": [],
    "logConfiguration": {
      "logDriver": "awslogs",
      "options": {
        "awslogs-create-group": "true",
        "awslogs-group": "${environment}-${service_name}-fluentbit",
        "awslogs-region": "${aws_region}",
        "awslogs-stream-prefix": "${environment}-${service_name}-fluentbit"
      }
    },
    "user": "0",
    "environment": [],
    "versionConsistency": "${version_consistency}"
  }
]
