View a markdown version of this page

AWSSupport-TroubleshootAWSECSHealthChecks - AWS Systems Manager Riferimento al runbook dell’automazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWSSupport-TroubleshootAWSECSHealthChecks

Description

Il AWSSupport-TroubleshootAWSECSHealthChecks runbook aiuta a diagnosticare e risolvere i problemi in cui le attività di Amazon Elastic Container Service (Amazon ECS) in esecuzione su istanze Amazon Elastic Compute Cloud (Amazon EC2) o (Fargate) non superano i controlli di integrità dell'Application Load Balancer AWS Fargate (ALB).

Il runbook esegue un'analisi sistematica mediante:

  1. Verifica della connettività di rete tra gli ALB e le attività di Amazon ECS

  2. Verifica se le attività terminano in modo imprevisto

  3. Analisi dello stato di salute e dei codici di risposta del gruppo target

  4. Esame della configurazione ALB e delle impostazioni di controllo dello stato

  5. Convalida della configurazione del servizio, compresi i periodi di tolleranza per il controllo dello stato

  6. Esecuzione di una diagnostica personalizzata per le mancate corrispondenze del codice di risposta

Importante

Per una diagnostica avanzata, il runbook implementa funzioni temporanee AWS Lambda (Lambda) all'interno di Amazon Virtual Private Cloud (Amazon VPC) per simulare le richieste di controllo dello stato dalla stessa prospettiva di rete dell'ALB. Un ruolo di esecuzione Lambda è richiesto per queste funzioni e può essere specificato come parametro o creato temporaneamente da questo runbook.

Esegui questa automazione (console)

Tipo di documento

Automazione

Proprietario

Amazon

Piattaforme

/

Autorizzazioni IAM richieste

Il AutomationAssumeRole parametro richiede le seguenti azioni per utilizzare correttamente il 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

Policy IAM di esempio:

{ "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" } } } ] }
Output

ExecutionResult.message- Un riepilogo dei risultati di tutte le fasi diagnostiche, tra cui connettività di rete, integrità delle attività, stato del gruppo target e raccomandazioni.

Istruzioni

Segui questi passaggi per configurare l'automazione:

  1. Apri AWSSupport-TroubleshootAWSECSHealthChecks in Systems Manager sotto Documenti.

  2. Scegli Esegui automazione.

  3. Per i parametri di input, inserisci quanto segue:

    • ECSClusterName (Obbligatorio):

      Il nome del cluster Amazon ECS.

    • ECSServiceName (Obbligatorio):

      Il nome del servizio Amazon ECS.

    • LambdaExecutionRole (Facoltativo):

      L'ARN del ruolo di esecuzione Lambda utilizzato per la fase di diagnostica personalizzata del controllo dello stato. Se non viene specificato alcun ruolo, il runbook salta la fase di diagnostica avanzata o crea un ruolo temporaneo.

    • AutomationAssumeRole (Facoltativo):

      L'Amazon Resource Name (ARN) del ruolo AWS Identity and Access Management (IAM) che consente a Systems Manager Automation di eseguire le azioni per tuo conto. Se non viene specificato alcun ruolo, Systems Manager Automation utilizza le autorizzazioni dell'utente che avvia questo runbook.

  4. Scegli Esegui.

  5. L'automazione viene avviata.

  6. Il documento esegue i seguenti passaggi:

    • CheckPermissions:

      Verifica che l'utente o il ruolo IAM che ha avviato l'automazione disponga delle autorizzazioni richieste.

    • CheckTargetClusterExistence:

      Verifica se il cluster Amazon ECS specificato esiste ed è attivo.

    • CheckEcsServiceExistence:

      Verifica se il servizio Amazon ECS specificato esiste ed è attivo.

    • CheckNetworkConnectivity:

      Verifica la connettività di rete tra le attività ALB e Amazon ECS.

    • CheckTasksAreExiting:

      Verifica se le attività di Amazon ECS vengono chiuse in modo imprevisto.

    • CheckTargetHealth:

      Verifica lo stato di salute degli obiettivi nel gruppo target.

    • CreateLambdaExecutionRole:

      Crea un ruolo di esecuzione Lambda temporaneo se il LambdaExecutionRole parametro non è specificato.

    • ExecuteCustomCheck:

      Implementa funzioni Lambda temporanee per simulare le richieste di controllo dello stato e identificare le discrepanze nel codice di risposta.

    • ExecuteAdditionalCheck:

      Esegue controlli aggiuntivi sulla configurazione ALB e sui periodi di prova per i controlli sullo stato di salute.

    • DeleteLambdaExecutionRole:

      Elimina il ruolo di esecuzione temporaneo di Lambda e le funzioni Lambda create durante il processo di diagnostica.

    • ExecutionResult:

      Compila tutti i risultati in un rapporto riassuntivo con raccomandazioni.

  7. Dopo il completamento, consulta la sezione Risultati per i risultati dettagliati dell'esecuzione.

Riferimenti

Systems Manager Automation