Edición y creación de una nueva versión de una asociación - AWS Systems Manager

Edición y creación de una nueva versión de una asociación

Puede editar una asociación de State Manager para especificar un nombre nuevo, la programación, el nivel de severidad, los destinos u otros valores. En el caso de asociaciones basadas en documentos del tipo de comando SSM, también puede elegir escribir la salida del comando en un bucket de Amazon Simple Storage Service (Amazon S3). Después de editar una asociación, State Manager crea una nueva versión. Puede ver distintas versiones después de la edición, tal como se describe en los siguientes procedimientos.

nota

Para que las asociaciones que se crean con los manuales de procedimientos de Automatización se apliquen cuando se detecten nuevos nodos de destino, se deben cumplir algunas condiciones. Para obtener más información, consulta Acerca de las actualizaciones de destino con los manuales de procedimientos de Automatización.

Los siguientes procedimientos describen cómo editar y crear una nueva versión de una asociación mediante la consola de Systems Manager, AWS Command Line Interface (AWS CLI) y AWS Tools for PowerShell (Tools for PowerShell).

importante

State Manager no admite la ejecución de asociaciones que utilizan una nueva versión de un documento si dicho documento se comparte desde otra cuenta. State Manager ejecuta siempre la versión default de un documento si se comparte desde otra cuenta, aunque la consola de Systems Manager muestre que se procesó una versión nueva. Si desea ejecutar una asociación con una versión nueva de un documento compartido desde otra cuenta, debe configurar la versión del documento endefault.

Crear una asociación (consola)

En el siguiente procedimiento, se describe cómo utilizar la consola de Systems Manager para editar y crear una nueva versión de una asociación.

nota

En el caso de las asociaciones que utilizan documentos de comandos de SSM, no manuales de procedimientos de automatización, este procedimiento requiere que tenga acceso de escritura a un bucket de Amazon S3 existente. Si no ha utilizado Amazon S3, debe tener en cuenta que se le cobrará por utilizar Amazon S3. Para obtener información sobre cómo crear un bucket, consulte Creación de un bucket.

Para editar una asociación de State Manager
  1. Abra la consola de AWS Systems Manager en https://console.aws.amazon.com/systems-manager/.

  2. En el panel de navegación, elija State Manager.

  3. Elija una asociación existente y luego elija Editar.

  4. Reconfigure la asociación para que cumpla los requisitos actuales.

    Para obtener información sobre las opciones de asociación con los documentos de Policy y de Command, consulte Creación de asociaciones. Para obtener información acerca de las opciones de asociación con manuales de procedimientos de Automation, consulte Programación de automatizaciones con asociaciones de State Manager.

  5. Elija Save changes (Guardar cambios).

  6. (Opcional) Para ver información sobre asociaciones, en la página Asociaciones, elija el nombre de la asociación que editó y, a continuación, elija la pestaña Versiones. El sistema enumera cada versión de la asociación que ha creado y editado.

  7. (Opcional) Para ver los resultados de las asociaciones basadas en documentos de Command de SSM, haga lo siguiente:

    1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

    2. Elija el nombre del bucket de Simple Storage Service (Amazon S3) que especificó para almacenar la información de salida del comando y, a continuación, elija la carpeta denominada con el ID del nodo que ejecutó la asociación. (si eligió almacenar información de salida en una carpeta del bucket, ábrala primero).

    3. Profundice varios niveles, a través de la carpeta awsrunPowerShell, hasta el archivo stdout.

    4. Elija Open o Download para ver el nombre de host.

Editar una asociación (línea de comandos)

En el siguiente procedimiento se describe cómo utilizar la AWS CLI (en Linux o Windows) o AWS Tools for PowerShell para editar y crear una nueva versión de una asociación.

Para editar una asociación de State Manager
  1. Si aún no lo ha hecho, instale y configure la AWS CLI o AWS Tools for PowerShell.

    Para obtener información, consulte Instalación o actualización de la última versión de la AWS CLI e Instalación de AWS Tools for PowerShell.

  2. Utilice el siguiente formato para crear un comando para editar y crear una nueva versión de una asociación de State Manager existente. Reemplace cada example resource placeholder con su propia información.

    importante

    Cuando llama a update-association, el sistema elimina todos los parámetros opcionales de la solicitud y sobrescribe la asociación con valores nulos para esos parámetros. Este comportamiento es así por diseño. Debe especificar todos los parámetros opcionales de la llamada, incluso si no cambia los parámetros. Esto incluye el parámetro --name. Antes de llamar a esta acción, le recomendamos que llame a la operación de la API describe-association y tome nota de todos los parámetros opcionales necesarios para su llamada a 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

    En el siguiente ejemplo se actualiza una asociación existente para cambiar el nombre a TestHostnameAssociation2. La nueva versión de asociación se ejecuta cada hora y escribe la salida de los comandos en el bucket de Amazon S3 especificado.

    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 * * ? *)"

    En el siguiente ejemplo se actualiza una asociación existente para cambiar el nombre a CalendarAssociation. La nueva asociación se ejecuta cuando el calendario está abierto y escribe la salida del comando en el bucket de Amazon S3 especificado.

    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"

    En el siguiente ejemplo se actualiza una asociación existente para cambiar el nombre a MultiCalendarAssociation. La nueva asociación se ejecuta cuando los calendarios están abiertos y escribe la salida del comando en el bucket de Amazon S3 especificado.

    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. Para ver la nueva versión de la asociación, ejecute el siguiente comando.

    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 *

    El sistema devuelve información similar a la siguiente.

    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}