Distributor でパッケージを作成する - AWS Systems Manager

Distributor でパッケージを作成する

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

異なるプラットフォームで、同じファイルを使用することはありますが、パッケージにアタッチするすべてのファイルは、マニフェストの Files セクションにリストされている必要があります。コンソールで simple ワークフローを使用してパッケージを作成している場合は、マニフェストが自動的に生成されます。1 つのドキュメントにアタッチできるファイル数は最大 20 です。各ファイルの最大サイズは 1 GB です。サポートされるプラットフォームの詳細については、「サポートされているパッケージのプラットフォームとアーキテクチャ」を参照してください。

パッケージを作成すると、システムは新しい SSM ドキュメントを作成します。このドキュメントでは、マネージドノードにパッケージをデプロイすることができます。

デモ専用のサンプルパッケージ ExamplePackage.zip をウェブサイトからダウンロードできます。サンプルパッケージには、完成した JSON マニフェストと、PowerShell v7.0.0 のインストーラを含む 3 つの .zip ファイルが含まれています。インストールおよびアンインストールスクリプトには有効なコマンドが含まれていません。[Advanced (アドバンスト)] ワークフローでパッケージを作成するには、インストール可能な各ソフトウェアとスクリプトを .zip ファイルに圧縮する必要がありますが、[Simple (簡易)] ワークフローではインストール可能なアセットを圧縮しないでください。

シンプルワークフローを使用してパッケージを作成する

このセクションでは、Distributor コンソールで [Simple] パッケージ作成ワークフローを選択して、Distributor でパッケージを作成する方法について説明します。Distributor は AWS Systems Manager の一機能です。パッケージを作成するには、オペレーティングシステムプラットフォームごとに、インストール可能なアセットを準備します。パッケージを作成するには、少なくとも 1 つのファイルが必要です。[Simple] パッケージ作成プロセスでは、インストールスクリプトおよびアンインストールスクリプト、ファイルのハッシュ、JSON 形式のマニフェストを生成します。[Simple (簡易)] ワークフローでは、インストール可能なファイルをアップロードおよび圧縮し、新しいパッケージと、関連する [SSM ドキュメント] を作成するプロセスを処理します。サポートされるプラットフォームの詳細については、「サポートされているパッケージのプラットフォームとアーキテクチャ」を参照してください。

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/) を開きます。

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

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

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

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

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

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

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

    [Simple] パッケージ作成ワークフローでは、各インストール可能ファイルを 1 回だけアップロードするため、Distributor に複数のオペレーティングシステムの単一ファイルをターゲットにするよう指示するための追加のステップが必要です。たとえば、Logtool_v1.1.1.rpm という名前のインストール可能なソフトウェアファイルをアップロードする場合、Amazon Linux と Ubuntu オペレーティングシステムの両方で同じソフトウェアがターゲットになるため、[Simple] ワークフローのデフォルト設定をいくつか変更する必要があります。複数のプラットフォームをターゲットにする場合は、次のいずれかの操作を行います。

    • 代わりに [Advanced (アドバンスト)] ワークフローを使用して、開始前に、インストール可能な各ファイルを .zip ファイルに圧縮後、マニフェストを手動で作成して、1 つのインストール可能なファイルが複数のオペレーティングシステムプラットフォーム、またはバージョンでターゲットになるようにします。詳細については、「高度なワークフローを使用してパッケージを作成する」を参照してください。

    • .zip ファイルが複数のオペレーティングシステムプラットフォーム、またはバージョンでターゲットになるように、[Simple] ワークフローでマニフェストファイルを手動で編集します。これを行う方法については、ステップ 2: JSON パッケージマニフェストを作成する のステップ 4 の最後を参照してください。

  9. [プラットフォームのバージョン] で、表示されているオペレーティングシステムのプラットフォームのバージョンが _any、後にワイルドカード (7.*) が続くメジャーリリースバージョン、またはソフトウェアを適用する特定のオペレーティングシステムのリリースバージョンに一致していることを確認します。オペレーティングシステムのプラットフォームのバージョンの指定の詳細については、ステップ 2: JSON パッケージマニフェストを作成する のステップ 4 を参照してください。

  10. [Architecture] のドロップダウンリストから、インストール可能なファイルごとに正しいプロセッサアーキテクチャを選択します。サポートされるプロセッサアーキテクチャの詳細については、「サポートされているパッケージのプラットフォームとアーキテクチャ」を参照してください。

  11. (オプション) [Scripts (スクリプト)] を展開し、インストール可能なソフトウェア用に Distributor によって生成されるスクリプトを確認します。

  12. (オプション)インプレース更新で使用する更新スクリプトを提供するには、[Scripts (スクリプト)] を展開し、[Update script (スクリプトの更新)] タブを選択して、更新スクリプトコマンドを入力します。

    Systems Manager は、ユーザーに代わって更新スクリプトを生成しません。

  13. インストール可能なソフトウェアファイルを追加するには、[Add software (ソフトウェアの追加)] を選択します。それ以外の場合は、次のステップに進みます。

  14. (オプション) [Manifest (マニフェスト)] を展開し、インストール可能なソフトウェアに対して Distributor が生成する JSON パッケージのマニフェストを確認します。プラットフォームのバージョンやターゲットのプラットフォームなど、この手順を開始してからソフトウェアに関する情報を変更した場合は、[Generate manifest (マニフェストの生成)] を選択して、更新されたパッケージマニフェストを表示します。

    ステップ 8 で説明されているように、複数のオペレーティングシステムでインストール可能なソフトウェアをターゲットにする場合は、マニフェストを手動で編集できます。マニフェストの編集の詳細については、「ステップ 2: JSON パッケージマニフェストを作成する」を参照してください。

  15. [Create package (パッケージの作成)] を選択します。

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

