

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

# 安装或更新 Distributor 软件包
<a name="distributor-working-with-packages-deploy"></a>

您可以使用 Distributor（AWS Systems Manager 中的一项工具）将软件包部署到 AWS Systems Manager 托管式节点。要部署软件包，请使用 AWS 管理控制台 或 AWS Command Line Interface (AWS CLI)。一条命令只能部署一个软件包的一个版本。您可以安装新软件包或就地更新现有的安装。您可以选择部署软件包的特定版本，也可以选择始终部署软件包的最新版本。建议使用State Manager（AWS Systems Manager 中的一项工具）来安装软件包。使用 State Manager 有助于确保您的托管式节点始终运行最新版本的软件包。

**重要**  
使用 Distributor 安装的软件包只能通过 Distributor 卸载。否则，Systems Manager 仍可能将应用程序注册为 `INSTALLED`，导致其他意外结果。


| Preference | AWS Systems Manager 操作 | 更多信息 | 
| --- | --- | --- | 
|  立即安装或更新软件包。  |  Run Command  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)  | 
|  按计划安装或更新软件包，以便安装始终包含默认版本。  |  State Manager  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)  | 
|  在具有特定标签或标签集的新托管式节点上自动安装软件包。例如，在新实例上安装 Amazon CloudWatch 代理。  |  State Manager  |  执行此操作的一种方法是向新托管式节点应用标签，然后在 State Manager 关联中将这些标签指定为目标。State Manager 会自动将关联中的软件包安装到具有匹配标签的托管式节点上。请参阅[了解 State Manager 关联中的目标和速率控制](systems-manager-state-manager-targets-and-rate-controls.md)。  | 

