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

标记参数

参数标签是用户定义的别名,帮助管理参数的不同版本。修改参数时,Systems Manager 将自动保存新版本并将版本号增加 1。标签可帮助您在存在多个版本时记住参数版本的用途。

例如,假设您有一个名为 /MyApp/DB/ConnectionString 的参数。参数值在测试环境中是本地数据库中 MySQL 服务器的连接字符串。更新完应用程序之后,您希望此参数使用生产数据库的连接字符串。您更改了 /MyApp/DB/ConnectionString 的值。Systems Manager 将自动使用新连接字符串创建版本 2。为帮助您记住每个版本的用途,您为每个参数附加了一个标签。对于版本 1,您附加了 Test 标签,并为版本 2 附加了 Production 标签。

您可以将一个参数版本的标签移至另一个版本。例如,如果您使用新生产数据库的连接字符串为 /MyApp/DB/ConnectionString 参数创建版本 3,则可将 Production 标签从参数 2 移至参数 3。

参数标签是参数标记的轻量级替代。您的组织可能对必须应用于不同 AWS 资源的标记具有严格的准则。相比之下,标签只是参数特定版本的文本关联。

与标记类似,您可使用标签查询参数。如果使用 GetParametersByPath API 操作查询参数设置,则可查看使用相同标签的所有特定参数版本的列表,如本节后面所述。

标签要求和限制

参数标签具有以下要求和限制:

  • 一个参数版本最多可以具有 10 个标签。

  • 您无法将同一标签附加到同一参数的不同版本。例如,如果版本 1 具有标签 Production,则无法将 Production 附加到版本 2。

  • 您可以将一个参数版本的标签移至另一个参数版本。

  • 创建新参数时,无法创建标签。必须将标签附加到参数的特定版本。

  • 无法删除参数标签。如果不再想使用参数标签,则必须将其移至参数的其他版本。

  • 标签最多可包含 100 个字符。

  • 标签可以包含字母(区分大小写)、数字、句点 (.)、连字符 (-) 或下划线 (_)。

  • 标签不能以数字、“aws”或“ssm”(不区分大小写)开头。如果标签无法满足这些要求,则不会将标签附加到参数版本,并且系统将在 InvalidLabels 的列表中显示它。

使用参数标签(控制台)

此部分描述如何使用 AWS Systems Manager 控制台执行以下任务。

创建新的参数标签

以下过程介绍如何使用 Systems Manager 控制台将标签附加到现有 参数的特定版本。创建参数时,无法附加标签。

使用控制台将标签附加到参数版本

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

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

    -或者-

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

  3. 选择参数的名称以打开该参数的详细信息页面。

  4. 选择 History 选项卡。

  5. 选择要为其附加标签的参数版本。

  6. 选择 Attach labels (附加标签)

  7. 选择 Add another label (添加另一个标签)

  8. 在文本框中,输入标签。要添加更多标签,请选择 Add another label (添加另一个标签)。您最多可以附加 10 个标签。

  9. 附加完标签之后,选择 Confirm (确认)

查看附加到参数的标签

一个参数版本最多可以具有 10 个标签。以下过程介绍如何使用 Systems Manager 控制台查看附加到参数版本的所有标签。

使用控制台查看附加到参数版本的标签

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

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

    -或者-

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

  3. 选择参数的名称以打开该参数的详细信息页面。

  4. 选择 History 选项卡。

  5. 找到要查看其所有附加标签的参数版本。标签列显示附加到参数版本的所有标签。

移动参数标签

参数标签创建后便无法删除。但是,可以在参数版本之间移动标签。以下过程介绍如何使用 Systems Manager 控制台将参数标签移至同一参数的其他版本。

使用控制台将标签移至其他参数版本

  1. https://console.amazonaws.cn/systems-manager/ 上打开 AWS Systems Manager 控制台。

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

    -或者-

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

  3. 选择参数的名称以打开该参数的详细信息页面。

  4. 选择 History 选项卡。

  5. 选择要移动其标签的参数版本。

  6. 选择 Attach labels (附加标签)

  7. 选择 Add another label (添加另一个标签)

  8. 在文本框中,输入标签。控制台将通知您标签移动。

  9. 完成后,请选择 Confirm (确认)

使用参数标签 (AWS CLI)

此部分描述如何使用 AWS CLI 执行以下任务。

创建新的参数标签

以下过程介绍如何使用 AWS CLI 将标签附加到现有 参数的特定版本。创建参数时,无法附加标签。

