

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Syntaxe du hook `AWS::CodeDeploy::BlueGreen`
<a name="blue-green-hook-syntax"></a>

La syntaxe suivante décrit la structure d'un `AWS::CodeDeploy::BlueGreen` hook pour les blue/green déploiements ECS.

## Syntaxe
<a name="cfn-blue-green-hook-syntax"></a>

```
"Hooks": {
  "{{Logical ID}}": {
    "Type": "AWS::CodeDeploy::BlueGreen",
    "Properties": {
      "TrafficRoutingConfig": {
        "Type": "{{Traffic routing type}}",
        "TimeBasedCanary": {
          "StepPercentage": {{Integer}},
          "BakeTimeMins": {{Integer}}
        },
        "TimeBasedLinear": {
          "StepPercentage": {{Integer}},
          "BakeTimeMins": {{Integer}}
        }
      },
      "AdditionalOptions": {"TerminationWaitTimeInMinutes": {{Integer}}},
      "LifecycleEventHooks": {
        "BeforeInstall": "{{FunctionName}}",
        "AfterInstall": "{{FunctionName}}",
        "AfterAllowTestTraffic": "{{FunctionName}}",
        "BeforeAllowTraffic": "{{FunctionName}}",
        "AfterAllowTraffic": "{{FunctionName}}"
      },
      "ServiceRole": "{{CodeDeployServiceRoleName}}",
      "Applications": [
        {
          "Target": {
            "Type": "AWS::ECS::Service",
            "LogicalID": "{{Logical ID of AWS::ECS::Service}}"
          },
          "ECSAttributes": {
            "TaskDefinitions": [
              "{{Logical ID of AWS::ECS::TaskDefinition (Blue)}}",
              "{{Logical ID of AWS::ECS::TaskDefinition (Green)}}"
            ],
            "TaskSets": [
              "{{Logical ID of AWS::ECS::TaskSet (Blue)}}",
              "{{Logical ID of AWS::ECS::TaskSet (Green)}}"
            ],
            "TrafficRouting": {
              "ProdTrafficRoute": {
                "Type": "AWS::ElasticLoadBalancingV2::Listener",
                "LogicalID": "{{Logical ID of AWS::ElasticLoadBalancingV2::Listener (Production)}}"
              },
              "TestTrafficRoute": {
                "Type": "AWS::ElasticLoadBalancingV2::Listener",
                "LogicalID": "{{Logical ID of AWS::ElasticLoadBalancingV2::Listener (Test)}}"
              },
              "TargetGroups": [
                "{{Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Blue)}}",
                "{{Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Green)}}"
              ]
            }
          }
        }
      ]
    }
  }
}
```

## Propriétés
<a name="cfn-blue-green-hook-properties"></a>

