

• 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-version"></a>

要添加软件包版本，您需要[创建软件包](distributor-working-with-packages-create.md)，然后使用 Distributor 通过向旧版本已存在的 AWS Systems Manager（SSM）文档中添加条目来添加软件包版本。Distributor 是 AWS Systems Manager 中的一项工具。为了节省时间，可以更新旧版本包的清单，更改清单中 `version` 条目的值（例如，从 `Test_1.0` 更改为 `Test_2.0`），并将其保存为新版本的清单。Distributor 控制台中的简单 **Add version (添加版本)** 工作流将为您更新清单文件。

新的软件包版本可以：
+ 替换附加到当前版本的至少一个可安装文件。
+ 添加新的可安装文件以支持其他平台。
+ 删除文件以停止对特定平台的支持。

较新的版本可以使用相同的 Amazon Simple Storage Service (Amazon S3) 存储桶，但必须具有末尾显示不同文件名的 URL。您可以使用 Systems Manager 控制台或 AWS Command Line Interface (AWS CLI) 来添加新版本。将具有确切名称的可安装文件上载为 Amazon S3 存储桶中的现有可安装文件将覆盖现有文件。没有可安装的文件从旧版本复制到新版本；您必须从旧版本上传可安装文件才能使它们成为新版本的一部分。在 Distributor 完成创建新软件包版本后，您可以删除 Amazon S3 存储桶或调整其用途，因为 Distributor 在版本控制过程中会将软件复制到内部 Systems Manager 存储桶。

**注意**  
每个软件包限制为最多 25 个版本。您可以删除不再需要的版本。

