

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.

# `AWSSupport-TroubleshootAWSECSHealthChecks`
<a name="automation-awssupport-troubleshootawsecshealthchecks"></a>

Le `AWSSupport-TroubleshootAWSECSHealthChecks` runbook permet de diagnostiquer et de résoudre les problèmes lorsque des tâches Amazon Elastic Container Service (Amazon ECS) exécutées sur des instances Amazon Elastic Compute Cloud (Amazon EC2) ou AWS Fargate (Fargate) échouent aux contrôles de santé de l'Application Load Balancer (ALB).

Le runbook effectue une analyse systématique en :

1. Vérification de la connectivité réseau entre les tâches ALB et Amazon ECS

1. Vérifier si les tâches se terminent de manière inattendue

1. Analyse de l'état de santé du groupe cible et des codes de réponse

1. Examen de la configuration ALB et des paramètres de contrôle de santé

1. Validation de la configuration des services, y compris des délais de grâce pour les bilans

1. Réalisation de diagnostics personnalisés pour détecter les incohérences des codes de réponse

**Important**  
Pour des diagnostics avancés, le runbook déploie des fonctions temporaires AWS Lambda (Lambda) dans votre Amazon Virtual Private Cloud (Amazon VPC) afin de simuler les demandes de contrôle de santé du même point de vue réseau que votre ALB. Un rôle d'exécution Lambda est requis pour ces fonctions et peut être spécifié en tant que paramètre ou créé temporairement par ce runbook.

 [Exécutez cette automatisation (console) ](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAWSECSHealthChecks) 

**Type de document **

 Automatisation

**Propriétaire**

Amazon

**Plateformes**

/

**Autorisations IAM requises **

Le `AutomationAssumeRole` paramètre nécessite les actions suivantes pour utiliser correctement le runbook.
+ `cloudformation:CreateChangeSet`
+ `cloudformation:CreateStack`
+ `cloudformation:DeleteStack`
+ `cloudformation:DescribeStacks`
+ `ec2:DescribeInstances`
+ `ec2:DescribeNetworkAcls`
+ `ec2:DescribeNetworkInterfaces`
+ `ec2:DescribeRouteTables`
+ `ec2:DescribeSecurityGroups`
+ `ec2:DescribeSubnets`
+ `ec2:DescribeVpcEndpointServices`
+ `ec2:DescribeVpcEndpoints`
+ `ec2:DescribeVpcs`
+ `ecs:DescribeClusters`
+ `ecs:DescribeContainerInstances`
+ `ecs:DescribeServices`
+ `ecs:DescribeTaskDefinition`
+ `ecs:DescribeTaskSets`
+ `ecs:DescribeTasks`
+ `ecs:ListTasks`
+ `elasticloadbalancing:DescribeListeners`
+ `elasticloadbalancing:DescribeLoadBalancerAttributes`
+ `elasticloadbalancing:DescribeLoadBalancers`
+ `elasticloadbalancing:DescribeRules`
+ `elasticloadbalancing:DescribeTargetGroupAttributes`
+ `elasticloadbalancing:DescribeTargetGroups`
+ `elasticloadbalancing:DescribeTargetHealth`
+ `iam:AttachRolePolicy`
+ `iam:CreateRole`
+ `iam:DeleteRole`
+ `iam:DetachRolePolicy`
+ `iam:GetRole`
+ `iam:ListRoles`
+ `iam:PassRole`
+ `iam:SimulateCustomPolicy`
+ `iam:SimulatePrincipalPolicy`
+ `iam:TagRole`
+ `lambda:CreateFunction`
+ `lambda:DeleteFunction`
+ `lambda:GetFunction`
+ `lambda:GetFunctionConfiguration`
+ `lambda:InvokeFunction`
+ `lambda:TagResource`
+ `servicequotas:GetServiceQuota`
+ `ssm:GetAutomationExecution`

