

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

# Parameter Store 入门
<a name="parameter-store-how-to-retrieve"></a>

 在本教程中，您将学习如何使用 AWS CLI 创建、检索、更新和删除 Parameter Store 参数。这些示例使用一个名为 `myapp` 的虚构应用程序、`dev` 环境、账户 `111122223333` 和 `us-east-1` 区域。

## 先决条件
<a name="parameter-store-getting-started-prerequisites"></a>

 在开始之前，请确保您具有以下各项：
+  一个 AWS 账户。
+  一个可用于运行 AWS CLI 命令的环境。可以使用 AWS CloudShell、安装并配置了 AWS CLI 的本地客户端，或者安装了 AWS CLI 的 Amazon EC2 实例。
+  创建、检索、更新和删除 Parameter Store 参数所需的 IAM 权限。在本教程中，运行命令的主体需要若干 IAM 权限，例如 `ssm:PutParameter`、`ssm:GetParameter`、`ssm:GetParameters`、`ssm:GetParametersByPath`、`ssm:DeleteParameter` 和 `ssm:DeleteParameters`。有关更多信息，请参阅 [使用 IAM 策略管理对 Parameter Store 参数的访问权限](parameter-store-setting-up.md#sysman-paramstore-access)。
+  AWS KMS 权限（如果创建或检索使用客户自主管理型密钥加密的 `SecureString` 参数）。如果使用 Parameter Store 的默认 AWS 托管式密钥，则不需要单独的 AWS KMS 权限。

## 第 1 步：创建一个参数
<a name="parameter-store-getting-started-create-string"></a>

 运行 `put-parameter` 命令以创建一个名为 `/myapp/dev/log-level`、值为 `INFO` 的 `String` 参数。由于您未在此示例中指定层级，Parameter Store 将使用默认的标准层级创建此参数。

```
aws ssm put-parameter \
    --region us-east-1 \
    --name "/myapp/dev/log-level" \
    --type "String" \
    --value "INFO"
```

## 第 2 步：检索参数值
<a name="parameter-store-getting-started-retrieve-string"></a>

运行 [get-parameter](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html) 命令检索单个参数的值。以下示例会检索 `/myapp/dev/log-level` 参数的值。

```
aws ssm get-parameter \
    --region us-east-1 \
    --name "/myapp/dev/log-level"
```

 以下示例输出会打印该参数的值和相关元数据。

```
{
    "Parameter": {
        "Name": "/myapp/dev/log-level",
        "Type": "String",
        "Value": "INFO",
        "Version": 1,
        "LastModifiedDate": "2026-06-25T17:20:26.517000+00:00",
        "ARN": "arn:aws:ssm:us-east-1:111122223333:parameter/myapp/dev/log-level",
        "DataType": "text"
    }
}
```

## 第 3 步：创建一个 StringList 参数
<a name="parameter-store-getting-started-create-stringlist"></a>

 运行以下命令创建一个名为 `/myapp/dev/subnet-ids` 的 `StringList` 参数，其中包含三个以逗号分隔的子网 ID。

```
aws ssm put-parameter \
    --region us-east-1 \
    --name "/myapp/dev/subnet-ids" \
    --type "StringList" \
    --value "subnet-123abc,subnet-456def,subnet-789ghi"
```

## 第 4 步：检索多个参数
<a name="parameter-store-getting-started-get-parameters"></a>

 运行 [get-parameters](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters.html) 命令在列表中指定不超过 10 个参数。以下示例用名称指定了 `/myapp/dev/log-level` 和 `/myapp/dev/subnet-ids` 参数。

```
aws ssm get-parameters \
    --region us-east-1 \
    --names "/myapp/dev/log-level" "/myapp/dev/subnet-ids"
```

## 第 5 步：创建一个加密参数
<a name="parameter-store-getting-started-create-securestring"></a>

将 `SecureString` 用于需要加密的配置值，例如服务端点和账户标识符。对于数据库凭证、API 密钥或令牌等机密，我们建议使用 AWS Secrets Manager，该服务提供专门构建的安全控制措施，包括自动轮换和跨区域复制。

运行以下命令创建一个名为 `/myapp/dev/vendor/merchant-id` 的 `SecureString` 参数，其中具有加密值 `merchant-739482`。

```
aws ssm put-parameter \
    --region us-east-1 \
    --name "/myapp/dev/vendor/merchant-id" \
    --type "SecureString" \
    --value "merchant-739482"
```

**注意**  
如果您管理诸如用户名、密码或任何其他密钥之类的凭证，我们建议使用 [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。Secrets Manager 专为管理数据库凭证、API 密钥和受支持的第三方软件提供的密钥等密钥而设计。有关更多信息，请参阅《AWS Secrets Manager 用户指南》**中的[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)。

运行以下命令查看在不解密的情况下检索 `SecureString` 值时会发生的情况。

```
aws ssm get-parameter \
    --region us-east-1 \
    --name "/myapp/dev/vendor/merchant-id"
```

输出显示的是加密值，而不是明文值。

```
{
    "Parameter": {
        "Name": "/myapp/dev/vendor/merchant-id",
        "Type": "SecureString",
        "Value": "AQICAHh1cV16RSGzfLARDIKV0croMvax6aMUDP1thWREL5ToawG6q+Xj8K...==",
        "Version": 1,
        "LastModifiedDate": "2026-06-25T17:27:56.401000+00:00",
        "ARN": "arn:aws:ssm:us-east-1:111122223333:parameter/myapp/dev/vendor/merchant-id",
        "DataType": "text"
    }
}
```

 运行以下命令以检索 `/myapp/dev/vendor/merchant-id` 参数的明文值。`--with-decryption` 选项指示 Parameter Store 返回解密后的值。

```
aws ssm get-parameter \
    --region us-east-1 \
    --name "/myapp/dev/vendor/merchant-id" \
    --with-decryption
```

以下示例显示了明文值。

```
{
    "Parameter": {
        "Name": "/myapp/dev/vendor/merchant-id",
        "Type": "SecureString",
        "Value": "merchant-739482",
        "Version": 1,
        "LastModifiedDate": "2026-06-25T17:27:56.401000+00:00",
        "ARN": "arn:aws:ssm:us-east-1:111122223333:parameter/myapp/dev/vendor/merchant-id",
        "DataType": "text"
    }
}
```

## 第 6 步：更新一个参数
<a name="parameter-store-getting-started-update"></a>

 运行以下命令将 `/myapp/dev/log-level` 参数的值从 `INFO` 更新为 `DEBUG`。`--overwrite` 选项允许该命令替换现有的值。

```
aws ssm put-parameter \
    --region us-east-1 \
    --name "/myapp/dev/log-level" \
    --type "String" \
    --value "DEBUG" \
    --overwrite
```

 每次更新参数时，Parameter Store 都会创建该参数的一个新版本，如输出所示。

```
{
    "Version": 2,
    "Tier": "Standard"
}
```

 运行 [get-parameter-history](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter-history.html) 命令查看 `/myapp/dev/log-level` 参数的历史记录。

```
aws ssm get-parameter-history \
    --region us-east-1 \
    --name "/myapp/dev/log-level"
```

 响应包括参数的先前版本，包括版本号、值、类型和上次修改日期。

```
{
    "Parameters": [
        {
            "Name": "/myapp/dev/log-level",
            "Type": "String",
            "Value": "INFO",
            "Version": 1,
            "LastModifiedDate": "2026-06-25T15:30:00.000000-04:00",
            "DataType": "text"
        },
        {
            "Name": "/myapp/dev/log-level",
            "Type": "String",
            "Value": "DEBUG",
            "Version": 2,
            "LastModifiedDate": "2026-06-25T15:35:00.000000-04:00",
            "DataType": "text"
        }
    ]
}
```

## 第 7 步：按路径检索参数
<a name="parameter-store-getting-started-retrieve-by-path"></a>

 运行 [get-parameters-by-path](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameters-by-path.html) 命令检索 `/myapp/dev/` 路径下的参数。`--recursive` 选项包括该层次结构中较低级别的参数。

```
aws ssm get-parameters-by-path \
    --region us-east-1 \
    --path "/myapp/dev/" \
    --recursive
```

输出同时显示了您创建的两个参数。`SecureString` 参数已加密。

```
{
    "Parameters": [
        {
            "Name": "/myapp/dev/log-level",
            "Type": "String",
            "Value": "DEBUG",
            "Version": 2,
            "LastModifiedDate": "2026-06-25T17:35:39.184000+00:00",
            "ARN": "arn:aws:ssm:us-east-1:111122223333:parameter/myapp/dev/log-level",
            "DataType": "text"
        },
        {
            "Name": "/myapp/dev/vendor/merchant-id",
            "Type": "SecureString",
            "Value": "AQICAHh1cV16RSGzfLARDIKV0croMvax6aMUDP1thWREL5ToawG6q+Xj8K...==",
            "Version": 1,
            "LastModifiedDate": "2026-06-25T17:27:56.401000+00:00",
            "ARN": "arn:aws:ssm:us-east-1:111122223333:parameter/myapp/dev/vendor/merchant-id",
            "DataType": "text"
        }
    ]
}
```

 运行以下命令检索 `/myapp/dev/` 路径下的参数，并返回主体被授权解密的任何 `SecureString` 参数的解密值。

```
aws ssm get-parameters-by-path \
    --region us-east-1 \
    --path "/myapp/dev/" \
    --recursive \
    --with-decryption
```

## 第 8 步：删除一个参数
<a name="parameter-store-getting-started-delete"></a>

 运行以下命令删除 `/myapp/dev/log-level` 参数。

```
aws ssm delete-parameter \
    --region us-east-1 \
    --name "/myapp/dev/log-level"
```

## 清理
<a name="parameter-store-getting-started-cleanup"></a>

 运行以下命令删除其余的示例参数。

```
aws ssm delete-parameters \
    --region us-east-1 \
    --names "/myapp/dev/subnet-ids" "/myapp/dev/vendor/merchant-id"
```

## 后续步骤
<a name="parameter-store-getting-started-next-steps"></a>

 创建第一批参数后，应考虑以下后续步骤：
+  定义应用程序、环境和团队的命名规范。有关更多信息，请参阅 [https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-hierarchies.html#ps-hierarchy-examples](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-hierarchies.html#ps-hierarchy-examples)。
+  使用 IAM 策略控制谁有权读取或更新各个参数路径。
+ 将 `SecureString` 用于需要加密的配置值，例如服务端点和账户标识符。对于数据库凭证、API 密钥或令牌等机密，我们建议使用 AWS Secrets Manager，该服务提供专门构建的安全控制措施，包括自动轮换和跨区域复制。
+  将 `AWS AppConfig` 用于功能标志和动态应用程序配置。