使用参数版本 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用参数版本

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

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

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

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

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

以下过程介绍了如何编辑参数,并验证是否已创建新版本。您可以使用 get-parameterget-parameters 命令查看参数版本。有关使用这些命令的示例,请参阅《Amazon Systems Manager API 参考》中的 GetParameterGetParameters

创建参数的新版本(控制台)

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

创建参数的新版本
  1. 访问 https://console.aws.amazon.com/systems-manager/,打开 Amazon Systems Manager 控制台。

  2. 在导航窗格中,选择 Parameter Store

    -或者-

    如果首先打开 Amazon Systems Manager 主页,选择菜单图标 ( 
    The menu icon
  ) 以打开导航窗格,然后选择 Parameter Store

  3. 选择之前创建的参数的名称。有关创建新参数的信息,请参阅 创建 Systems Manager 参数

  4. 选择编辑

  5. Value (值) 框中输入新的值,然后选择 Save changes (保存更改)

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

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

引用参数版本

可以使用以下格式,在命令、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) 作为其值的参数。有关更多信息,请参阅 亚马逊机器映像 ID 的本机参数支持

以下是有关在 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}}" ] } } ] }