了解参数名称要求和约束
使用本主题中的信息可在您创建参数时帮助您为参数名称指定有效值。
此信息对《AWS Systems Manager API 参考》中的主题 PutParameter(设置参数) 的详细信息进行了补充,此外,还提供了有关 AllowedPattern、Description、KeyId、Overwrite、Type 和 Value 数值的信息。
参数名称的要求和约束包括:
-
区分大小写:参数名称区分大小写。
-
空格:参数名称不能包含空格。
-
有效字符:参数名称只能包含以下符号和字母:
a-zA-Z0-9_.-此外,斜杠字符 (/) 用于描述参数名称中的层次结构。例如:
/Dev/Production/East/Project-ABC/MyParameter。 -
有效 AMI 格式:选择
aws:ec2:image作为String参数的数据类型时,您所输入的 ID 必须验证是否符合 AMI ID 格式ami-12345abcdeEXAMPLE。 -
完全限定:在层次结构中创建或引用参数时,需要包含前导正斜杠字符 (/)。在引用属于层次结构一部分的参数时,需要指定包括初始斜杠 (/) 在内的整个层次结构路径。
-
完全限定的参数名称:
MyParameter1、/MyParameter2、/Dev/Production/East/Project-ABC/MyParameter -
未完全限定的参数名称:
MyParameter3/L1
-
-
长度:您指定的参数名称最大长度为 1011 个字符。这 1011 个字符数包括所指定名称之前的 ARN 中的字符,例如
arn:aws:ssm:us-east-2:111122223333:parameter/中的 45 个字符。 -
前缀:参数名称不得以“
aws”或“ssm”(不区分大小写)作为前缀。例如,尝试使用以下名称创建参数会失败,并引发异常:-
awsTestParameter -
SSM-testparameter -
/aws/testparam1
注意
在 SSM 文档、命令或脚本中指定参数时,应在句法中包含
ssm。例如,{{ssm:parameter-name}} 和 {{ ssm:parameter-name}},比如{{ssm:MyParameter}}和{{ ssm:MyParameter }}. -
-
唯一性:参数名称必须在 AWS 区域中是唯一的。例如,Systems Manager 将以下参数视为不同的参数(如果它们存在于同一区域中):
-
/Test/TestParam1 -
/TestParam1
以下示例也是唯一的:
-
/Test/TestParam1/Logpath1 -
/Test/TestParam1
不过,以下示例(如果在同一区域中)不是唯一的:
-
/TestParam1 -
TestParam1
-
-
层次结构深度:如果指定参数层次结构,则层次结构可以具有最多十五个级别的深度。可以在该层次结构的任何级别定义参数。以下两个示例的结构都是有效的:
-
/Level-1/L2/L3/L4/L5/L6/L7/L8/L9/L10/L11/L12/L13/L14/parameter-name -
parameter-name
尝试创建以下参数将失败并引发
HierarchyLevelLimitExceededException异常:-
/Level-1/L2/L3/L4/L5/L6/L7/L8/L9/L10/L11/L12/L13/L14/L15/L16/parameter-name
-
重要
如果用户有权访问某个路径,则该用户可以访问该路径的所有级别。例如,如果某个用户有权访问路径 /a,则该用户也可以访问 /a/b。即使用户在 AWS Identity and Access Management (IAM) 中已被显式拒绝访问参数 /a/b,他们仍能够以递归方式为 /a 调用 GetParametersByPath API 操作并查看 /a/b。