Exécutez des opérations automatisées à grande échelle - AWS Systems Manager

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.

Exécutez des opérations automatisées à grande échelle

Avec AWS Systems Manager Automation, vous pouvez exécuter des automatisations sur un parc de AWS ressources en utilisant des cibles. De plus, vous pouvez contrôler le déploiement de l'automatisation dans l'ensemble de la flotte en spécifiant une valeur de simultanéité et un seuil d'erreurs. Les fonctions de simultanéité et de seuil d'erreurs sont appelées collectivement contrôles du débit. La valeur de simultanéité détermine le nombre de ressources autorisées à exécuter l'automatisation simultanément. Automation fournit également un mode de simultanéité adaptative auquel vous pouvez vous inscrire. La simultanéité adaptative met automatiquement à l'échelle votre quota d'automatisation en passant de 100 automatisations exécutées simultanément à 500. Le seuil d'erreurs détermine le nombre d'automatisations qui peuvent échouer jusqu'à ce que Systems Manager cesse d'envoyer l'automatisation à d'autres ressources.

Pour de plus amples informations sur la simultanéité et les seuils d'erreurs, consultez Automatisations de contrôle à grande échelle. Pour de plus amples informations sur les cibles, consultez Mappage des cibles pour une automatisation.

Les procédures suivantes décrivent comment activer la simultanéité adaptative et exécuter une automatisation avec des cibles et des contrôles de taux à l'aide de la console Systems Manager et l' AWS Command Line Interface (AWS CLI).

Exécution d'une automatisation avec des cibles et des contrôles du débit (console)

La procédure suivante décrit comment utiliser la console Systems Manager pour exécuter une automatisation avec des cibles et des contrôles du débit.

