準備中 AWS IoT ジョブ - AWS IoT Core

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

準備中 AWS IoT ジョブ

AWS IoT Device Management Software Package Catalog の拡張 AWS IoT 置換パラメータによるジョブ、および との統合 AWS IoT フリートインデックス作成、モノの動的グループ、および AWS IoT モノの予約済みの名前付きシャドウ。

注記

Software Package Catalog が提供するすべての機能を使用するには、これらを作成する必要があります。 AWS Identity and Access Management (IAM) ロールとポリシー: AWS IoT パッケージバージョン および をデプロイするためのジョブ権限 AWS IoT 予約済みの名前付きシャドウ を更新するジョブ権限。詳細については、「セキュリティの準備」を参照してください。

の置換パラメータ AWS IoT jobs

置換パラメータは、 内のプレースホルダーとして使用できます。 AWS IoT ジョブドキュメント。ジョブサービスが代替パラメータを検出すると、そのジョブは、指定されたソフトウェアバージョンのパラメータ値の属性を指します。このプロセスを使用して 1 つのジョブドキュメントを作成し、汎用属性を介してメタデータをジョブに渡すことができます。例えば、Amazon Simple Storage Service (Amazon S3)、ソフトウェアパッケージの Amazon リソースネーム (ARN)URL、または署名をパッケージバージョン属性を介してジョブドキュメントに渡すことができます。

代替パラメータは、ジョブドキュメントで次のようにフォーマットする必要があります。

${aws:iot:package:<packageName>:version:<versionName>:attributes:<anyAttributeName>}

この例では、samplePackage という名前のソフトウェアパッケージがあり、そのパッケージバージョンには以下の属性を持つ 2.1.5 という名前のパッケージバージョンがあります。

  • 名前: s3URL、値: https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile

    • この属性は、Amazon S3 内に保存されているコードファイルの場所を識別します。

  • 名前: signature、値: aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj

    • この属性は、デバイスがセキュリティ対策として必要とするコード署名値を提供します。詳細については、「ジョブのコード署名」を参照してください。注: この属性は一例であり、Software Package Catalog やジョブの一部としては必須ではありません。

downloads の場合、ジョブドキュメントパラメータは次のように記述されます。

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }

signature の場合、ジョブドキュメントパラメータは次のように記述されます。

{ "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" }

ジョブドキュメント全体は次のように記述されます。

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "${aws:iot:package:samplePackage1:version:2.1.5:attributes:s3URL}" }, ], "signature": [ "samplePackage" : "${aws:iot:package:samplePackage1:version:2.1.5:attributes:signature}" ] } }

置換が行われると、次のジョブドキュメントがデバイスにデプロイされます。

{ ... "Steps": { "uninstall": ["samplePackage"], "download": [ { "samplePackage": "https://EXAMPIEBUCKET.s3.us-west-2.amazonaws.com/exampleCodeFile" }, ], "signature": [ "samplePackage" : "aaaaabbbbbcccccdddddeeeeefffffggggghhhhhiiiiijjjj" ] } }

の詳細については、「」を参照してください。 AWS IoT ジョブ、ジョブドキュメントの作成、ジョブのデプロイについては、「ジョブ」を参照してください。

デプロイ用のジョブドキュメントとパッケージバージョンの準備

パッケージバージョンが作成されると、デプロイの準備中であることを示す draft状態になります。デプロイ用のパッケージバージョンを準備するには、ジョブドキュメントを作成し、ジョブがアクセスできる場所 (Amazon S3 など) にドキュメントを保存し、そのパッケージバージョンにジョブドキュメントで使用する属性値があることを確認する必要があります。(注: パッケージバージョンの属性は、 draft状態の場合にのみ更新できます。)

パッケージバージョンに問題がなければ、 のソフトウェアパッケージの詳細ページから公開します。 AWS IoT コンソールまたは UpdatePackageVersionAPIオペレーションを発行します。その後、 を使用してジョブを作成するときにパッケージバージョンを参照できます。 AWS IoT コンソールまたは CreateJobAPIオペレーションを発行します。

デプロイ時のパッケージとバージョンの命名

