

• 2026 年 4 月 30 日之後將不再提供 AWS Systems Manager CloudWatch Dashboard。客戶可以繼續使用 Amazon CloudWatch 主控台來檢視、建立和管理其 Amazon CloudWatch 儀表板，就像現在一樣。如需詳細資訊，請參閱 [Amazon CloudWatch Dashboard 文件](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 Distributor 中建立套件
<a name="distributor-working-with-packages-create"></a>

若要建立套件，請準備安裝型軟體或資產，每個作業系統平台一個檔案。至少需要一個檔案才能建立套件。

不同平台可能有時會使用相同的檔案，但連接到您套件的所有檔案必須列在資訊清單中的 `Files` 區段。如果您透過在主控台中使用簡便工作流程來建立套件，系統會為您產生資訊清單。您可以連接到單一文件的檔案數量上限為 20。每個檔案大小的上限為 1 GB。如需支援的平台的詳細資訊，請參閱[支援的套件平台和架構](distributor.md#what-is-a-package-platforms)。

當您建立套件時，系統會建立新的 [SSM 文件](documents.md)。此文件允許您將套件部署到受管節點。

您可從我們的網站下載僅供示範用途的範例套件 [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip)。此範例套件包含已完成的 JSON 資訊清單和三個包含 PowerShell v7.0.0 安裝程式的 .zip 檔案。安裝和解除安裝指令碼不包含有效的命令。雖然您必須將每個軟體安裝型檔案和指令碼壓縮為 .zip 檔，來在 **Advanced** (進階) 工作流程中建立套件，您不會在 **Simple** (簡易) 工作流程壓縮安裝型資產。

**Topics**
+ [使用簡單工作流程建立套件](#distributor-working-with-packages-create-simple)
+ [使用進階工作流程建立套件](#distributor-working-with-packages-create-adv)

## 使用簡單工作流程建立套件
<a name="distributor-working-with-packages-create-simple"></a>

本節說明如何透過在 Distributor 主控台中選擇**簡單**套件建立工作流程，在 Distributor 中建立套件。Distributor 是 AWS Systems Manager中的工具。若要建立套件，請準備安裝型資產，每個作業系統平台一個檔案。至少需要一個檔案才能建立套件。**Simple (簡單)** 套件建立程序會為您產生安裝和解除安裝指令碼、檔案雜湊和 JSON 格式的資訊清單。**Simple (簡單)** 工作流程負責上傳和壓縮可安裝的檔案，以及建立新的套件和相關聯的 [SSM 文件](documents.md)。如需支援的平台的詳細資訊，請參閱[支援的套件平台和架構](distributor.md#what-is-a-package-platforms)。

當您使用 Simple 方法建立套件時，Distributor 會為您建立 `install` 和 `uninstall` 指令碼。不過，建立就地更新的套件時，您必須在 **Update script** (更新指令碼) 索引標籤上提供您自己的 `update` 指令碼內容。當您為 `update` 指令碼新增輸入命令時，Distributor 會在它為您建立的 .zip 套件中包含此指令碼，以及 `install` 和 `uninstall` 指令碼。

**注意**  
使用 `In-place` 更新選項將新的或更新的檔案新增至現有的套件安裝，而不需讓關聯的應用程式離線。

**使用簡單工作流程建立套件**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Distributor**。

1. 在 Distributor 首頁上，選擇 **Create package (建立套件)**，然後選擇 **Simple (簡單)**。

1. 在 **Create package (建立套件)** 頁面，輸入套件名稱。套件名稱可包含字母、數字、句點、破折號和底線。名稱應該一般到足以適用於所有版本的套件附件，但也特別到足以識別套件目的。

1. (選用) 對於 **Version name (版本名稱)**，輸入版本名稱。版本名稱最多可包含 512 個字元，而且不得包含特殊字元。

1. 對於 **Location (位置)**，請使用儲存貯體名稱和前置詞，或使用儲存貯體 URL 來選擇儲存貯體。

1. 對於 **Upload software** (上傳軟體)，請選擇 **Add software** (新增軟體)，然後瀏覽具有 `.rpm`、`.msi` 或 `.deb` 副檔名的安裝型軟體檔案。如果檔案名稱包含空格，則上傳會失敗。您可以在單一動作中上傳多個軟體檔案。

1. 對於 **Target platform (目標平台)**，確認為每個安裝型檔案顯示的目標作業系統平台是否正確。如果顯示的作業系統不正確，請從下拉式清單中選擇正確的作業系統。

   對於 **Simple (簡單)** 套件建立工作流程中，因為您每個安裝型檔案僅上傳一次，需要額外的步驟來指示 Distributor 以多個作業系統的單一檔案為目標。例如，如果您上傳名為 `Logtool_v1.1.1.rpm` 的可安裝軟體檔案，您必須在**簡單**工作流程中變更一些預設值，以 Amazon Linux 和 Ubuntu Server 作業系統之支援版本上的相同軟體為目標。當鎖定多個平台時，請執行下列其中一個動作。
   + 在開始前，改用 **Advanced (進階)** 工作流程來將每個安裝型檔案壓縮為 .zip 檔案，以及手動編寫資訊清單，讓系統能夠以多個作業系統平台或版本的安裝型檔案為目標。如需詳細資訊，請參閱[使用進階工作流程建立套件](#distributor-working-with-packages-create-adv)。
   + 在 **Simple (簡單)** 工作流程中手動編輯資訊清單檔案，讓系統以多個作業系統平台或版本的 .zip 檔案為目標。如需如何進行此動作的詳細資訊，請參閱 [步驟 2：建立 JSON 套件資訊清單](#packages-manifest)中的步驟 4 結尾。

1. 對於 **Platform version** (平台版本)，請確認顯示的作業系統平台版本是 **\_any** (後接萬用字元的主要發行版本 (7.\*))，或正是您希望軟體套用的確切作業系統發行版本。如需指定作業系統平台版本的詳細資訊，請參閱 [步驟 2：建立 JSON 套件資訊清單](#packages-manifest)中的步驟 4。

1. 對於 **Architecture** (架構)，從下拉式清單中為每個安裝型檔案選擇正確的處理器架構。如需支援處理器架構的詳細資訊，請參閱 [支援的套件平台和架構](distributor.md#what-is-a-package-platforms)。

1. (選用) 展開 **Scripts (指令碼)**，並檢閱 Distributor 為安裝型軟體產生的指令碼。

1. (選用) 若要提供更新指令碼以與就地更新搭配使用，請展開 **Scripts (指令碼)**，選擇 **Update script (更新指令碼)** 索引標籤，然後輸入您的更新指令碼命令。

   Systems Manager 不會代表您產生更新指令碼。

1. 若要新增更多安裝型軟體檔案，選擇 **Add software (新增軟體)**。否則，請進行下一個步驟。

1. (選用) 展開 **Manifest (資訊清單)**，並檢閱 Distributor 為安裝型軟體產生的 JSON 套件資訊清單。如果在您開始此程序後變更了與您軟體相關的任何資訊，例如平台版本或目標平台，請選擇 **Generate manifest (產生資訊清單)** 以顯示更新的套件資訊清單。

   如果您想要以多個作業系統的軟體安裝型檔案為目標，您可以手動編輯資訊清單，如步驟 8 所述。如需編輯資訊清單的相關資訊，請參閱 [步驟 2：建立 JSON 套件資訊清單](#packages-manifest)。

1. 選擇 **Create package (建立套件)**。

等待 Distributor 完成您軟體的上傳與套件的建立。Distributor 會為每個安裝型檔案顯示上傳狀態。根據您所新增的套件數量和大小，這可能需要幾分鐘的時間。Distributor 會自動將您重新導向至新套件的 **Package details** (套件詳細資訊) 頁面，但您可以選擇在上傳軟體後自行開啟此頁面。**Package details** (套件詳細資訊) 頁面在 Distributor 完成套件的建立程序後，才會顯示您套件的所有相關資訊。若要停止上傳和套件建立程序，請選擇 **Cancel (取消)**。

如果 Distributor 無法上傳任何軟體安裝型檔案，就會顯示 **Upload failed** (上傳失敗) 訊息。若要重試上傳，請選擇 **Retry upload (重試上傳)**。如需如何對套件建立失敗進行疑難排解的更多資訊，請參閱 [故障診斷 AWS Systems Manager Distributor](distributor-troubleshooting.md)。

## 使用進階工作流程建立套件
<a name="distributor-working-with-packages-create-adv"></a>

在本節中，了解進階使用者將已壓縮的可安裝資產 (連同安裝和解除安裝指令碼) 和 JSON 資訊清單檔案上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體後，如何在 Distributor 中建立套件。

若要建立套件，請準備安裝型資產的 .zip 檔案，每個作業系統平台一個 .zip 檔案。至少需要一個 .zip 檔案才能建立套件。下一步，建立 JSON 資訊清單。資訊清單包括您套件程式碼檔案的指標。將所需的程式碼檔案新增至資料夾或目錄，而且資訊清單中已填入正確的值之後，請將套件上傳到 S3 儲存貯體。

範例套件 [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip) 可用於從我們的網站下載。此範例套件包含已完成的 JSON 資訊清單和 3 個 .zip 檔案。

**Topics**
+ [步驟 1：建立 ZIP 檔案](#packages-zip)
+ [步驟 2：建立 JSON 套件資訊清單](#packages-manifest)
+ [步驟 3：將套件和資訊清單上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體](#packages-upload-s3)
+ [步驟 4：將套件新增至 Distributor](#distributor-working-with-packages-add)

### 步驟 1：建立 ZIP 檔案
<a name="packages-zip"></a>

您的套件基礎至少要有一個軟體或安裝型資產的 .zip 檔案。套件包含每個您想支援的作業系統一個 .zip 檔案，除非 .zip 檔案可以安裝在多個作業系統。例如，Red Hat Enterprise Linux 和 Amazon Linux 執行個體支援的版本通常可執行相同的 .RPM 可執行檔，所以您只需要將一個 .zip 檔案連接至套件就能支援這兩種作業系統。

**必要檔案**  
下列是每個 .zip 檔案的必要項目：
+ **install** 和 **uninstall** 指令碼。Windows Server 型受管節點需要 PowerShell 指令碼 (名為 `install.ps1` 和 `uninstall.ps1` 的指令碼)。Linux 類型的受管節點需要 shell 指令碼 (指令碼名為 `install.sh` 和 `uninstall.sh`)。SSM Agent 會執行 **install** 和 **uninstall** 指令碼中的指示。

  例如，您的安裝指令碼可能會執行安裝程式 (例如 .rpm 或 .msi)、可能會複製檔案或設定組態。
+ 可執行檔案、安裝程式套件 (.rpm、.deb、.msi 等)、其他指令碼或組態檔案等。

**選用檔案**  
下列項目是每個 .zip 檔案中的選用項目：
+ **update** 指令碼。提供更新指令碼可讓您使用 `In-place update` 選項來安裝套件。當您想要將新的或更新的檔案新增至現有的套件安裝時，`In-place update` 選項可在執行更新時避免套件應用程式離線。Windows Server 受管節點需要 PowerShell 指令碼 (名為 `update.ps1` 的指令碼)。Linux 型受管節點需要 shell 指令碼 (指令碼名為 `update.sh`)。SSM Agent 會執行 **update** 指令碼中的指示。

如需安裝或更新套件的詳細資訊，請參閱[安裝或更新 Distributor 套件](distributor-working-with-packages-deploy.md)。

如需 .zip 檔案範例，包括 **install** 和 **uninstall** 指令碼、下載範例套件、[ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip)。

### 步驟 2：建立 JSON 套件資訊清單
<a name="packages-manifest"></a>

在您準備和壓縮安裝型檔案後，請建立 JSON 資訊清單。下列為範本。資訊清單範本的部分將在此程序的此區段所述。您可以使用 JSON 編輯器，在個別檔案建立此資訊清單。或者，您可以在建立套件時，在 AWS Systems Manager 主控台中撰寫資訊清單。

```
{
  "schemaVersion": "2.0",
  "version": "{{your-version}}",
  "publisher": "{{optional-publisher-name}}",
  "packages": {
    "{{platform}}": {
      "{{platform-version}}": {
        "{{architecture}}": {
          "file": "{{.zip-file-name-1}}.zip"
        }
      }
    },
    "{{another-platform}}": {
      "{{platform-version}}": {
        "{{architecture}}": {
          "file": "{{.zip-file-name-2}}.zip"
        }
      }
    },
    "{{another-platform}}": {
      "{{platform-version}}": {
        "{{architecture}}": {
          "file": "{{.zip-file-name-3}}.zip"
        }
      }
    }
  },
  "files": {
    "{{.zip-file-name-1}}.zip": {
      "checksums": {
        "sha256": "{{checksum}}"
      }
    },
    "{{.zip-file-name-2}}.zip": {
      "checksums": {
        "sha256": "{{checksum}}"
      }
    }
  }
}
```

**若要建立 JSON 套件資訊清單**

1. 新增結構描述版本到您的資訊清單。在此版本中，結構描述版本一律為 `2.0`。

   ```
   { "schemaVersion": "2.0",
   ```

1. 新增使用者定義的套件版本到您的資訊清單。這也是 **Version name** (版本名稱) 的數值，當您將套件新增至 Distributor 時指定。它會成為您建立的套件時建立 Distributor 的 AWS Systems Manager 文件的一部分。您也提供這個值做為 `AWS-ConfigureAWSPackage` 文件中的輸入，以安裝最新版本以外的套件版本。`version` 值可以包含字母、數字、底線、連字號和句點，長度上限為 128 字元。我們建議您使用便於讀取的套件版本，讓您和其他管理員部署時能輕鬆指定的確切套件版本。下列是 範例。

   ```
   "version": "1.0.1",
   ```

1. (選用) 新增發佈者名稱。下列是 範例。

   ```
   "publisher": "MyOrganization",
   ```

1. 新增套件。`"packages"` 區段敘述您套件中 .zip 檔案支援的平台、發行版本和架構。如需詳細資訊，請參閱[支援的套件平台和架構](distributor.md#what-is-a-package-platforms)。

   {{platform\_version}} 可為萬用字元值 `_any`。使用它表示 .zip 檔案支援平台所有版本。您也可以指定後接萬用字元的主要發行版本，以便支援所有次要版本，例如 7.\*。如果您選擇為指定作業系統版本指定 {{platform-version}} 值，請確定其符合您目標作業系統 AMI 的確切發行版本。以下是取得作業系統正確值的建議資源。
   + 在 Windows Server 型受管節點上，發行版本是 Windows Management Instrumentation (WMI) 資料形式。您可以執行以下來自「命令提示字元」的命令，以取得版本資訊，然後剖析 `version` 的結果。

     ```
     wmic OS get /format:list
     ```
   + 在以 Linux 為基礎的受管節點上，先透過掃描作業系統發行版本 (下列命令) 來取得版本。尋找 `VERSION_ID` 的數值。

     ```
     cat /etc/os-release
     ```

     如果這麼做沒有傳回您需要的結果，請執行下列命令，從 `/etc/lsb-release` 檔案取得 LSB 發行版本資訊並尋找 `DISTRIB_RELEASE` 的值。

     ```
     lsb_release -a
     ```

     若這些方法失敗，您可以根據分發找到版本。例如，您可以在 Debian Server 掃描 `/etc/debian_version` 檔案，或者在 Red Hat Enterprise Linux 掃描 `/etc/redhat-release` 檔案。

     ```
     hostnamectl
     ```

   ```
   "packages": {
       "{{platform}}": {
         "{{platform-version}}": {
           "{{architecture}}": {
             "file": "{{.zip-file-name-1}}.zip"
           }
         }
       },
       "{{another-platform}}": {
         "{{platform-version}}": {
           "{{architecture}}": {
             "file": "{{.zip-file-name-2}}.zip"
           }
         }
       },
       "{{another-platform}}": {
         "{{platform-version}}": {
           "{{architecture}}": {
             "file": "{{.zip-file-name-3}}.zip"
           }
         }
       }
     }
   ```

   下列是 範例。在這個範例中，作業系統平台是 `amazon`，支援的更新版本 `2016.09`，架構是 `x86_64`，支援此平台的 .zip 檔案則是 `test.zip`。

   ```
   {
       "amazon": {
           "2016.09": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   您可以新增萬用字元值 `_any`，表示套件支援所有版本的父元素。例如，若要表示所有 Amazon Linux 更新版本都支援此套件，您的套件陳述式應該與下列相似。您可以在版本或架構層級使用 `_any` 萬用字元，支援平台所有版本，或版本的所有架構，或平台所有架構的所有版本。

   ```
   {
       "amazon": {
           "_any": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

   以下範例新增 `_any` 以顯示第一個套件，Amazon Linux 2016.09 的所有架構都支援 `data1.zip`。Amazon Linux 的所有版本都支援第二個套件 `data2.zip`，但只支援有 `x86_64` 架構的受管節點。`2023.8` 和 `_any` 都是 `amazon` 下的項目。有一個平台 (Amazon Linux)，但有不同的支援版本、架構和相關 .zip 檔案。

   ```
   {
       "amazon": {
           "2023.8": {
               "_any": {
                   "file": "data1.zip"
               }
           },
           "_any": {
               "x86_64": {
                   "file": "data2.zip"
               }
           }
       }
   }
   ```

   若 .zip 檔案支援多個平台，您可以參閱資訊清單 `"packages"` 區段的 .zip 檔案一次以上。例如，如果您的 .zip 檔案同時支援 Red Hat Enterprise Linux 8.x 版本和 Amazon Linux，您在 `"packages"`區段中有兩個項目指向相同的 .zip 檔案，如下列範例所示。

   ```
   {
       "amazon": {
           "2023.8.20250715 ": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       },
       "redhat": {
           "8.*": {
               "x86_64": {
                   "file": "test.zip"
               }
           }
       }
   },
   ```

1. 新增步驟 4 中，做為此套件的部分的 .zip 檔案清單。每個檔案項目需要檔案名稱和 `sha256` 雜湊值的檢查總和。資訊清單中的檢查總和值必須符合壓縮資產中的 `sha256` 雜湊值，避免套件的安裝失敗。

   若要從您可安裝型取得確切檢查總和，您可以執行以下命令。在 Linux 上執行 `shasum -a 256 {{file-name}}.zip` 或 `openssl dgst -sha256 {{file-name}}.zip`。在 Windows 上，執行 [PowerShell](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/get-filehash?view=powershell-6) 中的 `Get-FileHash -Path {{path-to-.zip-file}}` cmdlet。

   資訊清單的 `"files"` 區段包含您套件中每個 .zip 檔案的參考。

   ```
   "files": {
           "test-agent-x86.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE2706223c7616ca9fb28863a233b38e5a23a8c326bb4ae241dcEXAMPLE"
               }
           },
           "test-agent-x86_64.deb.zip": {
               "checksums": {
                   "sha256": "EXAMPLE572a745844618c491045f25ee6aae8a66307ea9bff0e9d1052EXAMPLE"
               }
           },
           "test-agent-x86_64.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.nano.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           },
           "test-agent-x86.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE12a4abb10315aa6b8a7384cc9b5ca8ad8e9ced8ef1bf0e5478EXAMPLE"
               }
           },
           "test-agent-x86_64.msi.zip": {
               "checksums": {
                   "sha256": "EXAMPLE63ccb86e830b63dfef46995af6b32b3c52ce72241b5e80c995EXAMPLE"
               }
           },
           "test-agent-rhel8-x86.rpm.zip": {
               "checksums": {
                   "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE"
               }
           }
       }
   ```

1. 在您新增套件資訊後，儲存並關閉資訊清單檔案。

以下是已完成的資訊清單範例：在這個範例中，您有一個 .zip 檔案 `NewPackage_LINUX.zip`，支援多個平台，但曾在 `"files"` 區段中參考一次。

```
{
    "schemaVersion": "2.0",
    "version": "1.7.1",
    "publisher": "Amazon Web Services",
    "packages": {
        "windows": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_WINDOWS.zip"
                }
            }
        },
        "amazon": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        },
        "ubuntu": {
            "_any": {
                "x86_64": {
                    "file": "NewPackage_LINUX.zip"
                }
            }
        }
    },
    "files": {
        "NewPackage_WINDOWS.zip": {
            "checksums": {
                "sha256": "EXAMPLEc2c706013cf8c68163459678f7f6daa9489cd3f91d52799331EXAMPLE"
            }
        },
        "NewPackage_LINUX.zip": {
            "checksums": {
                "sha256": "EXAMPLE2b8b9ed71e86f39f5946e837df0d38aacdd38955b4b18ffa6fEXAMPLE"
            }
        }
    }
}
```

#### 套件範例
<a name="package-manifest-examples"></a>

範例套件 [ExamplePackage.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/ExamplePackage.zip) 可用於從我們的網站下載。此範例套件包含已完成的 JSON 資訊清單和 3 個 .zip 檔案。

### 步驟 3：將套件和資訊清單上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體
<a name="packages-upload-s3"></a>

將所有 .zip 檔案複製或移動到資料夾或目錄，以準備您的套件。有效套件需要您在 [步驟 2：建立 JSON 套件資訊清單](#packages-manifest) 建立的資訊清單，以及資訊清單檔案清單中找到的所有 .zip 檔案。

**上傳套件和資訊清單至 Amazon Simple Storage Service (Amazon S3)**

1. 將資訊清單檔案中您指定的所有 .zip 封存檔案複製或移動到資料夾或目錄。請勿壓縮將 .zip 封存檔案和資訊清單檔案所移至的資料夾或目錄。

1. 建立儲存貯體或選擇現有的儲存貯體。如需詳細資訊，請參閱*《Amazon Simple Storage Service 入門指南》*中的[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.html)。如需如何執行 AWS CLI 命令以建立儲存貯體的詳細資訊，請參閱《 *AWS CLI 命令參考*[https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mb.html)》中的 。

1. 將資料夾或目錄上傳至儲存貯體。如需詳細資訊，請參閱《*Amazon Simple Storage Service 入門指南*》中的[將物件新增到儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.html)。如果您打算將 JSON 資訊清單貼到 AWS Systems Manager 主控台，請勿上傳資訊清單。如需如何執行 AWS CLI 命令以將檔案上傳至儲存貯體的詳細資訊，請參閱《 *AWS CLI 命令參考*[https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html](https://docs.aws.amazon.com/cli/latest/reference/s3/mv.html)》中的 。

1. 在儲存貯體的首頁，選擇您上傳的資料夾或目錄。如果您將檔案上傳到儲存貯體中的子資料夾，請務必記下子資料夾 (也稱為*前綴*)。您需要此前綴來將套件新增至 Distributor。

### 步驟 4：將套件新增至 Distributor
<a name="distributor-working-with-packages-add"></a>

您可以使用 AWS Systems Manager 主控台、 AWS 命令列工具 (AWS CLI 和 AWS Tools for PowerShell) 或 AWS SDKs將新套件新增至 Distributor。新增套件時，您會新增新的 [SSM 文件](documents.md)。文件允許您將套件部署到受管節點。

**Topics**
+ [使用主控台新增套件](#create-pkg-console)
+ [使用 新增套件 AWS CLI](#create-pkg-cli)

#### 使用主控台新增套件
<a name="create-pkg-console"></a>

您可以使用 AWS Systems Manager 主控台來建立套件。將您在 [步驟 3：將套件和資訊清單上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體](#packages-upload-s3) 中的套件上傳目標的儲存貯體名稱準備好。

**將套件新增至 Distributor (主控台)**

1. 在 https：//[https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/) 開啟 AWS Systems Manager 主控台。

1. 在導覽窗格中，選擇 **Distributor**。

1. 在 Distributor 首頁上，選擇 **Create package (建立套件)**，然後選擇 **Advanced (進階)**。

1. 在 **Create package (建立套件)** 頁面，輸入套件名稱。套件名稱可包含字母、數字、句點、破折號和底線。名稱應該一般到足以適用於所有版本的套件附件，但也特別到足以識別套件目的。

1. 對於 **Version name (版本名稱)**，輸入您資訊清單檔案中 `version` 項目的確切值。

1. 對於 **S3 bucket name (S3 儲存貯體名稱)**，選擇您在 [步驟 3：將套件和資訊清單上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體](#packages-upload-s3)中將 .zip 檔案和資訊清單上傳至其中的儲存貯體名稱。

1. 對於 **S3 key prefix (S3 金鑰前綴)**，輸入 .zip 檔案和資訊清單存放所在的儲存貯體子資料夾。

1. 對於 **Manifest** (資訊清單)，選擇 **Extract from package** (從套件中擷取) 來使用您透過 .zip 檔案上傳到 Amazon Simple Storage Service (Amazon S3) 儲存貯體的資訊清單。

   (選用) 如果您未將 JSON 資訊清單上傳到 .zip 檔案存放所在的 S3 儲存貯體，請選擇 **New manifest** (新增資訊清單)。您可以在 JSON 編輯器欄位編寫或貼上整個資訊清單。更多如何建立 JSON 資訊清單的資訊，請參閱[步驟 2：建立 JSON 套件資訊清單](#packages-manifest)。

1. 當您完成資訊清單，請選擇 **Create package** (建立套件)。

1. 等待 Distributor 透過 .zip 檔案和資訊清單來建立套件。根據您所新增的套件數量和大小，這可能需要幾分鐘的時間。Distributor 會自動將您重新導向至新套件的 **Package details (套件詳細資訊)** 頁面，但您可以選擇在上傳軟體後自行開啟此頁面。**Package details** (套件詳細資訊) 頁面在 Distributor 完成套件的建立程序後，才會顯示您套件的所有相關資訊。若要停止上傳和套件建立程序，請選擇 **Cancel (取消)**。

#### 使用 新增套件 AWS CLI
<a name="create-pkg-cli"></a>

您可以使用 AWS CLI 來建立套件。將您在 [步驟 3：將套件和資訊清單上傳至 Amazon Simple Storage Service (Amazon S3) 儲存貯體](#packages-upload-s3) 中的套件上傳的儲存貯體的 URL 準備好。

**使用 將套件新增至 Amazon S3 AWS CLI**

1. 若要使用 AWS CLI 建立套件，請執行下列命令，將 {{package-name}} 取代為套件的名稱，並將 {{path-to-manifest-file}} 取代為 JSON 資訊清單檔案的檔案路徑。amzn-s3-demo-bucket 是存放整個套件的 Amazon S3 儲存貯體 URL。當您在 Distributor 中執行 **create-document** 命令時，請為 `--document-type` 指定 `Package` 的值。

   若您沒有新增資訊清單檔案到 Amazon Simple Storage Service (Amazon S3) 儲存貯體，`--content` 參數值就是 JSON 資訊清單檔案的檔案路徑。

   ```
   aws ssm create-document \
       --name "{{package-name}}" \
       --content file://{{path-to-manifest-file}} \
       --attachments Key="SourceUrl",Values="{{amzn-s3-demo-bucket}}" \
       --version-name {{version-value-from-manifest}} \
       --document-type Package
   ```

   下列是 範例。

   ```
   aws ssm create-document \
       --name "ExamplePackage" \
       --content file://{{path-to-manifest-file}} \
       --attachments Key="SourceUrl",Values="https://s3.amazonaws.com/amzn-s3-demo-bucket/ExamplePackage" \
       --version-name 1.0.1 \
       --document-type Package
   ```

1. 驗證您的套件已新增，並用您的套件名稱取代 {{package\_name}}，而執行以下命令，以顯示套件資訊清單。若要取得特定版本的文件 (而非與套件版本相同)，您可以新增 `--document-version` 參數。

   ```
   aws ssm get-document \
       --name "{{package-name}}"
   ```

如需可以與 **create-document** 命令搭配使用之其他選項的相關資訊，請參閱《*AWS CLI 命令參考*》中 AWS Systems Manager 章節的 [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html)。如需可搭配 **get-document** 命令使用之其他選項的相關資訊，請參閱[https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-document.html)。