

• Amazon Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# 处理 Parameter Store 中的参数版本
<a name="sysman-paramstore-versions"></a>

每次编辑参数的值时，Parameter Store（Amazon Systems Manager 中的一项工具）都会创建参数的新*版本*，也会保留以前的版本。在最初创建一个参数时，Parameter Store 为该参数分配版本 `1`。更改参数的值后，Parameter Store 会自动将版本号增加 1。您可以在参数的历史记录中查看所有版本的详细信息（包括值）。

您还可以指定要在 API 命令和 SSM 文档中使用的参数的版本；例如：`ssm:MyParameter:3`。您可以在 API 调用和 SSM 文档中指定参数名和特定版本号。如果不指定版本号，系统自动使用最新版本。如果您为不存在的版本指定编号，则系统将返回错误，而不会回退到该参数的最新或默认版本。

您可以使用参数版本查看一段时间内更改参数的次数。此外，参数版本提供了一层保护，以防止参数值被意外更改。

您最多可以为一个参数创建和维护 100 个版本。在创建了 100 个参数版本后，每次创建新版本时，都会从历史记录中删除参数的最旧版本，以便为新版本腾出空间。

此情况的一个例外是历史记录中已经有 100 个参数版本，并且参数标签被分配给参数的最旧版本。在这种情况下，不会从历史记录中删除该版本，创建新参数版本的请求将失败。此保护措施旨在防止分配有任务关键型标签的参数版本被删除。要继续创建新参数，请首先将标签从参数的最旧版本移至较新版本，以便在操作中使用。有关移动参数标签的信息，请参阅 [使用控制台来移动参数标签](sysman-paramstore-labels.md#sysman-paramstore-labels-console-move) 和 [使用 Amazon CLI 来移动参数标签](sysman-paramstore-labels.md#sysman-paramstore-labels-cli-move)。

以下过程介绍了如何编辑参数，并验证是否已创建新版本。您可以使用 `get-parameter` 和 `get-parameters` 命令查看参数版本。有关使用这些命令的示例，请参阅*《Amazon Systems Manager API 参考》*中的 [GetParameter](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_Examples) 和 [GetParameters](https://docs.amazonaws.cn/systems-manager/latest/APIReference/API_GetParameters.html#API_GetParameters_Examples) 

**Topics**
+ [使用控制台创建参数的新版本](#sysman-paramstore-version-console)
+ [引用参数版本](#reference-parameter-version)

## 使用控制台创建参数的新版本
<a name="sysman-paramstore-version-console"></a>

您可以使用 Systems Manager 控制台创建参数的新版本并查看参数的版本历史记录。

**创建参数的新版本**

1. 访问 [https://console.aws.amazon.com/systems-manager/](https://console.amazonaws.cn/systems-manager/)，打开 Amazon Systems Manager 控制台。

1. 在导航窗格中，请选择 **Parameter Store**。

1. 选择之前创建的参数的名称。有关创建新参数的信息，请参阅 [在 Systems Manager 中创建 Parameter Store 参数](sysman-paramstore-su-create.md)。

1. 选择**编辑**。

1. 在 **Value (值)** 框中输入新的值，然后选择 **Save changes (保存更改)**。

1. 选择刚刚更新的参数的名称。在 **Overview** 选项卡上，验证版本号是否增加 1，并验证新值。

1. 要查看参数的所有版本的历史记录，请选择 **History (历史记录)** 选项卡。

## 引用参数版本
<a name="reference-parameter-version"></a>

可以使用以下格式，在命令、API 调用和 SSM 文档中引用特定的参数版本：ssm:`parameter-name:version-number`。

在以下示例中，Amazon Elastic Compute Cloud (Amazon EC2) `run-instances command` 使用参数 `golden-ami` 的版本 3。

------
#### [ Linux & macOS ]

```
aws ec2 run-instances \
    --image-id resolve:ssm:/golden-ami:3 \
    --count 1 \
    --instance-type t2.micro \
    --key-name my-key-pair \
    --security-groups my-security-group
```

------
#### [ Windows ]

```
aws ec2 run-instances ^
    --image-id resolve:ssm:/golden-ami:3 ^
    --count 1 ^
    --instance-type t2.micro ^
    --key-name my-key-pair ^
    --security-groups my-security-group
```

------

**注意**  
使用 `resolve` 和参数值仅适用于 `--image-id` 选项和包含 Amazon Machine Image (AMI) 作为其值的参数。有关更多信息，请参阅 [在 Parameter Store 中为 Amazon Machine Image ID 使用本机参数支持](parameter-store-ec2-aliases.md)。

以下是有关在 SSM 文档中指定名为 `MyRunCommandParameter` 的参数的版本 2 的示例。

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Run a shell script or specify the commands to run.
parameters:
  commands:
    type: String
    description: "(Required) Specify a shell script or a command to run."
    displayType: textarea
    default: "{{ssm:MyRunCommandParameter:2}}"
mainSteps:
- action: aws:runShellScript
  name: RunScript
  inputs:
    runCommand:
    - "{{commands}}"
```

------
#### [ JSON ]

```
{
    "schemaVersion": "2.2",
    "description": "Run a shell script or specify the commands to run.",
    "parameters": {
        "commands": {
            "type": "String",
            "description": "(Required) Specify a shell script or a command to run.",
            "displayType": "textarea",
            "default": "{{ssm:MyRunCommandParameter:2}}"
        }
    },
    "mainSteps": [
        {
            "action": "aws:runShellScript",
            "name": "RunScript",
            "inputs": {
                "runCommand": [
                    "{{commands}}"
                ]
            }
        }
    ]
}
```

------