AWS Systems Manager
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

编辑和创建关联的新版本

您可以编辑关联以指定新名称、计划、严重级别或目标。您也可以选择将命令输出写入到 Amazon S3 存储桶。编辑关联后,Systems Manager 将创建新版本。您可以在编辑后查看不同的版本,如以下过程中所述。

以下过程介绍了如何使用 AWS Systems Manager 控制台、AWS Command Line Interface (AWS CLI) 和 AWS Tools for PowerShell 编辑和创建新版本的关联。

编辑并创建新的关联版本 (控制台)

以下过程介绍了如何使用 Systems Manager 控制台编辑和创建关联的新版本。

注意

此过程要求您具有对现有 S3 存储桶的写入权限。如果您以前未使用过 Amazon S3,请注意使用 Amazon S3 将产生相应的费用。有关如何创建存储桶的信息,请参阅创建存储桶

编辑 状态管理器 关联

  1. 通过以下网址打开 AWS Systems Manager 控制台:https://console.amazonaws.cn/systems-manager/

  2. 在导航窗格中,选择 状态管理器

    -或者-

    如果 AWS Systems Manager 主页首先打开,请选择菜单图标 ( ) 以打开导航窗格,然后选择 状态管理器

  3. 选择在上一个过程中创建的关联,然后选择编辑

  4. Name 字段中,键入一个新名称。例如,键入 TestHostnameAssociation2

  5. 指定计划部分中,选择一个新选项。例如,选择 Cron 计划生成器,然后选择每 1 小时

  6. (可选)要将命令输出写入到 Amazon S3 存储桶,请在 Output options (输出选项) 部分中执行以下操作:

    • 选择 Enable writing output to S3

    • S3 存储桶名称字段中,键入您有写入权限的 S3 存储桶的名称。

    • (可选) 要将输出写入存储桶中的文件夹,请在 S3 键前缀字段中输入其名称。如果您指定名称的文件夹不存在,状态管理器 将创建该文件夹。

  7. 选择编辑关联

  8. 关联页面中,选择刚才编辑的关联的名称,然后选择版本选项卡。系统将列出您已创建和编辑的关联的每个版本。

  9. Open the Amazon S3 console at https://console.amazonaws.cn/s3/.

  10. 选择您指定用于存储命令输出的 S3 存储桶的名称,然后选择以运行关联的实例的 ID 命名的文件夹。(如果您选择将输出存储在存储桶中的文件夹内,请先打开它。)

  11. 下拉多个级别至 stdout 文件夹中的 awsrunPowerShell 文件。

  12. 选择打开下载查看主机名。

编辑和创建关联的新版本(命令行)

以下过程介绍了如何使用 AWS CLI(在 Linux 或 Windows 上)或 AWS Tools for PowerShell 编辑和创建关联的新版本。

编辑 状态管理器 关联

  1. 安装并配置 AWS CLI 或 AWS Tools for PowerShell(如果尚未执行该操作)。

    有关更多信息,请参阅 安装或升级 AWS CLIInstall or Upgrade the AWS Tools for PowerShell

  2. 使用以下格式创建一个命令,以编辑和创建现有 状态管理器 关联的新版本。

    LinuxWindowsPowerShell
    Linux
    aws ssm update-association \ --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE \ --association-name association_name \ --parameters (if any) \ --output-location S3Location='{OutputS3Region=region,OutputS3BucketName=bucketname,OutputS3KeyPrefix=keyprefix}' \ --scheduleexpression "cron_or_rate_expression"

    重要

    要保留关联的现有参数值(例如关联名称或合规性严重性),必须在更新关联时指定这些值。如果在更新关联时未指定这些参数值,则新的关联版本不使用任何值。例如,如果现有关联具有 cron 计划,但在更新时未指定 --schedule-expression,新的关联版本将没有计划表达式。

    Windows
    aws ssm update-association ^ --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE ^ --association-name association_name ^ --parameters (if any) ^ --output-location S3Location='{OutputS3Region=region,OutputS3BucketName=bucketname,OutputS3KeyPrefix=keyprefix}' ^ --scheduleexpression "cron_or_rate_expression"

    重要

    要保留关联的现有参数值(例如关联名称或合规性严重性),必须在更新关联时指定这些值。如果在更新关联时未指定这些参数,新的关联版本将使用默认值(“无”)。例如,如果现有关联具有 cron 计划,但在更新时未指定 --schedule-expression,新的关联版本将没有计划表达式。

    PowerShell
    Update-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE ` -AssociationName document_name ` -Parameter (if any) ` -S3Location_OutputS3BucketName bucket_name ` -S3Location_OutputS3KeyPrefix key_prefix ` -S3Location_OutputS3Region region ` -ScheduleExpression "cron_or_rate_expression"

    重要

    要保留关联的现有参数值(例如关联名称或合规性严重性),必须在更新关联时指定这些值。如果在更新关联时未指定这些参数,则新的关联版本不使用任何值。例如,如果现有关联具有 cron 计划,但在更新时未指定 -ScheduleExpression,新的关联版本将没有计划表达式。

    以下示例更新现有关联以将名称更改为 TestHostnameAssociation2。新的关联版本每小时运行一次,并将命令输出写入到指定的 Amazon S3 存储桶中。

    LinuxWindowsPowerShell
    Linux
    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=statemanager,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=statemanager,OutputS3KeyPrefix=logs}' ^ --schedule-expression "cron(0 */1 * * ? *)"
    PowerShell
    Update-SSMAssociation ` -AssociationId b85ccafe-9f02-4812-9b81-01234EXAMPLE ` -AssociationName TestHostnameAssociation2 ` -Parameter @{"commands"="echo Association"} ` -S3Location_OutputS3BucketName statemanager ` -S3Location_OutputS3KeyPrefix logs ` -S3Location_OutputS3Region us-east-1 ` -ScheduleExpression "cron(0 */1 * * ? *)"
  3. 要查看关联的新版本,请运行以下命令。

    LinuxWindowsPowerShell
    Linux
    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 *

    系统将返回类似于以下内容的信息。

    LinuxWindowsPowerShell
    Linux
    {
        "AssociationDescription": {
            "ScheduleExpression": "cron(0 */1 * * ? *)",
            "OutputLocation": {
                "S3Location": {
                    "OutputS3KeyPrefix": "logs",
                    "OutputS3BucketName": "statemanager",
                    "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": "statemanager",
                    "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}