Modification et création de la nouvelle version d'une association - AWS Systems Manager

Modification et création de la nouvelle version d'une association

Vous pouvez modifier une association State Manager pour spécifier un nouveau nom, un programme, un niveau de sévérité, des cibles ou d’autres valeurs. Pour les associations basées sur des documents de type SSM Command, vous pouvez également choisir d’écrire la sortie de la commande dans un compartiment Amazon Simple Storage Service (Amazon S3). Après avoir modifié une association, State Manager crée une nouvelle version. Vous pouvez afficher différentes versions après modification, comme décrit dans les procédures suivantes.

Note

Pour que les associations créées avec les dossiers d’exploitation Automation soient appliquées lorsque de nouveaux nœuds cibles sont détectés, certaines conditions doivent être remplies. Pour plus d’informations, veuillez consulter À propos des mises à jour de cibles avec les dossiers d’exploitation Automation.

Les procédures suivantes expliquent comment modifier et créer une nouvelle version d'une association à l'aide de la console Systems Manager, de l'AWS Command Line Interface (AWS CLI) et de AWS Tools for PowerShell (Tools for PowerShell).

Important

State Manager ne prend pas en charge l'exécution d'associations utilisant une nouvelle version d'un document si ce document est partagé à partir d'un autre compte. State Manager exécute toujours la version default d'un document s'il est partagé à partir d'un autre compte, même si la console Systems Manager indique qu'une nouvelle version a été traitée. Si vous souhaitez exécuter une association à l'aide d'une nouvelle version d'un document partagé à partir d'un autre compte, vous devez définir la version du document sur default.

Modifier une association (console)

La procédure suivante décrit comment utiliser la console Systems Manager pour modifier et créer une nouvelle version d'une association.

Note

Pour les associations qui utilisent des documents SSM Command et non des dossiers d’exploitation Automation, cette procédure requiert que vous disposiez d’un accès en écriture à un compartiment Amazon S3 existant. Si vous n'avez encore jamais utilisé d'Amazon S3, sachez que des frais s'appliquer à son utilisation. Pour plus d'informations sur la création d'un compartiment, consultez Créer un compartiment.

Pour modifier une association State Manager
  1. Ouvrez la console AWS Systems Manager à l'adresse https://console.aws.amazon.com/systems-manager/.

  2. Dans le panneau de navigation, sélectionnez State Manager.

  3. Sélectionnez une association existante, puis choisissez Modifier.

  4. Reconfigurez l’association en fonction de vos besoins actuels.

    Pour plus d’informations sur les options d’association avec des documents Command et Policy, consultez la section Création d'associations. Pour plus d’informations sur les options d’association avec des dossiers d’exploitation Automation, consultez la section Exécution des automatisations avec les associations State Manager.

  5. Choisissez Save Changes (Enregistrer les modifications).

  6. (Facultatif) Pour afficher des informations d’association, sélectionnez le nom de l’association que vous avez modifiée dans la page Associations, puis l’onglet Versions. Le système liste chaque version de l'association que vous avez créée et modifiée.

  7. (Facultatif) Afin d’afficher le résultat pour les associations basées sur des documents Command SSM, procédez comme suit :

    1. Ouvrez la console Amazon S3 sur https://console.aws.amazon.com/s3/.

    2. Choisissez le nom du compartiment Simple Storage Service (Amazon S3) que vous avez spécifié pour le stockage de la sortie de commande, puis choisissez le dossier dont le nom est l'ID du nœud qui a exécuté l'association. (Si vous avez choisi de stocker la sortie dans un dossier du compartiment, ouvrez-le en premier.)

    3. Explorez sur plusieurs niveaux dans le dossier awsrunPowerShell vers le fichier stdout.

    4. Sélectionnez Open ou Download pour afficher le nom d'hôte.

Modifier une association (ligne de commande)

La procédure suivante décrit comment utiliser l'AWS CLI (sous Linux ou Windows) ou AWS Tools for PowerShell pour modifier et créer une nouvelle version d'une association.

