Software Package Catalog の使用準備 - AWS IoT Core

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Software Package Catalog の使用準備

次のセクションでは、パッケージバージョンのライフサイクルの概要と、 を使用するための情報について説明します。 AWS IoT Device Management ソフトウェアパッケージカタログ。

パッケージバージョンライフサイクル

パッケージバージョンは、draftpublisheddeprecated などのライフサイクルステータスを経て進化する可能性があります。deleted である可能性もあります。

下書き、公開済み、廃止済みを含むパッケージバージョンのライフサイクル。削除することもできます。
  • 下書き

    パッケージバージョンを作成すると、 draft状態になります。この状態は、ソフトウェアパッケージが準備中であるか、不完全であることを示します。

    この状態のパッケージバージョンはデプロイできません。パッケージバージョンの説明、属性、およびタグを編集することはできます。

    draft 状態のパッケージバージョンを publishedまたは に移行するには、コンソールdeletedを使用するか、 UpdatePackageVersionまたは DeletePackageVersionAPIオペレーションを発行します。

  • 公開済み

    パッケージバージョンをデプロイする準備ができたら、パッケージバージョンを published状態に移行します。この状態では、コンソールまたは UpdatePackageAPIオペレーションでソフトウェアパッケージを編集することで、パッケージバージョンをデフォルトバージョンとして識別できます。この状態では、説明とタグのみを編集できます。

    published 状態のパッケージバージョンを deprecatedまたは に移行するには、コンソールを使用するdeletedか、 または UpdatePackageVersionDeletePackageVersionAPIオペレーションのいずれかを発行します。

  • 廃止済み

    新しいパッケージバージョンがある場合は、以前のパッケージバージョンを deprecated に移行できます。非推奨のパッケージバージョンを使用してジョブをデプロイすることはできます。非推奨のパッケージバージョンをデフォルトバージョンとして名前付けし、説明とタグのみを編集することもできます。

    バージョンが古くなっているが、古いdeprecatedバージョンを使用しているデバイスが フィールドに残っている場合、またはランタイムの依存関係のためにパッケージバージョンを維持する必要がある場合は、パッケージバージョンを に移行することを検討してください。

    deprecated 状態のパッケージバージョンを publishedまたは に移行するには、コンソールを使用するdeletedか、 または UpdatePackageVersion DeletePackageVersion API オペレーションのいずれかを発行します。

  • [Deleted] (削除済み)

    パッケージバージョンを使用する予定がなくなった場合は、コンソールを使用するか、 DeletePackageVersionAPIオペレーションを発行することでパッケージバージョンを削除できます。

    注記

    そのパッケージバージョンを参照している保留中のジョブがあるときにパッケージバージョンを削除した場合、ジョブが正常に完了して予約済みの名前付きシャドウを更新しようとしたときにエラーメッセージが表示されます。

    削除するソフトウェアパッケージバージョンがデフォルトパッケージバージョンとして指定されている場合は、最初にパッケージを更新して別のバージョンをデフォルトとして指定するか、フィールドを名前なしのままにする必要があります。これを行うには、 コンソールまたは UpdatePackageVersionAPIオペレーションを使用します。(名前付きパッケージバージョンをデフォルトとして削除するには、 UpdatePackage API オペレーションを発行するときに unsetDefaultVersionパラメータを true に設定します)。

    デフォルトバージョンとして指定されていない限り、コンソールからソフトウェアパッケージを削除すると、そのパッケージに関連付けられているすべてのパッケージバージョンが削除されます。

パッケージバージョンの命名規則

パッケージバージョンに名前を付けるときは、自分や他の人が最新のパッケージバージョンとバージョンの進行状況を簡単に識別できるように、論理的な命名戦略を計画して適用することが重要です。パッケージバージョンを作成するときはバージョン名を指定する必要がありますが、戦略と形式はビジネスケースによって大きく異なります。

ベストプラクティスとして、セマンティックバージョニングSemVer形式を使用することをお勧めします。例えば、1.2.3 の場合、1 は機能的に互換性のない変更のメジャーバージョン、2 は機能的に互換性のある変更のメジャーバージョン、3 は (バグ修正用の) パッチバージョンです。詳細については、「セマンティックバージョニング 2.0.0」を参照してください。パッケージバージョン名の要件の詳細については、「」のversionName「」を参照してください。 AWS IoT API リファレンスガイド。

デフォルトバージョン

バージョンをデフォルトとして設定することは任意です。デフォルトのパッケージバージョンを追加または削除できます。デフォルトバージョンとして指定されていないパッケージバージョンをデプロイすることもできます。

パッケージバージョンを作成すると、そのバージョンは draft 状態になり、パッケージバージョンを公開済みに移行するまでデフォルトバージョンとして指定することはできません。Software Package Catalog は、デフォルトとしてバージョンを自動的に選択したり、新しいパッケージバージョンをデフォルトとして更新したりしません。コンソールまたは UpdatePackageVersionAPIオペレーションを発行して、選択したパッケージバージョンに意図的に名前を付ける必要があります。

バージョン属性

バージョン属性とその値には、パッケージバージョンに関する重要な情報が格納されます。パッケージまたはパッケージバージョンの汎用属性を定義することをお勧めします。例えば、プラットフォーム、アーキテクチャ、オペレーティングシステム、リリース日、作成者、または Amazon S3 の名前と値のペアを作成できますURL。

を作成する場合 AWS IoT ジョブドキュメントを含む ジョブでは、属性の値を参照する代替変数 ($parameter) を使用することもできます。詳細については、「準備」を参照してください。 AWS IoT ジョブ