Distributor でソフトウェアのインストール可能なファイルをアップロードできない場合は、[Upload failed (アップロードに失敗しました)] メッセージが表示されます。アップロードを再試行するには、[Retry upload (アップロードの再試行)] を選択します。パッケージ作成エラーをトラブルシューティングする方法の詳細については、「AWS Systems ManagerDistributor のトラブルシューティング」を参照してください。

高度なワークフローを使用してパッケージを作成する

このセクションでは、インストールスクリプトおよびアンインストールスクリプトで圧縮されたインストール可能なアセットと JSON マニフェストファイルを Amazon S3 バケットにアップロードした後に、高度なユーザーが Distributor でパッケージを作成する方法について説明します。

パッケージを作成するには、オペレーティングシステムプラットフォームごとに 1 つの .zip ファイルで、インストール可能なアセットの .zip ファイルを準備します。パッケージを作成するには、少なくとも 1 つの .zip ファイルが必要です。次に、JSON マニフェストを作成します。マニフェストには、パッケージコードファイルへのポインタが含まれています。必要なコードファイルをフォルダかディレクトリに追加し、マニフェストに正しい値が入力されたら、パッケージを S3 バケットにアップロードします。

サンプルパッケージ、ExamplePackage.zip は、当社のウェブサイトからダウンロードすることができます。サンプルパッケージには、完了した JSON マニフェストと 3 つの .zip ファイルが含まれています。

ステップ 1: ZIP ファイルを作成する

パッケージの基盤は、少なくとも 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 パッケージをインストールまたは更新する」を参照してください。

サンプル installuninstall スクリプトを含む .zip ファイルの例については、サンプルパッケージ、ExamplePackage.zip をダウンロードしてください。

ステップ 2: JSON パッケージマニフェストを作成する

