

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

パッケージを作成するには、インストール可能なソフトウェアまたはアセットを、オペレーティングシステムプラットフォームごとに 1 ファイルずつ準備します。パッケージを作成するには、少なくとも 1 つのファイルが必要です。

異なるプラットフォームで、同じファイルを使用することはありますが、パッケージにアタッチするすべてのファイルは、マニフェストの `Files` セクションにリストされている必要があります。コンソールで simple ワークフローを使用してパッケージを作成している場合は、マニフェストが自動的に生成されます。1 つのドキュメントにアタッチできるファイル数は最大 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 のインストーラを含む 3 つの .zip ファイルが含まれています。インストールおよびアンインストールスクリプトには有効なコマンドが含まれていません。[**Advanced (アドバンスト)**] ワークフローでパッケージを作成するには、インストール可能な各ソフトウェアとスクリプトを .zip ファイルに圧縮する必要がありますが、[**Simple (簡易)**] ワークフローではインストール可能なアセットを圧縮しないでください。

**Topics**
+ [シンプルワークフローを使用してパッケージを作成する](#distributor-working-with-packages-create-simple)
+ [高度なワークフローを使用してパッケージを作成する](#distributor-working-with-packages-create-adv)

## シンプルワークフローを使用してパッケージを作成する
<a name="distributor-working-with-packages-create-simple"></a>

このセクションでは、Distributor コンソールで **[Simple]** パッケージ作成ワークフローを選択して、Distributor でパッケージを作成する方法について説明します。Distributor は AWS Systems Manager のツールです。パッケージを作成するには、オペレーティングシステムプラットフォームごとに、インストール可能なアセットを準備します。パッケージを作成するには、少なくとも 1 つのファイルが必要です。[**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. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[Distributor]** を選択します。

1. Distributor ホームページで [**Create package (パッケージの作成)**]、[**Simple**] の順に選択します。

1. [**Create package (パッケージの作成)**] ページに、パッケージの名前を入力します。パッケージ名には、文字、数字、ピリオド、ダッシュ、アンダースコアを含めることができます。この名前は、パッケージの添付ファイルのすべてのバージョンに適用できるほど一般的である必要がありますが、パッケージの目的を識別できるよう具体的な名前である必要があります。

1. （オプション） [**バージョン名**] にバージョン名を入力します。バージョン名は最大 512 文字で、特殊文字を含めることはできません。

1. [**Location (ロケーション)**] で、バケット名とプレフィックス、またはバケット URL を使用してバケットを選択します。

1. [**Upload software**] (ソフトウェアのアップロード) で、[**Add software**] (ソフトウェアの追加) を選択し、`.rpm`、`.msi`、または `.deb` 拡張子が付いたインストール可能なソフトウェアファイルにナビゲートします。ファイル名にスペースが含まれていると、アップロードは失敗します。1 回のアクションで複数のソフトウェアファイルをアップロードできます。

1. [**Target platform (ターゲットプラットフォーム)**] で、インストール可能な各ファイルに表示されるターゲットオペレーティングシステムプラットフォームが正しいことを確認します。表示されているオペレーティングシステムが正しくない場合は、ドロップダウンリストから正しいオペレーティングシステムを選択します。

   [**Simple**] パッケージ作成ワークフローでは、各インストール可能ファイルを 1 回だけアップロードするため、Distributor に複数のオペレーティングシステムの単一ファイルをターゲットにするよう指示するための追加のステップが必要です。たとえば、`Logtool_v1.1.1.rpm` という名前のインストール可能なソフトウェアファイルをアップロードする場合、サポートされているバージョンの Amazon Linux と Ubuntu Server オペレーティングシステムの両方で同じソフトウェアがターゲットになるため、**[Simple]** ワークフローのデフォルト設定をいくつか変更する必要があります。複数のプラットフォームをターゲットにする場合は、次のいずれかの操作を行います。
   + 代わりに [**Advanced (アドバンスト)**] ワークフローを使用して、開始前に、インストール可能な各ファイルを .zip ファイルに圧縮後、マニフェストを手動で作成して、1 つのインストール可能なファイルが複数のオペレーティングシステムプラットフォーム、またはバージョンでターゲットになるようにします。詳細については、「[高度なワークフローを使用してパッケージを作成する](#distributor-working-with-packages-create-adv)」を参照してください。
   + .zip ファイルが複数のオペレーティングシステムプラットフォーム、またはバージョンでターゲットになるように、[**Simple**] ワークフローでマニフェストファイルを手動で編集します。これを行う方法については、[ステップ 2: JSON パッケージマニフェストを作成する](#packages-manifest) のステップ 4 の最後を参照してください。

1. [**プラットフォームのバージョン**] で、表示されているオペレーティングシステムのプラットフォームのバージョンが **\$1any**、後にワイルドカード (7.\$1) が続くメジャーリリースバージョン、またはソフトウェアを適用する特定のオペレーティングシステムのリリースバージョンに一致していることを確認します。オペレーティングシステムのプラットフォームのバージョンの指定の詳細については、[ステップ 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**] ページに自動的にリダイレクトされますが、ソフトウェアのアップロード後にこのページを自分で開くことも選択できます。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 S3 バケットにアップロードした後に、高度なユーザーが Distributor でパッケージを作成する方法について説明します。

パッケージを作成するには、オペレーティングシステムプラットフォームごとに 1 つの .zip ファイルで、インストール可能なアセットの .zip ファイルを準備します。パッケージを作成するには、少なくとも 1 つの .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 S3 バケットにパッケージとマニフェストをアップロードする](#packages-upload-s3)
+ [ステップ 4: パッケージを Distributor に追加する](#distributor-working-with-packages-add)

### ステップ 1: ZIP ファイルを作成する
<a name="packages-zip"></a>

パッケージの基盤は、少なくとも 1 つのソフトウェアの .zip ファイル、またはインストール可能なアセットです。パッケージには、複数のオペレーティングシステムに 1 つの .zip ファイルをインストールできない限り、サポートするオペレーティングシステムごとに 1 つの .zip ファイルが含まれています。例えば、サポートされているバージョンの Red Hat Enterprise Linux インスタンスと Amazon Linux インスタンスは、通常同じ .RPM 実行可能ファイルを実行できるため、両方のオペレーティングシステムをサポートするために、パッケージには .zip ファイルを 1 つだけアタッチする必要があります。

**必要なファイル**  
各 .zip ファイルには次の項目が必要です。
+ **install** および **uninstall** スクリプト。PowerShell スクリプトを必要とする Windows Server ベースのマネージドノード (`install.ps1` および `uninstall.ps1` というスクリプト)。Linux ベースのマネージドノードの場合、シェルスクリプト (`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 ベースのマネージドノードには、シェルスクリプト(`update.sh` という名前のスクリプト)が必要です。SSM Agent は、**update** スクリプト内の指示を実行します。

パッケージのインストールまたは更新の詳細については、「[Distributor パッケージをインストールまたは更新する](distributor-working-with-packages-deploy.md)」を参照してください。

サンプル **install** と **uninstall** スクリプトを含む .zip ファイルの例については、サンプルパッケージ、[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. ユーザー定義のパッケージのバージョンをマニフェストに追加します。これは、パッケージを Distributor に追加するときに指定する [**Version name (バージョン名)**] の値でもあります。これは、パッケージを追加するときに 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.\$1)。特定のオペレーティングシステムバージョンに対して *platform-version* 値を指定する場合は、ターゲットとするオペレーティングシステム AMI のリリースバージョンと正確に一致していることを確認してください。以下は、オペレーティングシステムの正しい値を得るために推奨されるリソースです。
   + Windows Server ベースのマネージドノードでは、リリースバージョンは Windows Management Instrumentation (WMI) データとして使用できます。コマンドプロンプトから次のコマンドを実行すると、バージョン情報が取得され、`version` の結果が解析されます。

     ```
     wmic OS get /format:list
     ```
   + Linux ベースのマネージドノードでは、最初にオペレーティングシステムのリリースをスキャンしてバージョンを取得します (次のコマンド)。`VERSION_ID` の値を探します。

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

     必要な結果が返らない場合は、次のコマンドを実行して LSB リリース情報を `/etc/lsb-release` ファイルから取得し、`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` を追加して、最初のパッケージ `data1.zip` が Amazon Linux 2016.09 のすべてのアーキテクチャでサポートされていることを示します。2 番目のパッケージ `data2.zip` は、Amazon Linux のすべてのリリースでサポートされていますが、`x86_64` アーキテクチャのマネージドノードでのみサポートされています。`2023.8` および `_any` バージョンは両方とも `amazon` 下にあるエントリです。1 つのプラットフォーム (Amazon Linux) がありますが、サポートされているバージョン、アーキテクチャ、および関連する .zip ファイルは異なります。

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

   .zip ファイルが複数のプラットフォームをサポートしている場合は、マニフェストの `"packages"` セクションで複数回 .zip ファイルを参照できます。例えば、Red Hat Enterprise Linux 8.x バージョンと Amazon Linux の両方をサポートする .zip ファイルがある場合、次の例に示すように、同じ .zip ファイルを指す 2 つのエントリが `"packages"` セクションにあります。

   ```
   {
       "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` コマンドレットを実行します。

   マニフェストの `"files"` セクションには、パッケージ内の各 .zip ファイルへのリファレンスが 1 つ含まれています。

   ```
   "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. パッケージ情報を追加したら、マニフェストファイルを保存して閉じます。

完了したマニフェストの例を次に示します。この例では、複数のプラットフォームをサポートするが、`NewPackage_LINUX.zip` セクションでは 1 回のみ参照される .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 S3 バケットにパッケージとマニフェストをアップロードする
<a name="packages-upload-s3"></a>

すべての .zip ファイルをフォルダまたはディレクトリにコピーまたは移動して、パッケージを準備します。有効なパッケージには [ステップ 2: JSON パッケージマニフェストを作成する](#packages-manifest) で作成したマニフェストとマニフェストファイルリストで特定されたすべての .zip ファイルが必要です。

**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. バケットのホームページでアップロードしたフォルダかディレクトリを選択します。バケット内のサブフォルダにファイルをアップロードした場合は、サブフォルダ ([*prefix*] とも呼ばれる) を書き留めます。パッケージを Distributor に追加するには、プレフィックスが必要です。

### ステップ 4: パッケージを Distributor に追加する
<a name="distributor-working-with-packages-add"></a>

AWS Systems Manager コンソール、AWS コマンドラインツール (AWS CLI および AWS Tools for PowerShell)、または AWS SDK を使用して、Distributor に新しいパッケージを追加できます。パッケージを追加すると、新しい [SSM ドキュメント](documents.md)を追加します。このドキュメントでは、マネージドノードにパッケージをデプロイすることができます。

**Topics**
+ [コンソールを使用してパッケージを追加する](#create-pkg-console)
+ [AWS CLI を使用してパッケージを追加する](#create-pkg-cli)

#### コンソールを使用してパッケージを追加する
<a name="create-pkg-console"></a>

AWS Systems Manager コンソールを使用してパッケージを作成できます。[ステップ 3: Amazon S3 バケットにパッケージとマニフェストをアップロードする](#packages-upload-s3) でパッケージをアップロードしたバケットの名前を用意します。

**Distributor にパッケージを追加するには (コンソール)**

1. AWS Systems Manager コンソール ([https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)) を開きます。

1. ナビゲーションペインで、**[Distributor]** を選択します。

1. Distributor ホームページで [**Create package (パッケージの作成)**]、[**Advanced**] の順に選択します。

1. [**Create package (パッケージの作成)**] ページに、パッケージの名前を入力します。パッケージ名には、文字、数字、ピリオド、ダッシュ、アンダースコアを含めることができます。この名前は、パッケージの添付ファイルのすべてのバージョンに適用できるほど一般的である必要がありますが、パッケージの目的を識別できるよう具体的な名前である必要があります。

1. [**Version name (バージョン名)**] で、マニフェストファイルの `version` エントリの正確な値を入力します。

1. [**S3 バケット名**] で、[ステップ 3: Amazon S3 バケットにパッケージとマニフェストをアップロードする](#packages-upload-s3) で .zip ファイルとマニフェストをアップロードしたバケットの名前を選択します。

1. [**S3 キープレフィックス**] に、.zip ファイルとマニフェストが保存されているバケットのサブフォルダを入力します。

1. [**マニフェスト**] で、[**パッケージから抽出**] を選択して、.zip ファイルとともに Amazon S3 バケットにアップロードしたマニフェストを使用します。

   （オプション） .zip ファイルを保存した S3 バケットに JSON マニフェストをアップロードしなかった場合は、[**新しいマニフェスト**] を選択します。JSON エディタフィールドで、マニフェスト全体を作成または貼り付けることができます。JSON マニフェストの作成方法の詳細については、「[ステップ 2: JSON パッケージマニフェストを作成する](#packages-manifest)」を参照してください。

1. マニフェストの作成または貼り付けが完了したら、[**パッケージの作成**] を選択します。

1. Distributor で .zip ファイルとマニフェストからパッケージが作成されるまで待ちます。追加するパッケージの数とサイズによっては、数分かかる場合があります。 Distributor では、新しいパッケージの [**Package details**] ページに自動的にリダイレクトされますが、ソフトウェアのアップロード後にこのページを自分で開くことを選択することもできます。Distributor でパッケージの作成プロセスが完了するまで、[**パッケージの詳細**] ページにはパッケージに関する情報は表示されません。アップロードプロセスとパッケージ作成プロセスを停止するには、[**Cancel**] を選択します。

#### AWS CLI を使用してパッケージを追加する
<a name="create-pkg-cli"></a>

AWS CLI を使用してパッケージを作成できます。[ステップ 3: Amazon S3 バケットにパッケージとマニフェストをアップロードする](#packages-upload-s3) でパッケージをアップロードしたバケットから URL を準備します。

**AWS CLI を使用して Amazon S3 にパッケージを追加するには**

1. AWS CLI を使用してパッケージを作成するには、次のコマンドを実行します。コマンドの *package-name* はパッケージ名に、*path-to-manifest-file* は JSON マニフェストファイルのファイルパスに置き換えてください。amzn-s3-demo-bucket は、パッケージ全体が保存されている Amazon S3 バケットの URL です。Distributor で **create-document** コマンドを実行する場合は、`--document-type` の `Package` 値を指定します。

   マニフェストファイルを 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)」を参照してください。