**Topics**
+ [使用控制台添加软件包版本](#add-pkg-version)
+ [使用 AWS CLI 添加软件包版本](#add-pkg-version-cli)

## 使用控制台添加软件包版本
<a name="add-pkg-version"></a>

在执行以下步骤前，请按照[在 Distributor 中创建软件包](distributor-working-with-packages-create.md)中的说明执行操作，为此版本创建一个新的软件包。然后，使用 Systems Manager 控制台将新的软件包版本添加到 Distributor。

### 使用简单工作流添加软件包版本
<a name="add-pkg-version-simple"></a>

要使用 **Simple (简单)** 工作流程添加软件包版本，请准备更新的可安装文件或添加可安装文件，以支持更多平台和架构。然后，使用 Distributor 上传新的和更新的可安装文件并添加软件包版本。Distributor 控制台中的简化 **Add version (添加版本)** 工作流程将为您更新清单文件和关联的 SSM 文档。

**若要使用简单工作流添加软件包版本**

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

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

1. 在 Distributor 主页上，选择要为其添加其他版本的软件包。

1. 在 **Add version (添加版本)** 页面上，选择 **Simple (简单)**。

1. 对于 **Version name (版本名称)**，请输入版本名称。新版本的版本名称必须与旧版本名称不同。版本名称最多可以包含 512 个字符，并且不能包含特殊字符。

1. 对于 **S3 存储桶名称**，从列表中选择现有的 S3 存储桶。这可以是用于存储旧版本的可安装文件的同一个存储桶，但可安装文件名必须不同，以避免覆盖存储桶中的现有可安装文件。

1. 对于 **S3 key prefix (S3 键前缀)**，请输入存储可安装资产的存储桶子文件夹。

1. 对于 **Upload software (上载软件)**，请导航到要附加到新版本的可安装软件文件。现有版本中的可安装文件不会自动复制到新版本；如果您希望任何相同的可安装文件成为新版本的一部分，则必须上载旧版软件包中的任何可安装文件。您可以在单个操作中上传多个软件文件。

1. 对于**目标平台**，请验证为每个可安装文件显示的目标操作系统平台是否正确。如果显示的操作系统不正确，请从下拉列表中选择正确的操作系统。

   在**简单**版本控制工作流程中，由于您只上传每个可安装文件一次，因此需要额外的步骤在多个操作系统上将单个文件指定为目标。例如，如果您上传名为 `Logtool_v1.1.1.rpm` 的可安装软件文件，则必须更改**简单**工作流程中的某些默认值，以指示 Distributor 同时在 Amazon Linux 和 Ubuntu Server 操作系统上将相同的软件指定为目标。您可以执行以下操作之一来解决此限制。
   + 改用**高级**版本控制工作流程，在开始之前将每个可安装文件压缩为 .zip 文件，然后手动编写清单，以便在多个操作系统平台或版本中将一个可安装文件指定为目标。有关更多信息，请参阅 [使用高级工作流添加软件包版本](#add-pkg-version-adv)。
   + 在**简单**工作流中手动编辑清单文件，以便在多个操作系统平台或版本中将 .zip 文件指定为目标。有关如何执行此操作的更多信息，请参阅 [步骤 2：创建 JSON 软件包清单](distributor-working-with-packages-create.md#packages-manifest) 中步骤 4 的末尾。

1. 对于**平台版本**，验证并确保所显示的操作系统平台版本是 **\$1any**（主要发行版本后跟一个通配符 (8.\$1)），或您希望软件适用于的确切操作系统发行版本。有关指定平台版本的更多信息，请参阅 [步骤 2：创建 JSON 软件包清单](distributor-working-with-packages-create.md#packages-manifest) 中的步骤 4。

1. 对于**架构**，请从下拉列表中为每个可安装文件选择正确的处理器架构。有关支持的架构的更多信息，请参阅 [支持的软件包平台和架构](distributor.md#what-is-a-package-platforms)。

1. （可选）展开 **Scripts (脚本)**，然后查看 Distributor 为可安装软件生成的安装和卸载脚本。

1. 要向新版本添加更多可安装的软件文件，请选择 **Add software (添加软件)**。否则，转到下一步。

1. （可选）展开**清单**，然后审核 Distributor 为您的可安装软件包生成的 JSON 清单。如果您在开始此过程后更改了有关可安装软件的任何信息（例如平台版本或目标平台），请选择**生成清单**以显示更新的软件包清单。

   如果要将可在多个操作系统上安装的软件指定为目标，则可以手动编辑清单，如步骤 9 中所述。有关编辑该清单的更多信息，请参阅 [步骤 2：创建 JSON 软件包清单](distributor-working-with-packages-create.md#packages-manifest)。

1. 完成添加软件和审核目标平台、版本和架构数据时，请选择 **Add version (添加版本)**。

1. 等待 Distributor 完成上传软件和创建新的软件包版本。Distributor 显示每个可安装文件的上传状态。根据要添加的软件包的数量和大小，这可能需要几分钟时间。Distributor 会自动将您重定向到软件包的 **Package details (软件包详细信息)** 页面，但您可以选择在上传软件之后自行打开此页面。**Package details (软件包详细信息)** 页面不会显示有关软件包的所有信息，直到 Distributor 完成创建新的软件包版本为止。要停止上传和软件包版本创建，请选择 **Stop upload (停止上传)**。

1. 如果 Distributor 无法上载任何软件可安装文件，它会显示 **Upload failed (上载失败)** 消息。要重试上传，请选择 **Retry upload (重试上传)**。有关如何排除软件包版本创建失败的更多信息，请参阅 [AWS Systems Manager Distributor 故障排除](distributor-troubleshooting.md)。

1. 在 Distributor 完成创建新的软件包版本后，在软件包的 **Details (详细信息)** 页面的 **Versions (版本)** 选项卡上，在可用软件包版本列表中查看新版本。通过以下方式设置软件包的默认版本：选择一个版本，然后选择 **Set default version (设置默认版本)**。

   如果不设置默认版本，则最新的软件包版本即为默认版本。

### 使用高级工作流添加软件包版本
<a name="add-pkg-version-adv"></a>

要添加软件包版本，您需要[创建软件包](distributor-working-with-packages-create.md)，然后使用 Distributor 通过向旧版本存在的 SSM 文档中添加条目来添加软件包版本。为了节省时间，可以更新旧版本包的清单，更改清单中 `version` 条目的值（例如，从 `Test_1.0` 更改为 `Test_2.0`），并将其保存为新版本的清单。您必须具有更新的清单才能使用**高级**工作流程添加新的软件包版本。

**若要使用高级工作流添加软件包版本**

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

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

1. 在 Distributor 主页上，选择要向其添加其他版本的软件包，然后选择 **Add version (添加版本)**。

1. 对于 **Version name (版本名称)**，请输入位于清单文件的 `version` 条目中的确切值。

1. 对于 **S3 存储桶名称**，从列表中选择现有的 S3 存储桶。这可以是用于存储旧版本的可安装文件的同一个存储桶，但可安装文件名必须不同，以避免覆盖存储桶中的现有可安装文件。

1. 对于 **S3 key prefix (S3 键前缀)**，请输入存储可安装资产的存储桶子文件夹。

1. 对于 **Manifest (清单)**，请选择 **Extract from package (从软件包提取)** 以使用随 .zip 文件上传到 S3 存储桶的清单。

   （可选）如果未将修订的 JSON 清单上载到存储 .zip 文件的 Amazon S3 存储桶，请选择 **New manifest (新建清单)**。您可以在 JSON 编辑器字段中编写或粘贴整个清单。有关如何创建 JSON 清单的更多信息，请参阅 [步骤 2：创建 JSON 软件包清单](distributor-working-with-packages-create.md#packages-manifest)。

1. 当您完成处理清单后，选择 **Add package version (添加软件包版本)**。

1. 在软件包的 **Details (详细信息)** 页面的 **Versions (版本)** 选项卡上，在可用软件包版本列表中查看新版本。通过以下方式设置软件包的默认版本：选择一个版本，然后选择 **Set default version (设置默认版本)**。

   如果不设置默认版本，则最新的软件包版本即为默认版本。

## 使用 AWS CLI 添加软件包版本
<a name="add-pkg-version-cli"></a>

您可以使用 AWS CLI 将新的软件包版本添加到 Distributor。在运行以下命令前，必须创建新的软件包版本并将其上传到 S3，如本主题开头所述。

**若要使用 AWS CLI 添加软件包版本**

1. 运行下面的命令并附上新软件包版本的条目来编辑 AWS Systems Manager 文档。将 *document-name* 替换为您的文档的名称。将 *amzn-s3-demo-bucket* 替换为您在 [步骤 3：将软件包和清单上载到 Amazon S3 存储桶](distributor-working-with-packages-create.md#packages-upload-s3) 中复制的 JSON 清单的 URL。*S3-bucket-URL-of-package* 是存储整个软件包的 Amazon S3 存储桶的 URL。将 *version-name-from-updated-manifest* 替换为清单中 `version` 的值。将 `--document-version` 参数设置为 `$LATEST`，以使与此软件包版本关联的文档成为文档的最新版本。

   ```
   aws ssm update-document \
       --name "document-name" \
       --content "S3-bucket-URL-to-manifest-file" \
       --attachments Key="SourceUrl",Values="amzn-s3-demo-bucket" \
       --version-name version-name-from-updated-manifest \
       --document-version $LATEST
   ```

   示例如下：

   ```
   aws ssm update-document \
       --name ExamplePackage \
       --content "https://s3.amazonaws.com/amzn-s3-demo-bucket/ExamplePackage/manifest.json" \
       --attachments Key="SourceUrl",Values="https://s3.amazonaws.com/amzn-s3-demo-bucket/ExamplePackage" \
       --version-name 1.1.1 \
       --document-version $LATEST
   ```

1. 运行以下命令来验证软件包已更新并显示包清单。将 *package-name* 替换为您的软件包名称，（可选）将 *document-version* 替换为更新的文档的版本号（不同于软件包的版本）。如果此软件包版本与文档的最新版本关联，则可以为可选的 `--document-version` 参数的值指定 `$LATEST`。

   ```
   aws ssm get-document \
       --name "package-name" \
       --document-version "document-version"
   ```

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