Exemple de politique IAM :

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateChangeSet",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack",
                "cloudformation:DescribeStacks",
                "ec2:DescribeInstances",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcEndpointServices",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcs",
                "ecs:DescribeClusters",
                "ecs:DescribeContainerInstances",
                "ecs:DescribeServices",
                "ecs:DescribeTaskDefinition",
                "ecs:DescribeTaskSets",
                "ecs:DescribeTasks",
                "ecs:ListTasks",
                "elasticloadbalancing:DescribeListeners",
                "elasticloadbalancing:DescribeLoadBalancerAttributes",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:DescribeRules",
                "elasticloadbalancing:DescribeTargetGroupAttributes",
                "elasticloadbalancing:DescribeTargetGroups",
                "elasticloadbalancing:DescribeTargetHealth",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:DetachRolePolicy",
                "iam:GetRole",
                "iam:ListRoles",
                "iam:SimulateCustomPolicy",
                "iam:SimulatePrincipalPolicy",
                "iam:TagRole",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction",
                "lambda:GetFunctionConfiguration",
                "lambda:InvokeFunction",
                "lambda:TagResource",
                "servicequotas:GetServiceQuota",
                "ssm:GetAutomationExecution"
            ],
            "Resource": "*"
        },
        {
            "Action": [
                "iam:AttachRolePolicy"
            ],
            "Resource": "arn:aws:iam::111122223333:role/AWSECSHealthChecks-*",
            "Condition": {
                "ArnLike": {
                    "iam:PolicyArn": "arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole"
                }
            },
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:aws:iam::111122223333:role/AWSECSHealthChecks-*",
            "Effect": "Allow",
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "lambda.amazonaws.com"
                }
            }
        }
    ]
}
```

`ExecutionResult.message`- Un résumé des résultats de toutes les étapes du diagnostic, y compris la connectivité réseau, l'état des tâches, l'état du groupe cible et les recommandations.

Pour configurer l'automatisation, procédez comme suit :

1. Ouvrez [ AWSSupport-TroubleshootAWSECSHealthChecks ](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAWSECSHealthChecks/description) dans le Gestionnaire de systèmes sous Documents.

1. Choisissez Execute automation (Exécuter l’automatisation).

1. Pour les paramètres d'entrée, entrez les informations suivantes :
   + **ECSClusterName (Obligatoire) : **

     Nom du cluster Amazon ECS.
   + **ECSServiceName (Obligatoire) : **

     Nom du service Amazon ECS.
   + **LambdaExecutionRole (Facultatif) : **

     L'ARN du rôle d'exécution Lambda utilisé pour l'étape de diagnostic du bilan de santé personnalisé. Si aucun rôle n'est spécifié, le runbook ignore l'étape de diagnostic avancé ou crée un rôle temporaire.
   + **AutomationAssumeRole (Facultatif) : **

     Le nom de ressource Amazon (ARN) du rôle Gestion des identités et des accès AWS (IAM) qui permet à Systems Manager Automation d'effectuer les actions en votre nom. Si aucun rôle n'est spécifié, Systems Manager Automation utilise les autorisations de l'utilisateur qui démarre ce runbook.

1. Sélectionnez Execute (Exécuter).

1. L'automatisation démarre.

1. Le document exécute les étapes suivantes :
   + **`CheckPermissions`**:

     Vérifie que l'utilisateur ou le rôle IAM qui a lancé l'automatisation dispose des autorisations requises.
   + **`CheckTargetClusterExistence`**:

     Vérifie si le cluster Amazon ECS spécifié existe et est actif.
   + **`CheckEcsServiceExistence`**:

     Vérifie si le service Amazon ECS spécifié existe et est actif.
   + **`CheckNetworkConnectivity`**:

     Vérifie la connectivité réseau entre les tâches ALB et Amazon ECS.
   + **`CheckTasksAreExiting`**:

     Vérifie si les tâches Amazon ECS se ferment de manière inattendue.
   + **`CheckTargetHealth`**:

     Vérifie l'état de santé des cibles du groupe cible.
   + **`CreateLambdaExecutionRole`**:

     Crée un rôle d'exécution Lambda temporaire si le `LambdaExecutionRole` paramètre n'est pas spécifié.
   + **`ExecuteCustomCheck`**:

     Déploie des fonctions Lambda temporaires pour simuler les demandes de bilan de santé et identifier les incohérences entre les codes de réponse.
   + **`ExecuteAdditionalCheck`**:

     Effectue des contrôles supplémentaires sur la configuration ALB et les délais de grâce des bilans de santé.
   + **`DeleteLambdaExecutionRole`**:

     Supprime le rôle d'exécution Lambda temporaire et les fonctions Lambda créés au cours du processus de diagnostic.
   + **`ExecutionResult`**:

     Compile tous les résultats dans un rapport de synthèse contenant des recommandations.

1. Une fois l'exécution terminée, consultez la section Sorties pour obtenir les résultats détaillés de l'exécution.

Systems Manager Automation
+  [Exécutez cette automatisation (console) ](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAWSECSHealthChecks/description) 
+  [Exécuter une automatisation ](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html) 
+  [Configuration d'une automatisation ](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html) 
+  [Supportez les flux de travail automatisés ](https://aws.amazon.com/premiumsupport/technology/saw/) 