インストール可能なファイルを準備して圧縮したら、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",
  2. ユーザー定義のパッケージのバージョンをマニフェストに追加します。これは、パッケージを Distributor に追加するときに指定する [Version name (バージョン名)] の値でもあります。これは、パッケージを追加するときに Distributor が作成する AWS Systems Manager ドキュメントの一部になります。また、この値を AWS-ConfigureAWSPackage ドキュメントの入力として提供して、最新バージョン以外のバージョンのパッケージをインストールします。version 値には、文字、数字、アンダースコア、ハイフン、およびピリオドを含み、長さは最大 128 文字までです。人間が読み取れるパッケージバージョンを使用して、デプロイ時にユーザーと他の管理者が正確なパッケージバージョンを簡単に指定できるようにすることをお勧めします。以下はその例です。

    "version": "1.0.1",
  3. (オプション) 発行者名を追加します。以下はその例です。

    "publisher": "MyOrganization",
  4. パッケージを追加します。この "packages" セクションでは、パッケージ内の .zip ファイルでサポートされているプラットフォーム、リリースバージョン、アーキテクチャについて説明します。詳細については、「サポートされているパッケージのプラットフォームとアーキテクチャ」を参照してください。

    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

      必要な結果が返らない場合は、次のコマンドを実行して 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 アーキテクチャのマネージドノードでのみサポートされています。2016.09 および _any バージョンは両方とも amazon 下にあるエントリです。1 つのプラットフォーム (Amazon Linux) がありますが、サポートされているバージョン、アーキテクチャ、および関連する .zip ファイルは異なります。

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

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

    { "amazon": { "2018.03": { "x86_64": { "file": "test.zip" } } }, "redhat": { "7.*": { "x86_64": { "file": "test.zip" } } } },
  5. ステップ 4。からこのパッケージの一部である .zip ファイルのリストを追加します。各ファイルエントリには、ファイル名と sha256 ハッシュ値チェックサムが必要です。マニフェストのチェックサム値は、パッケージのインストールが失敗しないように、圧縮されたアセットの sha256 ハッシュ値と一致する必要があります。

    インストール可能ファイルから正確なチェックサムを取得するには、次のコマンドを実行します。Linux では、shasum -a 256 file-name.zip または openssl dgst -sha256 file-name.zip を実行します。Windows では、PowerShellGet-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-rhel5-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-rhel5-x86.rpm.zip": { "checksums": { "sha256": "EXAMPLE13df60aa3219bf117638167e5bae0a55467e947a363fff0a51EXAMPLE" } }, "test-agent-rhel5-x86_64.rpm.zip": { "checksums": { "sha256": "EXAMPLE7ce8a2c471a23b5c90761a180fd157ec0469e12ed38a7094d1EXAMPLE" } } }
  6. パッケージ情報を追加したら、マニフェストファイルを保存して閉じます。

完了したマニフェストの例を次に示します。この例では、複数のプラットフォームをサポートするが、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" } } } }

パッケージの例

サンプルパッケージ、ExamplePackage.zip は、当社のウェブサイトからダウンロードすることができます。サンプルパッケージには、完了した JSON マニフェストと 3 つの .zip ファイルが含まれています。

ステップ 3: Amazon S3 バケットにパッケージとマニフェストをアップロードする

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

Amazon S3 にパッケージとマニフェストをアップロードするには
  1. マニフェストで指定したすべての .zip アーカイブファイルを、フォルダまたはディレクトリにコピーまたは移動します。.zip アーカイブファイルとマニフェストファイルの移動先のフォルダやディレクトリは圧縮しないでください。

  2. バケットを作成するか、既存のバケットを選択します。詳細については、Amazon Simple Storage Service 入門ガイドの「バケットの作成」を参照してください。AWS CLI コマンドを実行してバケットを作成する方法の詳細については、AWS CLI コマンドリファレンスの「mb」を参照してください。

  3. フォルダかディレクトリをバケットにアップロードします。詳細については、Amazon Simple Storage Service 入門ガイドの「バケットへのオブジェクトの追加」を参照してください。JSON マニフェストを AWS Systems Manager コンソールに貼り付ける場合は、マニフェストをアップロードしないでください。AWS CLI コマンドを実行してバケットにファイルをアップロードする方法の詳細については、AWS CLI コマンドリファレンスの「mv」を参照してください。

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

ステップ 4: パッケージを Distributor に追加する

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

コンソールを使用してパッケージを追加する

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

Distributor にパッケージを追加するには (コンソール)
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

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

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

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

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

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

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

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

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

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

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

AWS CLI を使用してパッケージを追加する

AWS CLI を使用してパッケージを作成できます。ステップ 3: Amazon 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-typePackage 値を指定します。

    マニフェストファイルを 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
  2. パッケージが追加されたことを確認し、package-name をパッケージ名で置き換えて次のコマンドを実行して、パッケージマニフェストを表示します。ドキュメントの特定のバージョンを取得するには (パッケージのバージョンと同じではありません)、--document-version パラメータを追加します。

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

create-document コマンドで使用できるその他のオプションについては、AWS CLI コマンドリファレンス で AWS Systems Manager のセクションの「create-document」を参照してください。get-document コマンドで使用できるその他のオプションについては、「get-document」を参照してください。