github.com/bfallik/terraform@v0.7.1-0.20160814101525-d3a4714efbf5/website/source/docs/providers/aws/r/ecs_service.html.markdown (about)

     1  ---
     2  layout: "aws"
     3  page_title: "AWS: aws_ecs_service"
     4  sidebar_current: "docs-aws-resource-ecs-service"
     5  description: |-
     6    Provides an ECS service.
     7  ---
     8  
     9  # aws\_ecs\_service
    10  
    11  -> **Note:** To prevent a race condition during service deletion, make sure to set `depends_on` to the related `aws_iam_role_policy`; otherwise, the policy may be destroyed too soon and the ECS service will then get stuck in the `DRAINING` state.
    12  
    13  Provides an ECS service - effectively a task that is expected to run until an error occurs or a user terminates it (typically a webserver or a database).
    14  
    15  See [ECS Services section in AWS developer guide](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html).
    16  
    17  ## Example Usage
    18  
    19  ```
    20  resource "aws_ecs_service" "mongo" {
    21    name = "mongodb"
    22    cluster = "${aws_ecs_cluster.foo.id}"
    23    task_definition = "${aws_ecs_task_definition.mongo.arn}"
    24    desired_count = 3
    25    iam_role = "${aws_iam_role.foo.arn}"
    26    depends_on = ["aws_iam_role_policy.foo"]
    27  
    28    load_balancer {
    29      elb_name = "${aws_elb.foo.name}"
    30      container_name = "mongo"
    31      container_port = 8080
    32    }
    33  }
    34  ```
    35  
    36  ## Argument Reference
    37  
    38  The following arguments are supported:
    39  
    40  * `name` - (Required) The name of the service (up to 255 letters, numbers, hyphens, and underscores)
    41  * `task_definition` - (Required) The family and revision (`family:revision`) or full ARN of the task definition that you want to run in your service.
    42  * `desired_count` - (Required) The number of instances of the task definition to place and keep running
    43  * `cluster` - (Optional) ARN of an ECS cluster
    44  * `iam_role` - (Optional) The ARN of IAM role that allows your Amazon ECS container agent to make calls to your load balancer on your behalf. This parameter is only required if you are using a load balancer with your service.
    45  * `deployment_maximum_percent` - (Optional) The upper limit (as a percentage of the service's desiredCount) of the number of running tasks that can be running in a service during a deployment.
    46  * `deployment_minimum_healthy_percent` - (Optional) The lower limit (as a percentage of the service's desiredCount) of the number of running tasks that must remain running and healthy in a service during a deployment.
    47  * `load_balancer` - (Optional) A load balancer block. Load balancers documented below.
    48  
    49  -> **Note:** As a result of an AWS limitation, a single `load_balancer` can be attached to the ECS service at most. See [related docs](http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-load-balancing.html#load-balancing-concepts).
    50  
    51  Load balancers support the following:
    52  
    53  * `elb_name` - (Required) The name of the load balancer.
    54  * `container_name` - (Required) The name of the container to associate with the load balancer (as it appears in a container definition).
    55  * `container_port` - (Required) The port on the container to associate with the load balancer.
    56  
    57  
    58  ## Attributes Reference
    59  
    60  The following attributes are exported:
    61  
    62  * `id` - The Amazon Resource Name (ARN) that identifies the service
    63  * `name` - The name of the service
    64  * `cluster` - The Amazon Resource Name (ARN) of cluster which the service runs on
    65  * `iam_role` - The ARN of IAM role used for ELB
    66  * `desired_count` - The number of instances of the task definition