编辑和创建关联的新版本 - Amazon Web Services Systems Manager
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

编辑和创建关联的新版本

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

以下过程介绍了如何使用 Systems Manager 控制台编辑和创建关联的新版本。Amazon命令行界面 (AmazonCLI)和AmazonTools for PowerShell(Tools for PowerShell)。

编辑关联(控制台)

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

注意

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

编辑 State Manager 关联

  1. 打开Amazon Web Services Systems Manager控制台,位于https://console.aws.amazon.com/systems-manager/

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

    -或者-

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

  3. 选择您在中创建的关联创建关联(命令行),然后选择。编辑

  4. 名称字段中,输入新名称。例如,输入 TestHostnameAssociation2

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

  6. (可选)对于 Output options (输出选项),要将命令输出保存到文件,请选中 Enable writing to S3 (允许写入 S3) 框。在框中输入存储桶和前缀(文件夹)名称。

    注意

    授予将数据写入 S3 存储桶的能力的 S3 权限是分配给实例的实例配置文件的权限,而不是执行此任务的 IAM 用户的权限。有关更多信息,请参阅 。为创建 IAM 实例配置文件。此外,如果指定的 S3 存储桶位于不同的Amazon Web Services 账户,请确保与该实例关联的实例配置文件具有写入该存储桶的必要权限。

  7. 选择编辑关联。配置关联以满足当前要求。

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

  9. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

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

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

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

编辑关联(命令行)

以下过程介绍如何使用AmazonCLI(在 Linux 或 Windows 上)或AmazonTools for PowerShell 编辑和创建关联的新版本的工具。

编辑 State Manager 关联

  1. 安装和配置AmazonCLI 或AmazonTools for PowerShell,如果您还没有。

    想要了解有关信息,请参阅安装或升级Amazon命令行工具

  2. 使用以下格式创建一个命令,以编辑和创建现有 State Manager 关联的新版本。

    Linux & macOS
    aws ssm update-association \ --association-id b85ccafe-9f02-4812-9b81-01234EXAMPLE \ --association-name association_name \ --parameters (if any) \ --output-location S3Location='{OutputS3Region=region,OutputS3BucketName=DOC-EXAMPLE-BUCKET,OutputS3KeyPrefix=keyprefix}' \ --scheduleexpression "cron_or_rate_expression" \ --calendar-names calendar_names
    重要

    要保留关联的现有参数值(例如关联名称或合规性严重性),请在更新关联时指定这些值。如果在更新关联时未指定这些参数值,则新的关联版本不使用任何值。例如,如果现有关联具有 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=DOC-EXAMPLE-BUCKET,OutputS3KeyPrefix=keyprefix}' ^ --scheduleexpression "cron_or_rate_expression" ^ --calendar-names calendar_names
    重要

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

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

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

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

    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=DOC-EXAMPLE-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=DOC-EXAMPLE-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 DOC-EXAMPLE-BUCKET ` -S3Location_OutputS3KeyPrefix logs ` -S3Location_OutputS3Region us-east-1 ` -ScheduleExpression "cron(0 */1 * * ? *)"

    以下示例更新现有关联以将名称更改为 CalendarAssociation。新关联在日历打开时运行,并将命令输出写入指定的 Amazon S3 存储桶。

    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=DOC-EXAMPLE-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=DOC-EXAMPLE-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 DOC-EXAMPLE-BUCKET ` -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar2"

    以下示例更新现有关联以将名称更改为 MultiCalendarAssociation。当日历打开并将命令输出写入指定的 Amazon S3 存储桶时,新关联将运行。

    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=DOC-EXAMPLE-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=DOC-EXAMPLE-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 DOC-EXAMPLE-BUCKET ` -CalendarNames "arn:aws:ssm:us-east-1:123456789012:document/testCalendar1" "arn:aws:ssm:us-east-2:123456789012:document/testCalendar2"
  3. 要查看关联的新版本,请运行以下命令。

    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 *

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

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