をデプロイする場合 AWS IoT ジョブでは、ジョブデプロイ () のジョブドキュメントで名前が付けられたのと同じソフトウェアパッケージとパッケージバージョンに名前を付ける必要がありますdestinationPackageVersions。そうしない場合、パッケージバージョンが見つからないことを示すエラーメッセージが表示されます。

ジョブドキュメントに含まれていない追加のソフトウェアパッケージやパッケージバージョンを含めることができます。これを行う場合、ジョブではそれらのファイルの処理方法をデバイスに指示しないため、デバイスには実行内容を認識していることが期待されます。例えば、デバイスが参照する可能性のあるデータが含まれている場合は、追加のファイルをデバイスに送信できます。

によるジョブのターゲット設定 AWS IoT モノの動的グループ

Software Package Catalog は、フリートインデックス作成 AWS IoT ジョブ 、、および AWS IoT フリート内のデバイスをフィルタリングしてターゲットにし、デバイスにデプロイするパッケージバージョンを選択するモノの動的グループ。デバイスの現在のパッケージ情報に基づいてフリートインデックス作成クエリを実行し、それらの項目を のターゲットにすることができます。 AWS IoT ジョブ。ソフトウェアアップデートをリリースすることもできますが、対象となるターゲットデバイスに対してのみです。例えば、現在 iot-device-client 1.5.09 を実行しているデバイスにのみ設定をデプロイするように指定できます。詳細については、「モノの動的グループを作成する」を参照してください。

予約済みの名前付きシャドウとパッケージバージョン

設定されている場合、 AWS IoT ジョブは、ジョブが正常に完了すると、モノの予約済みの名前付きシャドウ ($package) を更新できます。そうすれば、パッケージバージョンをモノの予約済みの名前付きシャドウに手動で関連付ける必要がなくなります。

次のような状況では、パッケージバージョンをモノの予約済みの名前付きシャドウに手動で関連付けるか、更新することを選択できます。

  • モノを に登録する AWS IoT Core インストールされているパッケージバージョンを関連付けない。

  • AWS IoT ジョブは、モノの予約済みの名前付きシャドウを更新するように設定されていません。

  • 社内プロセスを使用してパッケージバージョンをフリートにディスパッチすると、そのプロセスは更新されません。 AWS IoT Core 完了したとき。

注記

を使用することをお勧めします。 AWS IoT 予約済みの名前付きシャドウ ($package) のパッケージバージョンを更新するジョブ。次の場合に、他のプロセス (手動またはプログラムによるAPI呼び出しなど) $package を使用してシャドウのバージョンパラメータを更新する AWS IoT ジョブはシャドウを更新するようにも設定されており、デバイスの実際のバージョンと予約済みの名前付きシャドウに報告されたバージョンの間に不整合が生じる可能性があります。

コンソールまたは UpdateThingShadowAPIオペレーションを使用して、モノの予約済みの名前付きシャドウ ($package) にパッケージバージョンを追加または更新できます。詳細については、「パッケージバージョンの への関連付け」を参照してください。 AWS IoT モノ

注記

パッケージバージョンの への関連付け AWS IoT モノはデバイスソフトウェアを直接更新しません。デバイスソフトウェアを更新するには、パッケージバージョンをデバイスにデプロイする必要があります。

ソフトウェアパッケージとそのパッケージバージョンのアンインストール

$null は、 をプロンプトする予約済みのプレースホルダーです。 AWS IoT デバイスの予約済みの名前付きシャドウ から既存のソフトウェアパッケージとパッケージバージョンを削除するジョブサービス$package。詳細については、「予約済みの名前付きシャドウ」を参照してください。

この機能を使用するには、destinationPackageVersionAmazon リソースネーム (ARN) の末尾にあるバージョン名を に置き換えます$null。その後、デバイスからソフトウェアを削除するようにサービスに指示する必要があります。

認可された は、次の形式ARNを使用します。

arn:aws:iot:<regionCode>:111122223333:package/<packageName>/version/$null

例えば、 などです

$ aws iot create-job \ ... \ --destinationPackageVersions ["arn:aws:iot:us-east-1:111122223333:package/samplePackage/version/$null"]