

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# AWS::ECS::Service DeploymentLifecycleHook
<a name="aws-properties-ecs-service-deploymentlifecyclehook"></a>

A deployment lifecycle hook runs custom logic at specific stages of the deployment process. Currently, you can use Lambda functions as hook targets.

For more information, see [Lifecycle hooks for Amazon ECS service deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/deployment-lifecycle-hooks.html) in the * Amazon Elastic Container Service Developer Guide*.

## Syntax
<a name="aws-properties-ecs-service-deploymentlifecyclehook-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-ecs-service-deploymentlifecyclehook-syntax.json"></a>

```
{
  "[HookDetails](#cfn-ecs-service-deploymentlifecyclehook-hookdetails)" : Json,
  "[HookTargetArn](#cfn-ecs-service-deploymentlifecyclehook-hooktargetarn)" : String,
  "[LifecycleStages](#cfn-ecs-service-deploymentlifecyclehook-lifecyclestages)" : [ String, ... ],
  "[RoleArn](#cfn-ecs-service-deploymentlifecyclehook-rolearn)" : String
}
```

### YAML
<a name="aws-properties-ecs-service-deploymentlifecyclehook-syntax.yaml"></a>

```
  [HookDetails](#cfn-ecs-service-deploymentlifecyclehook-hookdetails): Json
  [HookTargetArn](#cfn-ecs-service-deploymentlifecyclehook-hooktargetarn): String
  [LifecycleStages](#cfn-ecs-service-deploymentlifecyclehook-lifecyclestages): 
    - String
  [RoleArn](#cfn-ecs-service-deploymentlifecyclehook-rolearn): String
```

## Properties
<a name="aws-properties-ecs-service-deploymentlifecyclehook-properties"></a>

`HookDetails`  <a name="cfn-ecs-service-deploymentlifecyclehook-hookdetails"></a>
 Use this field to specify custom parameters that Amazon ECS passes to your hook target invocations (such as a Lambda function).  
This field must be a JSON object as a string.  
*Required*: No  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`HookTargetArn`  <a name="cfn-ecs-service-deploymentlifecyclehook-hooktargetarn"></a>
The Amazon Resource Name (ARN) of the hook target. Currently, only Lambda function ARNs are supported.  
You must provide this parameter when configuring a deployment lifecycle hook.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`LifecycleStages`  <a name="cfn-ecs-service-deploymentlifecyclehook-lifecyclestages"></a>
The lifecycle stages at which to run the hook. Choose from these valid values:  
+ RECONCILE\$1SERVICE

  The reconciliation stage that only happens when you start a new service deployment with more than 1 service revision in an ACTIVE state.

  You can use a lifecycle hook for this stage.
+ PRE\$1SCALE\$1UP

  The green service revision has not started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  You can use a lifecycle hook for this stage.
+ POST\$1SCALE\$1UP

  The green service revision has started. The blue service revision is handling 100% of the production traffic. There is no test traffic.

  You can use a lifecycle hook for this stage.
+ TEST\$1TRAFFIC\$1SHIFT

  The blue and green service revisions are running. The blue service revision handles 100% of the production traffic. The green service revision is migrating from 0% to 100% of test traffic.

  You can use a lifecycle hook for this stage.
+ POST\$1TEST\$1TRAFFIC\$1SHIFT

  The test traffic shift is complete. The green service revision handles 100% of the test traffic.

  You can use a lifecycle hook for this stage.
+ PRODUCTION\$1TRAFFIC\$1SHIFT

  Production traffic is shifting to the green service revision. The green service revision is migrating from 0% to 100% of production traffic.

  You can use a lifecycle hook for this stage.
+ POST\$1PRODUCTION\$1TRAFFIC\$1SHIFT

  The production traffic shift is complete.

  You can use a lifecycle hook for this stage.
You must provide this parameter when configuring a deployment lifecycle hook.  
*Required*: Yes  
*Type*: Array of String  
*Allowed values*: `RECONCILE_SERVICE | PRE_SCALE_UP | POST_SCALE_UP | TEST_TRAFFIC_SHIFT | POST_TEST_TRAFFIC_SHIFT | PRODUCTION_TRAFFIC_SHIFT | POST_PRODUCTION_TRAFFIC_SHIFT`  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`RoleArn`  <a name="cfn-ecs-service-deploymentlifecyclehook-rolearn"></a>
The Amazon Resource Name (ARN) of the IAM role that grants Amazon ECS permission to call Lambda functions on your behalf.  
For more information, see [Permissions required for Lambda functions in Amazon ECS blue/green deployments](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/blue-green-permissions.html) in the * Amazon Elastic Container Service Developer Guide*.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)