**Topics**
+ [使用控制台一次性安装或更新软件包](#distributor-deploy-pkg-console)
+ [使用控制台计划软件包安装或更新](#distributor-deploy-sm-pkg-console)
+ [使用 AWS CLI 一次性安装软件包](#distributor-deploy-pkg-cli)
+ [使用 AWS CLI 一次性更新软件包](#distributor-update-pkg-cli)
+ [使用 AWS CLI 计划软件包安装](#distributor-smdeploy-pkg-cli)
+ [使用 AWS CLI 计划软件包更新](#distributor-smupdate-pkg-cli)

## 使用控制台一次性安装或更新软件包
<a name="distributor-deploy-pkg-console"></a>

您可以使用 AWS Systems Manager 控制台一次性安装或更新软件包。在配置一次性安装时，Distributor 使用 [AWS Systems Manager Run Command](run-command.md)（AWS Systems Manager 中的一项工具）来执行安装。

**若要使用控制台一次性安装或更新软件包**

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

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

1. 在 Distributor 主页上，选择要安装的软件包。

1. 选择 **Install one time (一次性安装)**。

   此命令将打开 Run Command，并选中命令文档 `AWS-ConfigureAWSPackage` 和 Distributor 软件包。

1. 对于 **Document version （文档版本）**，请选择要运行的 `AWS-ConfigureAWSPackage` 文档版本。

1. 对于**操作**，选择**安装**。

1. 对于 **Installation type (安装类型)**，请选择以下选项之一：
   + **Uninstall and reinstall (卸载并重新安装)**：完全卸载软件包，然后重新安装。在重新安装完成之前，应用程序不可用。
   + **In-place update (就地更新)**：根据您在 `update` 脚本中提供的指令，仅将新文件或更改的文件添加到现有安装中。应用程序在整个更新过程中保持可用。对于 AWS 已发布软件包，除 `AWSEC2Launch-Agent` 软件包外，不支持此选项。

1. 对于 **Name (名称)**，请确认输入了选定的软件包的名称。

1. （可选）对于 **Version (版本)**，请输入软件包的版本名称值。如果将此字段留空，Run Command 将安装在 Distributor 中选择的默认版本。

1. 在 **Targets**（目标）部分中，通过指定标签、手动选择实例或设备或指定资源组，选择要在其上运行此操作的托管式节点。
**注意**  
如果列表没有显示托管式节点，请参阅 [排除托管式节点可用性的问题](fleet-manager-troubleshooting-managed-nodes.md)。

1. 对于 **Other parameters（其他参数）**：
   + 对于 **Comment（注释）**，请输入有关此命令的信息。
   + 对于 **Timeout (seconds) (超时 (秒))**，请指定在整个命令执行失败之前系统等待的秒数。

1. 对于 **Rate Control**（速率控制）：
   + 对于 **Concurrency**（并发），请指定要同时运行该命令的目标数或百分比。
**注意**  
如果您通过指定标签或资源组来选择目标，但不确定有多少个托管式节点已被设为目标，则可通过指定百分比来限制可同时运行该文档的目标的数量。
   + 对于 **Error threshold**（错误阈值），请指定当命令在一定数量或百分比的托管式节点上失败后，何时在其他目标上停止运行该命令。例如，如果您指定三个错误，Systems Manager 将在收到第四个错误时停止发送该命令。仍在处理该命令的托管式节点也可能发送错误。

1. （可选）对于 **输出选项**，要将命令输出保存到文件，请选中 **将命令输出写入 S3 存储桶** 框。在输入框中输入存储桶和前缀（文件夹）名称。
**注意**  
授予将数据写入 S3 存储桶的能力的 S3 权限，是分配给实例的实例配置文件（适用于 EC2 实例）或 IAM 服务角色（混合激活的计算机）的权限，而不是执行此任务的 IAM 用户的权限。有关更多信息，请参阅[配置 Systems Manager 所需的实例权限](setup-instance-permissions.md)或[为混合环境创建 IAM 服务角色](hybrid-multicloud-service-role.md)。此外，如果指定的 S3 存储桶位于不同的 AWS 账户 中，请确保与该托管式节点关联的实例配置文件或 IAM 服务角色具有写入该存储桶的所需权限。

1. 在 **SNS 通知**部分，如果需要发送有关命令执行状态的通知，请选中 **Enable SNS notifications（启用 SNS 通知）**复选框。

   有关为 Run Command 配置 Amazon SNS 通知的更多信息，请参阅 [使用 Amazon SNS 通知监控 Systems Manager 状态更改](monitoring-sns-notifications.md)。

1. 在准备好安装软件包时，请选择 **Run (运行)**。

1. **Command status (命令状态)** 区域报告执行进度。如果命令仍在执行，请选择控制台左上角的刷新图标，直到 **Overall status (总体状态)** 或 **Detailed status (详细状态)** 列显示 **Success (成功)** 或 **Failed (失败)**。

1. 在 **Targets and outputs**（目标和输出）区域中，选择托管式节点名称旁边的按钮，然后选择 **View output**（查看输出）。

   命令输出页面将显示命令执行的结果。

1. （可选）如果您选择将命令输出写入到 Amazon S3 存储桶，请选择 **Amazon S3** 以查看输出日志数据。

## 使用控制台计划软件包安装或更新
<a name="distributor-deploy-sm-pkg-console"></a>

您可以使用 AWS Systems Manager 控制台计划安装或更新软件包。在计划安装或更新软件包时，Distributor 使用 [AWS Systems Manager State Manager](systems-manager-state.md) 进行安装或更新。

**若要使用控制台计划软件包安装**

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

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

1. 在 Distributor 主页上，选择要安装或更新的软件包。

1. 对于 **Package (软件包)**，请选择 **Install on a schedule (按计划安装)**。

   此命令将打开 State Manager 并跳转到为您创建的新关联。

1. 对于 **Name (名称)**，请输入名称（例如，**Deploy-test-agent-package**）。您可以自由选择，但我们建议您这样做。名称不得包含空格。

1. 在 **Document (文档)** 列表中，已选定文档名称 `AWS-ConfigureAWSPackage`。

1. 对于 **Action (操作)**，请确认选择了 **Install (安装)**。

1. 对于 **Installation type (安装类型)**，请选择以下选项之一：
   + **Uninstall and reinstall (卸载并重新安装)**：完全卸载软件包，然后重新安装。在重新安装完成之前，应用程序不可用。
   + **In-place update (就地更新)**：根据您在 `update` 脚本中提供的指令，仅将新文件或更改的文件添加到现有安装中。应用程序在整个更新过程中保持可用。

1. 对于 **Name (名称)**，请确认输入了软件包的名称。

1. 对于 **Version (版本)**，如果要安装最新发布的版本以外的软件包版本，请输入版本标识符。

1. 对于 **Targets (目标)**，选择 **Selecting all managed instances in this account (选择此账户中的所有托管实例)**、**Specifying tags (指定标签)** 或 **Manually Selecting Instance (手动选择实例)**。如果使用标签将资源设置为目标，请在提供的字段中输入标签键和标签值。
**注意**  
您可以通过选择 **Selecting all managed instances in this account**（选择此账户中的所有托管式实例）或 **Manually Selecting Instance**（手动选择实例）来选择托管式 AWS IoT Greengrass 核心设备。

1. 对于 **Specify schedule (指定计划)**，选择 **On Schedule (按计划)** 定期运行此关联，或选择 **No Schedule (无计划)** 只运行此关联一次。有关这些选项的详细信息，请参阅[在 Systems Manager 中使用关联。](state-manager-associations.md)。使用控件为关联创建 `cron` 或频率计划。

1. 选择**创建关联**。

1. 在 **Association (关联)** 页面上，选择您创建的关联旁边的按钮，然后选择 **Apply association now (立即应用关联)**。

   State Manager 在指定的目标中创建并立即运行关联。有关运行关联的结果的更多信息，请参阅本指南中的 [在 Systems Manager 中使用关联。](state-manager-associations.md)。

有关使用 **Advanced options (高级选项)**、**Rate control (速率控制)** 和 **Output options (输出选项)** 中的选项的更多信息，请参阅 [在 Systems Manager 中使用关联。](state-manager-associations.md)。

## 使用 AWS CLI 一次性安装软件包
<a name="distributor-deploy-pkg-cli"></a>

您可以在 AWS CLI 中运行 **send-command** 一次性安装 Distributor 软件包。如果已安装软件包，在卸载软件包并在其位置安装新版本时，应用程序将脱机。

**若要使用 AWS CLI 一次性安装软件包**
+ 在 AWS CLI 中运行以下命令。

  ```
  aws ssm send-command \
      --document-name "AWS-ConfigureAWSPackage" \
      --instance-ids "instance-IDs" \
      --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
  ```
**注意**  
`installationType` 的默认行为是 `Uninstall and reinstall`。在安装完整软件包时，您可以从该命令中省略 `"installationType":["Uninstall and reinstall"]`。

  示例如下：

  ```
  aws ssm send-command \
      --document-name "AWS-ConfigureAWSPackage" \
      --instance-ids "i-00000000000000" \
      --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["ExamplePackage"]}'
  ```

有关可以与 **send-command** 命令结合使用的其他选项的信息，请参阅 *AWS CLI 命令参考* AWS Systems Manager 一节中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。

## 使用 AWS CLI 一次性更新软件包
<a name="distributor-update-pkg-cli"></a>

您可以在 AWS CLI 中运行 **send-command** 以更新 Distributor 软件包，而无需将关联的应用程序脱机。仅替换软件包中的新文件或更新的文件。

**若要使用 AWS CLI 一次性更新软件包**
+ 在 AWS CLI 中运行以下命令。

  ```
  aws ssm send-command \
      --document-name "AWS-ConfigureAWSPackage" \
      --instance-ids "instance-IDs" \
      --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}'
  ```
**注意**  
在添加新文件或更改的文件时，您必须在命令中包含 `"installationType":["In-place update"]`。

  示例如下：

  ```
  aws ssm send-command \
      --document-name "AWS-ConfigureAWSPackage" \
      --instance-ids "i-02573cafcfEXAMPLE" \
      --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["ExamplePackage"]}'
  ```

有关可以与 **send-command** 命令结合使用的其他选项的信息，请参阅 *AWS CLI 命令参考* AWS Systems Manager 一节中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-command.html)。

## 使用 AWS CLI 计划软件包安装
<a name="distributor-smdeploy-pkg-cli"></a>

您可以在 AWS CLI 中运行 **create-association** 按计划安装 Distributor 软件包。`--name`的值（文档名称）始终为 `AWS-ConfigureAWSPackage`。以下命令使用键 `InstanceIds` 指定目标托管式节点。如果已安装软件包，在卸载软件包并在其位置安装新版本时，应用程序将脱机。

```
aws ssm create-association \
    --name "AWS-ConfigureAWSPackage" \
    --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \
    --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
```

**注意**  
`installationType` 的默认行为是 `Uninstall and reinstall`。在安装完整软件包时，您可以从该命令中省略 `"installationType":["Uninstall and reinstall"]`。

示例如下：

```
aws ssm create-association \
    --name "AWS-ConfigureAWSPackage" \
    --parameters '{"action":["Install"],"installationType":["Uninstall and reinstall"],"name":["Test-ConfigureAWSPackage"]}' \
    --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]
```

有关可以与 **create-association** 命令结合使用的其他选项的信息，请参阅 *AWS CLI 命令参考* AWS Systems Manager 一节中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-association.html)。

## 使用 AWS CLI 计划软件包更新
<a name="distributor-smupdate-pkg-cli"></a>

您可以在 AWS CLI 中运行 **create-association** 以按计划更新 Distributor 软件包，而无需将关联的应用程序脱机。仅替换软件包中的新文件或更新的文件。`--name`的值（文档名称）始终为 `AWS-ConfigureAWSPackage`。以下命令使用键 `InstanceIds` 指定目标实例。

```
aws ssm create-association \
    --name "AWS-ConfigureAWSPackage" \
    --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["package-name (in same account) or package-ARN (shared from different account)"]}' \
    --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"instance-ID1\",\"instance-ID2\"]}]
```

**注意**  
在添加新文件或更改的文件时，您必须在命令中包含 `"installationType":["In-place update"]`。

示例如下：

```
aws ssm create-association \
    --name "AWS-ConfigureAWSPackage" \
    --parameters '{"action":["Install"],"installationType":["In-place update"],"name":["Test-ConfigureAWSPackage"]}' \
    --targets [{\"Key\":\"InstanceIds\",\"Values\":[\"i-02573cafcfEXAMPLE\",\"i-0471e04240EXAMPLE\"]}]
```

有关可以与 **create-association** 命令结合使用的其他选项的信息，请参阅 *AWS CLI 命令参考* AWS Systems Manager 一节中的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-association.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-association.html)。