创建新的参数标签

  1. 打开 AWS CLI 并运行以下命令指定您的凭证和区域。您必须在 Amazon EC2 中具有管理员权限,或者您必须在 IAM 中被授予相应权限。有关更多信息,请参阅 Systems Manager 先决条件

    aws configure

    系统将提示您指定以下内容:

    AWS Access Key ID [None]: key_name AWS Secret Access Key [None]: key_name Default region name [None]: region Default output format [None]: ENTER
  2. 执行以下命令以查看您有权为其附加标签的参数的列表。

    注意

    参数只在创建它的区域可用。如果看不到要为其附加标签的参数,请验证您的区域。

    aws ssm describe-parameters

    记下要为其附加标签的参数的名称。

  3. 执行以下命令,查看该参数的所有版本。

    aws ssm get-parameter-history --name "the_parameter_name"

    记下要为其附加标签的参数版本。

  4. 执行以下命令,按版本号检索有关参数的信息。

    aws ssm get-parameters --names “the_parameter_name:the_version_number"

    以下是示例。

    aws ssm get-parameters --names “/Production/SQLConnectionString:3"
  5. 执行以下命令之一,以将标签附加到参数版本。如果附加多个标签,则必须用空格隔开标签名称。

    将标签附加到参数的最新版本

    aws ssm label-parameter-version --name parameter_name --labels label_name

    将标签附加到参数的特定版本

    aws ssm label-parameter-version --name parameter_name --parameter-version version_number --labels label_name

    下面是一些示例:

    aws ssm label-parameter-version --name /config/endpoint --labels production east-region finance
    aws ssm label-parameter-version --name /config/endpoint --parameter-version 3 --labels MySQL-test

    注意

    如果输出在 InvalidLabels 列表中显示您创建的标签,则表示此标签不符合本主题前面描述的要求。请查看要求并重试。如果 InvalidLabels 列表为空,则表示您的标签已成功应用于参数版本。

  6. 可以使用版本号或标签名称查看参数的详细信息。执行以下命令并指定您在上一步中创建的标签。

    aws ssm get-parameter --name parameter_name:label_name --with-decryption

    此命令会返回如下信息:

    { "Parameter": { "Version": version_number, "Type": "parameter_type", "Name": "parameter_name", "Value": "parameter_value", "Selector": ":label_name" } }

    注意

    输出中的 Selector 为您在 Name 输入字段中指定的版本号或标签。

查看参数的标签

您可以使用 GetParameterHistory API 操作查看完整历史记录和附加到指定参数的所有标签。也可以使用 GetParametersByPath API 操作查看分配有特定标签的所有参数的列表。

使用 GetParameterHistory API 操作查看参数的标签

  1. 执行以下命令以查看您可以查看其标签的参数的列表。

    注意

    参数只在创建它的区域可用。如果看不到要移动其标签的参数,请验证您的区域。

    aws ssm describe-parameters

    记下要移动其标签的参数的名称。

  2. 执行以下命令,查看该参数的所有版本。

    aws ssm get-parameter-history --name parameter_name --with-decryption

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

    { "Parameters": [ { "Name": "/Config/endpoint", "LastModifiedDate": 1528932105.382, "Labels": [ "Deprecated" ], "Value": "MyTestService-June-Release.example.com", "Version": 1, "LastModifiedUser": "arn:aws:iam::1234567890:user/test", "Type": "String" }, { "Name": "/Config/endpoint", "LastModifiedDate": 1528932111.222, "Labels": [ "Current" ], "Value": "MyTestService-July-Release.example.com", "Version": 2, "LastModifiedUser": "arn:aws:iam::1234567890:user/test", "Type": "String" } ] }

查看已分配有标签的参数的列表

可以使用 GetParametersByPath API 操作查看路径中分配有特定标签的所有参数的列表。

执行以下命令以查看路径中分配有特定标签的参数的列表。

aws ssm get-parameters-by-path --path parameter_path --parameter-filters Key=Label,Values=label_name,Option=Equals --max-results a_number --with-decryption --recursive

系统将返回类似于以下内容的信息。在此示例中,用户在 /Config 路径下搜索:

{ "Parameters": [ { "Version": 3, "Type": "SecureString", "Name": "/Config/DBpwd", "Value": "MyS@perGr&pass33" }, { "Version": 2, "Type": "String", "Name": "/Config/DBusername", "Value": "TestUserDB" }, { "Version": 2, "Type": "String", "Name": "/Config/endpoint", "Value": "MyTestService-July-Release.example.com" } ] }

移动参数标签

参数标签创建后便无法删除。但是,可以在参数版本之间移动标签。以下过程介绍如何将参数标签移至同一参数的其他版本。

移动参数标签

  1. 执行以下命令,查看该参数的所有版本。

    aws ssm get-parameter-history --name "the_parameter_name"

    记下要为其附加标签的参数版本。

  2. 执行以下命令以将现有标签分配给参数的其他版本。

    aws ssm label-parameter-version --name parameter_name --parameter-version version_number --labels name_of_existing_label

    注意

    如果要将现有标签移至参数的最新版本,则删除此命令中的 --parameter-version