ID logique (également appelé *nom logique*)  
L’ID logique d’un hook déclaré dans la section `Hooks` du modèle. L'ID logique doit être alphanumérique (A-Za-z0-9) et ne doit correspondre à aucun autre ID logique dans le modèle.  
*Obligatoire* : oui    
`Type`  
Type de hook. `AWS::CodeDeploy::BlueGreen`  
*Obligatoire* : oui  
`Properties`  
Propriétés du hook.  
*Obligatoire* : oui    
`TrafficRoutingConfig`  
Paramètres de configuration du routage du trafic.  
*Obligatoire* : non  
La configuration par défaut est le déplacement du trafic Canary basé sur le temps, avec un pourcentage d'étape de 15 % et un temps d'attente de cinq minutes.    
`Type`  
Type de déplacement de trafic utilisé par la configuration de déploiement.  
Valeurs valides : AllAtOnce \| TimeBasedCanary \| TimeBasedLinear  
*Obligatoire* : oui    
`TimeBasedCanary`  
Spécifie une configuration qui déplace le trafic d'une version du déploiement vers une autre en deux incréments.  
*Requis* : sous certaines conditions. Si vous spécifiez `TimeBasedCanary` comme type de routage du trafic, vous devez inclure le paramètre `TimeBasedCanary`.    
`StepPercentage`  
Pourcentage de trafic à déplacer dans le premier incrément d'un déploiement `TimeBasedCanary`. Le pourcentage d'étape doit être de 14 % ou plus.  
*Obligatoire* : non  
`BakeTimeMins`  
Nombre de minutes entre les premier et deuxième déplacements de trafic d'un déploiement `TimeBasedCanary`.  
*Obligatoire* : non  
`TimeBasedLinear`  
Spécifie une configuration qui déplace le trafic d'une version du déploiement vers une autre par incréments égaux, avec un nombre égal de minutes entre chaque incrément.  
*Requis* : sous certaines conditions. Si vous spécifiez `TimeBasedLinear` comme type de routage du trafic, vous devez inclure le paramètre `TimeBasedLinear`.    
`StepPercentage`  
Pourcentage de trafic déplacé au début de chaque incrément d'un déploiement `TimeBasedLinear`. Le pourcentage d'étape doit être de 14 % ou plus.  
*Obligatoire* : non  
`BakeTimeMins`  
Nombre de minutes entre chaque déplacement de trafic incrémentiel d'un déploiement `TimeBasedLinear`.  
*Obligatoire* : non  
`AdditionalOptions`  
Options supplémentaires pour le blue/green déploiement.  
*Obligatoire* : non    
`TerminationWaitTimeInMinutes`  
Spécifie le temps d'attente, en minutes, avant de mettre fin aux ressources bleues.  
*Obligatoire* : non  
`LifecycleEventHooks`  
Utilisez les hooks d'événements du cycle de vie pour spécifier une fonction Lambda CodeDeploy pouvant être appelée pour valider un déploiement. Vous pouvez utiliser la même fonction ou une autre fonction pour les événements du cycle de vie du déploiement. Une fois les tests de validation terminés, la `AfterAllowTraffic` fonction Lambda rappelle CodeDeploy et fournit un résultat de `Succeeded` ou. `Failed` Pour plus d'informations, consultez la [section « crochets AppSpec  »](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html) du *guide de l'AWS CodeDeploy utilisateur.*  
*Obligatoire* : non    
`BeforeInstall`  
Fonction permettant d'exécuter des tâches avant que l'ensemble des tâches de remplacement ne soit créé.  
*Obligatoire* : non  
`AfterInstall`  
Fonction permettant d'exécuter des tâches après que l'ensemble des tâches de remplacement a été créé et que l'un des groupes cibles lui a été associé.  
*Obligatoire* : non  
`AfterAllowTestTraffic`  
Fonction permettant d'exécuter des tâches après que l'écouteur de test a dirigé le trafic vers l'ensemble des tâches de remplacement.  
*Obligatoire* : non  
`BeforeAllowTraffic`  
Fonction permettant d'exécuter des tâches après l'association du second groupe cible avec l'ensemble des tâches de remplacement, mais avant que le trafic ne soit déplacé vers ce dernier.  
*Obligatoire* : non  
`AfterAllowTraffic`  
Fonction permettant d'exécuter des tâches une fois que le second groupe cible a dirigé le trafic vers l'ensemble des tâches de remplacement.  
*Obligatoire* : non  
`ServiceRole`  
Le rôle d'exécution CloudFormation à utiliser pour effectuer les déploiements bleu-vert. Pour la liste des autorisations nécessaires, consultez [Autorisations IAM pour les déploiements blue/green](about-blue-green-deployments.md#blue-green-iam).  
*Obligatoire* : non  
`Applications`  
Spécifie les propriétés de l'application Amazon ECS.  
*Obligatoire* : oui    
`Target`  
  
*Obligatoire* : oui    
`Type`  
Type de la ressource.  
*Obligatoire* : oui  
`LogicalID`  
ID logique de la ressource.  
*Obligatoire* : oui  
`ECSAttributes`  
Ressources qui représentent les différentes exigences du déploiement de votre application Amazon ECS.  
*Obligatoire* : oui    
`TaskDefinitions`  
ID logique de la ressource [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-taskdefinition.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-taskdefinition.html) pour exécuter le conteneur Docker qui contient votre application Amazon ECS.  
*Obligatoire* : oui  
`TaskSets`  
Logique IDs des [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-taskset.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ecs-taskset.html)ressources à utiliser comme ensembles de tâches pour l'application.  
*Obligatoire* : oui  
`TrafficRouting`  
Spécifie les ressources utilisées pour le routage du trafic.  
*Obligatoire* : oui    
`ProdTrafficRoute`  
Un écouteur est utilisé par votre équilibreur de charge pour diriger le trafic vers vos groupes cibles.  
*Obligatoire* : oui    
`Type`  
Type de la ressource. `AWS::ElasticLoadBalancingV2::Listener`  
*Obligatoire* : oui  
`LogicalID`  
ID logique de la ressource.  
*Obligatoire* : oui  
`TestTrafficRoute`  
Un écouteur est utilisé par votre équilibreur de charge pour diriger le trafic vers vos groupes cibles.  
*Obligatoire* : oui    
`Type`  
Type de la ressource. `AWS::ElasticLoadBalancingV2::Listener`  
*Obligatoire* : oui  
`LogicalID`  
ID logique de la ressource.  
*Obligatoire* : non  
`TargetGroups`  
ID logique des ressources à utiliser comme groupes cibles pour acheminer le trafic vers la cible enregistrée.  
*Obligatoire* : oui