Pour modifier une association State Manager
  1. Installez et configurez l'AWS CLI ou AWS Tools for PowerShell si vous ne l'avez 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. Utilisez le format suivant pour créer une commande permettant de modifier et de créer une nouvelle version d'une association State Manager existante. Remplacez chaque example resource placeholder (espace réservé pour les ressources) avec vos propres informations.

    Important

    Lorsque vous appelez update-association, le système supprime tous les paramètres facultatifs de la demande et remplace l'association par des valeurs null pour ces paramètres. Ce comportement est intégré à la conception. Vous devez spécifier tous les paramètres facultatifs dans l'appel, même si vous ne modifiez pas les paramètres. Cela inclut le paramètre --name. Avant d’appeler cette action, nous vous recommandons d’appeler l’opération describe-association et de noter tous les paramètres facultatifs requis pour votre appel update-association.

    Linux & macOS
    aws ssm update-association \ --name document_name \ --document-version version_of_document_applied \ --instance-id instances_to_apply_association_on \ --parameters (if any) \ --targets target_options \ --schedule-expression "cron_or_rate_expression" \ --schedule-offset "number_between_1_and_6" \ --output-location s3_bucket_to_store_output_details \ --association-name association_name \ --max-errors a_number_of_errors_or_a_percentage_of_target_set \ --max-concurrency a_number_of_instances_or_a_percentage_of_target_set \ --compliance-severity severity_level \ --calendar-names change_calendar_names \ --target-locations aws_region_or_account
    Windows
    aws ssm update-association ^ --name document_name ^ --document-version version_of_document_applied ^ --instance-id instances_to_apply_association_on ^ --parameters (if any) ^ --targets target_options ^ --schedule-expression "cron_or_rate_expression" ^ --schedule-offset "number_between_1_and_6" ^ --output-location s3_bucket_to_store_output_details ^ --association-name association_name ^ --max-errors a_number_of_errors_or_a_percentage_of_target_set ^ --max-concurrency a_number_of_instances_or_a_percentage_of_target_set ^ --compliance-severity severity_level ^ --calendar-names change_calendar_names ^ --target-locations aws_region_or_account
    PowerShell
    Update-SSMAssociation ` -Name document_name ` -DocumentVersion version_of_document_applied ` -InstanceId instances_to_apply_association_on ` -Parameters (if any) ` -Target target_options ` -ScheduleExpression "cron_or_rate_expression" ` -ScheduleOffset "number_between_1_and_6" ` -OutputLocation s3_bucket_to_store_output_details ` -AssociationName association_name ` -MaxError a_number_of_errors_or_a_percentage_of_target_set -MaxConcurrency a_number_of_instances_or_a_percentage_of_target_set ` -ComplianceSeverity severity_level ` -CalendarNames change_calendar_names ` -TargetLocations aws_region_or_account

    L'exemple suivant met à jour une association existante en remplaçant le nom par TestHostnameAssociation2. La nouvelle version d'association s'exécute toutes les heures et écrit la sortie des commandes dans le compartiment Amazon S3 spécifié.

    Linux & macOS
    aws ssm update-association \ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \ --association-name TestHostnameAssociation2 \ --parameters commands="echo Association" \ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \ --schedule-expression "cron(0 */1 * * ? *)"
    Windows
    aws ssm update-association ^ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^ --association-name TestHostnameAssociation2 ^ --parameters commands="echo Association" ^ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^ --schedule-expression "cron(0 */1 * * ? *)"
    PowerShell
    Update-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE ` -AssociationName TestHostnameAssociation2 ` -Parameter @{"commands"="echo Association"} ` -S3Location_OutputS3BucketName amzn-s3-demo-bucket ` -S3Location_OutputS3KeyPrefix logs ` -S3Location_OutputS3Region us-east-1 ` -ScheduleExpression "cron(0 */1 * * ? *)"

    L'exemple suivant met à jour une association existante en remplaçant le nom par CalendarAssociation. La nouvelle association s'exécute lorsque le calendrier est ouvert, et elle écrit la sortie de la commande dans le compartiment Amazon S3 spécifié.

    Linux & macOS
    aws ssm update-association \ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \ --association-name CalendarAssociation \ --parameters commands="echo Association" \ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \ --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
    Windows
    aws ssm update-association ^ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^ --association-name CalendarAssociation ^ --parameters commands="echo Association" ^ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^ --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"
    PowerShell
    Update-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE ` -AssociationName CalendarAssociation ` -AssociationName OneTimeAssociation ` -Parameter @{"commands"="echo Association"} ` -S3Location_OutputS3BucketName amzn-s3-demo-bucket ` -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"

    L'exemple suivant met à jour une association existante en remplaçant le nom par MultiCalendarAssociation. La nouvelle association s'exécute lorsque les calendriers sont ouverts, et elle écrit la sortie de la commande dans le compartiment Amazon S3 spécifié.

    Linux & macOS
    aws ssm update-association \ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE \ --association-name MultiCalendarAssociation \ --parameters commands="echo Association" \ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' \ --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
    Windows
    aws ssm update-association ^ --association-id 8dfe3659-4309-493a-8755-01234EXAMPLE ^ --association-name MultiCalendarAssociation ^ --parameters commands="echo Association" ^ --output-location S3Location='{OutputS3Region=us-east-1,OutputS3BucketName=amzn-s3-demo-bucket,OutputS3KeyPrefix=logs}' ^ --calendar-names "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
    PowerShell
    Update-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE ` -AssociationName MultiCalendarAssociation ` -Parameter @{"commands"="echo Association"} ` -S3Location_OutputS3BucketName amzn-s3-demo-bucket ` -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
  3. Pour afficher la nouvelle version de l'association, exécutez la commande suivante.

    Linux & macOS
    aws ssm describe-association \ --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
    Windows
    aws ssm describe-association ^ --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE
    PowerShell
    Get-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE | Select-Object *

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

    Linux & macOS
    {
        "AssociationDescription": {
            "ScheduleExpression": "cron(0 */1 * * ? *)",
            "OutputLocation": {
                "S3Location": {
                    "OutputS3KeyPrefix": "logs",
                    "OutputS3BucketName": "amzn-s3-demo-bucket",
                    "OutputS3Region": "us-east-1"
                }
            },
            "Name": "AWS-RunPowerShellScript",
            "Parameters": {
                "commands": [
                    "echo Association"
                ]
            },
            "LastExecutionDate": 1559316400.338,
            "Overview": {
                "Status": "Success",
                "DetailedStatus": "Success",
                "AssociationStatusAggregatedCount": {}
            },
            "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
            "DocumentVersion": "$DEFAULT",
            "LastSuccessfulExecutionDate": 1559316400.338,
            "LastUpdateAssociationDate": 1559316389.753,
            "Date": 1559314038.532,
            "AssociationVersion": "2",
            "AssociationName": "TestHostnameAssociation2",
            "Targets": [
                {
                    "Values": [
                        "Windows"
                    ],
                    "Key": "tag:Environment"
                }
            ]
        }
    }
    Windows
    {
        "AssociationDescription": {
            "ScheduleExpression": "cron(0 */1 * * ? *)",
            "OutputLocation": {
                "S3Location": {
                    "OutputS3KeyPrefix": "logs",
                    "OutputS3BucketName": "amzn-s3-demo-bucket",
                    "OutputS3Region": "us-east-1"
                }
            },
            "Name": "AWS-RunPowerShellScript",
            "Parameters": {
                "commands": [
                    "echo Association"
                ]
            },
            "LastExecutionDate": 1559316400.338,
            "Overview": {
                "Status": "Success",
                "DetailedStatus": "Success",
                "AssociationStatusAggregatedCount": {}
            },
            "AssociationId": "b85ccafe-9f02-4812-9b81-01234EXAMPLE",
            "DocumentVersion": "$DEFAULT",
            "LastSuccessfulExecutionDate": 1559316400.338,
            "LastUpdateAssociationDate": 1559316389.753,
            "Date": 1559314038.532,
            "AssociationVersion": "2",
            "AssociationName": "TestHostnameAssociation2",
            "Targets": [
                {
                    "Values": [
                        "Windows"
                    ],
                    "Key": "tag:Environment"
                }
            ]
        }
    }
    PowerShell
    AssociationId                 : b85ccafe-9f02-4812-9b81-01234EXAMPLE
    AssociationName               : TestHostnameAssociation2
    AssociationVersion            : 2
    AutomationTargetParameterName : 
    ComplianceSeverity            : 
    Date                          : 5/31/2019 2:47:18 PM
    DocumentVersion               : $DEFAULT
    InstanceId                    : 
    LastExecutionDate             : 5/31/2019 3:26:40 PM
    LastSuccessfulExecutionDate   : 5/31/2019 3:26:40 PM
    LastUpdateAssociationDate     : 5/31/2019 3:26:29 PM
    MaxConcurrency                : 
    MaxErrors                     : 
    Name                          : AWS-RunPowerShellScript
    OutputLocation                : Amazon.SimpleSystemsManagement.Model.InstanceAssociationOutputLocation
    Overview                      : Amazon.SimpleSystemsManagement.Model.AssociationOverview
    Parameters                    : {[commands, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
    ScheduleExpression            : cron(0 */1 * * ? *)
    Status                        : 
    Targets                       : {tag:Environment}