Pour exécuter une automatisation avec des cibles et des contrôles du débit
  1. Ouvrez la AWS Systems Manager console à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation, sélectionnez Automation (Automatisation), puis Execute automation (Exécuter l'automatisation).

  3. Dans la liste Automation document (Document Automation), sélectionnez un runbook. Choisissez une ou plusieurs options dans le volet Catégories de documents pour filtrer SSM les documents en fonction de leur objectif. Pour afficher un runbook vous appartenant, sélectionnez l'onglet Owned by me (M'appartenant). Pour afficher un runbook partagé avec votre compte, sélectionnez l'onglet Shared with me (Partagé avec moi). Pour afficher tous les runbooks, sélectionnez l'onglet All documents (Tous les documents).

    Note

    Vous pouvez consulter les informations sur un runbook en sélectionnant son nom.

  4. Dans la section Document details (Détails du document), vérifiez que l'option Document version (Version de document) correspond à la version que vous souhaitez exécuter. Le système inclut les options de version suivantes :

    • Version par défaut lors de l’exécution : sélectionnez cette option si le runbook d’Automatisation est mis à jour régulièrement et qu’une nouvelle version par défaut est attribuée.

    • Dernière version lors de l’exécution : sélectionnez cette option si le runbook d’Automatisation est mis à jour régulièrement et que vous souhaitez exécuter la dernière version mise à jour.

    • 1 (Par défaut) : sélectionnez cette option pour exécuter la première version du document, qui est la version par défaut.

  5. Sélectionnez Suivant.

  6. Dans la section Execution Mode (Mode d'exécution), sélectionnez Rate Control (Contrôle du débit). Vous devez utiliser ce mode ou Multi-account and Region (Compte et région multiples) si vous souhaitez utiliser des cibles et des contrôles du débit.

  7. Dans la section Cibles, choisissez la manière dont vous souhaitez cibler les AWS ressources sur lesquelles vous souhaitez exécuter l'automatisation. Ces options sont obligatoires.

    1. Utilisez la liste Parameter (Paramètre) pour choisir un paramètre. Les éléments de la liste Parameter (Paramètre) sont déterminés par les paramètres du runbook Automation que vous avez sélectionnés au début de cette procédure. En choisissant un paramètre, vous définissez le type de ressource sur lequel le flux de travail d'automatisation s'exécutera.

    2. Utilisez la liste Targets (Cibles) pour choisir la façon dont vous souhaitez cibler les ressources.

      1. Si vous choisissez de cibler des ressources à l'aide de valeurs de paramètre, saisissez la valeur de paramètre du paramètre que vous avez choisi, dans la section Input parameters (Paramètres d'entrée).

      2. Si vous avez choisi de cibler les ressources à l'aide de AWS Resource Groups, choisissez le nom du groupe dans la liste des groupes de ressources.

      3. Si vous choisissez de cibler des ressources à l'aide de balises, entrez la clé de balise et (éventuellement) la valeur de balise dans les champs fournis. Choisissez Ajouter.

      4. Si vous souhaitez exécuter un runbook d'automatisation sur toutes les instances de la version actuelle Compte AWS Région AWS, sélectionnez Toutes les instances.

  8. Dans la section Input parameters (Paramètres d'entrée), spécifiez les entrées obligatoires. Vous pouvez éventuellement choisir un rôle de IAM service dans la AutomationAssumeRoleliste.

    Note

    Vous pourriez ne pas avoir besoin de choisir certaines options dans la section Paramètres d'entrée. Cela est dû au fait que vous avez ciblé des ressources à l'aide de balises ou d'un groupe de ressources. Par exemple, si vous avez choisi le AWS-RestartEC2Instance runbook, vous n'avez pas besoin de spécifier ou de choisir une instance IDs dans la section Paramètres d'entrée. L'exécution d'Automation localise les instances à redémarrer en utilisant les balises ou le groupe de ressources que vous avez spécifiés.

  9. Utilisez les options de la section Contrôle du débit pour limiter le nombre de AWS ressources pouvant exécuter l'automatisation au sein de chaque paire compte-région.

    Dans la section Simultanéité, sélectionnez une option :

    • Sélectionnez targets (cibles) pour entrer un nombre absolu de cibles pouvant exécuter le flux de travail Automation simultanément.

    • Sélectionnez percentage (pourcentage) pour indiquer un pourcentage de l'ensemble de cibles pouvant exécuter le flux de travail Automation simultanément.

  10. Dans la section Error threshold (Seuil d'erreurs), sélectionnez une option :

    • Sélectionnez erreurs pour indiquer un nombre absolu d'erreurs autorisées avant qu'Automation ne cesse d'envoyer le flux de travail à d'autres ressources.

    • Sélectionnez pourcentage pour indiquer un pourcentage d'erreurs autorisées avant qu'Automation ne cesse d'envoyer le flux de travail à d'autres ressources.

  11. (Facultatif) Choisissez une CloudWatch alarme à appliquer à votre automatisation à des fins de surveillance. Pour associer une CloudWatch alarme à votre automatisation, le IAM principal qui lance l'automatisation doit être autorisé à effectuer l'iam:createServiceLinkedRoleaction. Pour plus d'informations sur les CloudWatch alarmes, consultez la section Utilisation des CloudWatch alarmes Amazon. Notez que l'activation de votre alarme arrête l'automatisation. Si vous l'utilisez AWS CloudTrail, vous verrez l'APIappel apparaître sur votre parcours.

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

Pour afficher les automatisations démarrées par votre automatisation du contrôle de débit, dans le panneau de navigation, sélectionnez Automation (Automatisation), puis Show child automations (Afficher les automatisations enfants).

Exécution d'une automatisation avec des cibles et des contrôles du débit (ligne de commande)

La procédure suivante décrit comment utiliser AWS CLI (sous Linux ou Windows) ou comment AWS Tools for PowerShell exécuter une automatisation avec des cibles et des contrôles de débit.

Pour exécuter une automatisation avec des cibles et des contrôles du débit
  1. Installez et configurez le AWS CLI ou le AWS Tools for PowerShell, si ce n'est pas déjà fait.

    Pour plus d'informations, consultez la section Installation ou mise à jour de la version la plus récente de l' AWS CLI et Installation d' AWS Tools for PowerShell.

  2. Exécutez la commande suivante pour afficher une liste de documents.

    Linux & macOS
    aws ssm list-documents
    Windows
    aws ssm list-documents
    PowerShell
    Get-SSMDocumentList

    Notez le nom du runbook à utiliser.

  3. Exécutez la commande suivante pour afficher les détails relatifs au runbook. Remplacez le runbook name avec le nom du runbook dont vous souhaitez consulter les détails. Notez un nom de paramètre (par exemple, InstanceId) que vous souhaitez utiliser pour l'option --target-parameter-name. Ce paramètre détermine le type de ressource sur lequel l'automatisation s'exécute.

    Linux & macOS
    aws ssm describe-document \ --name runbook name
    Windows
    aws ssm describe-document ^ --name runbook name
    PowerShell
    Get-SSMDocumentDescription ` -Name runbook name
  4. Créez une commande qui utilise les options de cibles et de contrôle du débit que vous souhaitez exécuter. Remplacez chacun example resource placeholder avec vos propres informations.

    Ciblage à l'aide de balises

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=tag:key name,Values=value \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=tag:key name,Values=value ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "tag:key name" $Targets.Values = "value" Start-SSMAutomationExecution ` DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value";"input parameter 2 name"="input parameter 2 value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Ciblage à l'aide des valeurs de paramètre

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=ParameterValues,Values=value,value 2,value 3 \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=ParameterValues,Values=value,value 2,value 3 ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ParameterValues" $Targets.Values = "value","value 2","value 3" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Ciblage à l'aide AWS Resource Groups

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets Key=ResourceGroup,Values=Resource group nname \ --target-parameter-name parameter name \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=ResourceGroup,Values=Resource group name ^ --target-parameter-name parameter name ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "ResourceGroup" $Targets.Values = "Resource group name" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "parameter name" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    Cibler toutes les EC2 instances Amazon dans les versions actuelles Compte AWS et Région AWS

    Linux & macOS
    aws ssm start-automation-execution \ --document-name runbook name \ --targets "Key=AWS::EC2::Instance,Values=*" \ --target-parameter-name instanceId \ --parameters "input parameter name=input parameter value" \ --max-concurrency 10 \ --max-errors 25%
    Windows
    aws ssm start-automation-execution ^ --document-name runbook name ^ --targets Key=AWS::EC2::Instance,Values=* ^ --target-parameter-name instanceId ^ --parameters "input parameter name=input parameter value" ^ --max-concurrency 10 ^ --max-errors 25%
    PowerShell
    $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target $Targets.Key = "AWS::EC2::Instance" $Targets.Values = "*" Start-SSMAutomationExecution ` -DocumentName "runbook name" ` -Targets $Targets ` -TargetParameterName "instanceId" ` -Parameter @{"input parameter name"="input parameter value"} ` -MaxConcurrency "10" ` -MaxError "25%"

    La commande renvoie un ID d'exécution. Copiez cet ID dans le Presse-papiers. Vous pouvez utiliser cet ID pour afficher l'état de l'automatisation.

    Linux & macOS
    {
        "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
    }
    Windows
    {
        "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
    }
    PowerShell
    a4a3c0e9-7efd-462a-8594-01234EXAMPLE
  5. Pour afficher l'automatisation, exécutez la commande suivante. Remplacez chacun automation execution ID avec vos propres informations.

    Linux & macOS
    aws ssm describe-automation-executions \ --filter Key=ExecutionId,Values=automation execution ID
    Windows
    aws ssm describe-automation-executions ^ --filter Key=ExecutionId,Values=automation execution ID
    PowerShell
    Get-SSMAutomationExecutionList | ` Where {$_.AutomationExecutionId -eq "automation execution ID"}
  6. Pour afficher les détails de la progression de l'automatisation, exécutez la commande suivante. Remplacez chacun automation execution ID avec vos propres informations.

    Linux & macOS
    aws ssm get-automation-execution \ --automation-execution-id automation execution ID
    Windows
    aws ssm get-automation-execution ^ --automation-execution-id automation execution ID
    PowerShell
    Get-SSMAutomationExecution ` -AutomationExecutionId automation execution ID

    Le système retourne des informations telles que les suivantes.

    Linux & macOS
    {
        "AutomationExecution": {
            "StepExecutionsTruncated": false,
            "AutomationExecutionStatus": "Success",
            "MaxConcurrency": "1",
            "Parameters": {},
            "MaxErrors": "1",
            "Outputs": {},
            "DocumentName": "AWS-StopEC2Instance",
            "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
            "ResolvedTargets": {
                "ParameterValues": [
                    "i-02573cafcfEXAMPLE"
                ],
                "Truncated": false
            },
            "ExecutionEndTime": 1564681619.915,
            "Targets": [
                {
                    "Values": [
                        "DEV"
                    ],
                    "Key": "tag:ENV"
                }
            ],
            "DocumentVersion": "1",
            "ExecutionStartTime": 1564681576.09,
            "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
            "StepExecutions": [
                {
                    "Inputs": {
                        "InstanceId": "i-02573cafcfEXAMPLE"
                    },
                    "Outputs": {},
                    "StepName": "i-02573cafcfEXAMPLE",
                    "ExecutionEndTime": 1564681619.093,
                    "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                    "ExecutionStartTime": 1564681576.836,
                    "Action": "aws:executeAutomation",
                    "StepStatus": "Success"
                }
            ],
            "TargetParameterName": "InstanceId",
            "Mode": "Auto"
        }
    }
    Windows
    {
        "AutomationExecution": {
            "StepExecutionsTruncated": false,
            "AutomationExecutionStatus": "Success",
            "MaxConcurrency": "1",
            "Parameters": {},
            "MaxErrors": "1",
            "Outputs": {},
            "DocumentName": "AWS-StopEC2Instance",
            "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
            "ResolvedTargets": {
                "ParameterValues": [
                    "i-02573cafcfEXAMPLE"
                ],
                "Truncated": false
            },
            "ExecutionEndTime": 1564681619.915,
            "Targets": [
                {
                    "Values": [
                        "DEV"
                    ],
                    "Key": "tag:ENV"
                }
            ],
            "DocumentVersion": "1",
            "ExecutionStartTime": 1564681576.09,
            "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
            "StepExecutions": [
                {
                    "Inputs": {
                        "InstanceId": "i-02573cafcfEXAMPLE"
                    },
                    "Outputs": {},
                    "StepName": "i-02573cafcfEXAMPLE",
                    "ExecutionEndTime": 1564681619.093,
                    "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                    "ExecutionStartTime": 1564681576.836,
                    "Action": "aws:executeAutomation",
                    "StepStatus": "Success"
                }
            ],
            "TargetParameterName": "InstanceId",
            "Mode": "Auto"
        }
    }
    PowerShell
    AutomationExecutionId       : a4a3c0e9-7efd-462a-8594-01234EXAMPLE
    AutomationExecutionStatus   : Success
    CurrentAction               : 
    CurrentStepName             : 
    DocumentName                : AWS-StopEC2Instance
    DocumentVersion             : 1
    ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
    ExecutionEndTime            : 8/1/2019 5:46:59 PM
    ExecutionStartTime          : 8/1/2019 5:46:16 PM
    FailureMessage              : 
    MaxConcurrency              : 1
    MaxErrors                   : 1
    Mode                        : Auto
    Outputs                     : {}
    Parameters                  : {}
    ParentAutomationExecutionId : 
    ProgressCounters            : 
    ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
    StepExecutions              : {i-02573cafcfEXAMPLE}
    StepExecutionsTruncated     : False
    Target                      : 
    TargetLocations             : {}
    TargetMaps                  : {}
    TargetParameterName         : InstanceId
    Targets                     : {tag:Name}
    Note

    Vous pouvez aussi surveiller le statut de l'automatisation dans la console. Dans la liste Automation executions (Exécutions Automation), sélectionnez l'exécution que vous venez juste d'exécuter, puis sélectionnez l'onglet Execution Steps (Étapes d'exécution). Cet onglet affiche le statut des actions de l'automatisation.