パッケージバージョンで使用されるバージョン属性は、予約済みの名前付きシャドウに自動的に追加されず、フリートインデックス作成から直接インデックスを作成またはクエリすることはできません。フリートインデックス作成を使用してパッケージバージョン属性のインデックスを作成またはクエリするには、予約済みの名前付きシャドウにバージョン属性を入力します。

オペレーティングシステムやインストール時間など、予約済みの名前付きシャドウキャプチャデバイスによってレポートされるプロパティ のバージョン属性パラメータを使用することをお勧めします。また、フリートインデックス作成を使用してインデックスを作成し、クエリを実行することもできます。

バージョン属性は、特定の命名規則に従うためには必要ありません。ビジネスニーズに合わせて名前と値のペアを作成できます。パッケージバージョンのすべての属性の合計サイズは 3 KB に制限されています。詳細については、「 Software Package Catalog ソフトウェアパッケージとパッケージバージョンの制限」を参照してください。

有効化 AWS IoT フリートインデックス作成

ソフトウェアパッケージとパッケージバージョンを作成または更新するには、Software Package Catalogのフリートインデックス作成を有効にする必要があります。フリートインデックス作成は、 を有効にするサポートを提供します。 AWS IoT モノは、バージョンでフィルタリングされたモノの動的グループによってグループ化されます。例えば、フリートインデックス作成では、特定のパッケージバージョンがインストールされているモノ、されていないモノ、パッケージバージョンが何もインストールされていないモノ、特定の名前と値のペアに一致するモノを識別できます。最後に、フリートインデックスを作成すると、フリートの状態に関するインサイトを得るのに使用できる標準およびカスタムメトリクスが提供されます。詳細については、「フリートインデックス作成の準備」を参照してください。

注記

Software Package Catalog のフリートインデックス作成を有効にすると、標準のサービスコストが発生します。詳細については、「」を参照してくださいAWS IoT Device Management、料金表

予約済みの名前付きシャドウ

予約済みの名前付きシャドウ、$package は、デバイスにインストールされているソフトウェアパッケージとパッケージバージョンの状態を反映しています。フリートインデックス作成では、予約済みの名前付きシャドウをデータソースとして使用して標準メトリクスとカスタムメトリクスを構築し、フリートの状態をクエリできるようにします。詳細については、「フリートインデックス作成の準備」を参照してください。

予約済みの名前付きシャドウは、名前があらかじめ定義されていて変更できないという点を除いて、名前付きのシャドウと似ています。さらに、予約済みの名前付きシャドウはメタデータを更新せず、version および attributes のキーワードのみを使用します。

などの他のキーワードを含む更新リクエストはdescriptionrejectedトピックでエラーレスポンスを受け取ります。詳細については、「Device Shadow エラーメッセージ」を参照してください。

これは、 の作成時に作成できます。 AWS IoT コンソールで が AWS IoT ジョブは、シャドウを正常に完了して更新します。また、UpdateThingShadowAPIオペレーションを発行した場合は も更新します。詳細については、「」のUpdateThingShadow「」を参照してください。 AWS IoT Core デベロッパーガイド。

注記

予約済みの名前付きシャドウをインデックスしても、フリートインデックスでインデックスできる名前付きシャドウの数にはカウントされません。詳細については、「」を参照してくださいAWS IoT Device Management フリートインデックス作成の制限とクォータ 。さらに、 AWS IoT ジョブは、ジョブが正常に完了すると予約済みの名前付きシャドウを更新します。API呼び出しは Device Shadow およびレジストリオペレーションにカウントされ、コストが発生する可能性があります。詳細については、「」を参照してくださいAWS IoT Device Management ジョブの制限とクォータ、およびIndexingFilterAPIデータ型。

$package シャドウの構造

予約済みの名前付きシャドウには次のものが含まれます。

{ "state": { "reported": { "<packageName>": { "version": "", "attributes": { } } } }, "version" : 1 "timestamp" : 1672531201 }

シャドウのプロパティは次の情報で更新されます。

  • <packageName>: インストールされているソフトウェアパッケージの名前。 packageNameパラメータで更新されます。

  • version: インストールされているパッケージバージョンの名前。 versionNameパラメータで更新されます。

  • attributes: デバイスに保存され、フリートインデックスによってインデックス化されるオプションのメタデータ。これにより、保存されたデータに基づいてインデックスにクエリを実行できます。

  • version: シャドウのバージョン番号。シャドウが更新されるたびに自動的に増加し、1 から開始します。

  • timestamp: シャドウが最後に更新された日時を示し、Unix 時間で記録されます。

名前付きシャドウの形式と動作の詳細については、「」を参照してください。 AWS IoT Device Shadow サービス メッセージ順序

ソフトウェアパッケージとそのパッケージバージョンの削除

ソフトウェアパッケージを削除する前に、次の操作を行います。

  • パッケージとそのバージョンがアクティブにデプロイされていないことを確認します。

  • 最初に、関連するすべてのバージョンを削除します。いずれかのバージョンがデフォルトバージョンとして指定されている場合は、指定されたデフォルトバージョンをパッケージから削除する必要があります。デフォルトバージョンの指定は任意であり、削除しても競合はありません。ソフトウェアパッケージからデフォルトバージョンを削除するには、コンソールからパッケージを編集するか、 UpdatePackageVersionAPIオペレーションを使用します。

指定されたデフォルトパッケージバージョンがない限り、コンソールを使用してソフトウェアパッケージを削除でき、そのパッケージバージョンもすべて削除されます。API 呼び出しを使用してソフトウェアパッケージを削除する場合は、まずパッケージバージョンを削除してから、ソフトウェアパッケージを削除する必要があります。