AWS 管理テンプレートを使用して、共通のリモートオペレーションをデプロイする - AWS IoT Core

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

AWS 管理テンプレートを使用して、共通のリモートオペレーションをデプロイする

AWS 管理テンプレートは AWS が提供するジョブテンプレートです。これは、再起動、ファイルのダウンロード、デバイスへのアプリケーションのインストールなど、頻繁に実行されるリモートオペレーションのために使用されます。これらのテンプレートには、リモートアクションごとに事前定義されたジョブドキュメントがあるため、独自のジョブドキュメントを作成する必要はありません。

事前定義された設定のセットから選択し、追加のコードを記述しなくても、これらのテンプレートを使用してジョブを作成できます。管理テンプレートを使用すると、フリートにデプロイされたジョブドキュメントを表示できます。これらのテンプレートを使用してジョブを作成し、リモートオペレーションで再利用できるカスタムジョブテンプレートを作成できます。

管理テンプレートには何が含まれていますか。

各 AWS 管理テンプレートには次のものが含まれます。

  • ジョブドキュメントでコマンドを実行するための環境。

  • オペレーションの名前とそのパラメータを指定するジョブドキュメント。例えば、Download file テンプレートの場合、オペレーション名は Download file で、パラメータは次のとおりです。

    • デバイスにダウンロードするファイルの URL。インターネットリソースか、パブリックまたは署名付き Simple Storage Service (Amazon S3) の URL です。

    • ダウンロードしたファイルを保存するデバイス上のローカルファイルパス。

    ジョブドキュメントとそのパラメータの詳細については、「管理テンプレートのリモートアクションとジョブドキュメント」を参照してください。

前提条件

管理テンプレートジョブドキュメントで指定されたリモートアクションをデバイスで実行するには、次の操作を行う必要があります。

  • デバイスに特定のソフトウェアをインストールする

    独自のデバイスソフトウェアとジョブハンドラー、または AWS IoT Device Client を使用します。ビジネスケースによっては、両方を実行して異なる機能を実行することもできます。

    • 独自のデバイスソフトウェアとジョブハンドラーを使用する

      リモートオペレーションをサポートする AWS IoT Device SDK とそのハンドラーのライブラリを使用して、デバイス用の独自のコードを書き込むことができます。ジョブをデプロイして実行するには、デバイスエージェントライブラリが正しくインストールされ、デバイスで実行されていることを検証します。

      リモートオペレーションをサポートする独自のハンドラーを使用することもできます。詳細については、AWS IoT Device Client GitHub レポジトリの「ジョブハンドラーのサンプル」を参照してください。

    • AWS IoT Device Client を使用する

      または、デバイスに AWS IoT Device Client をインストールして実行することができます。デフォルトでコンソールから直接すべての管理テンプレートの使用をサポートしているためです。

      Device Client は C++ で書かれたオープンソースソフトウェアで、組み込み Linux ベースの IoT デバイスにコンパイルしてインストールできます。Device Client には、ベースクライアントと個別のクライアント側の機能があります。ベースクライアントは MQTT プロトコル経由で AWS IoT との接続を確立し、さまざまなクライアント側の機能に接続できます。

      デバイスでリモートオペレーションを行うには、Device Client の クライアント側の Jobs 機能を使用します。この機能には、ジョブドキュメントを受信するためのパーサーと、ジョブドキュメントで指定されたリモートアクションを実装するジョブハンドラーが含まれます。Device Client とその機能の詳細については、「AWS IoT Device Client」を参照してください。

      デバイス上で実行すると、Device Client はジョブドキュメントを受信し、ドキュメント内のコマンドを実行するために使用するプラットフォーム固有の実装ができるようになります。Device Client のセットアップおよび Jobs 機能の使用の詳細については、「AWS IoT のチュートリアル」を参照してください。

  • サポートされている環境を使用する

    管理テンプレートごとに、リモートアクションの実行に使用できる環境に関する情報が表示されます。テンプレートで指定されているように、サポートされている Linux 環境でテンプレートを使用することをお勧めします。AWS IoT Device Client は Debian や Ubuntu などの一般的なマイクロプロセッサおよび Linux 環境をサポートしているため、これを使用して管理テンプレートのリモートアクションを実行します。

管理テンプレートのリモートアクションとジョブドキュメント

次のセクションでは、AWS IoT ジョブのさまざまな AWS 管理テンプレートをリストし、デバイスで実行できるリモートアクションについて説明します。次のセクションでは、ジョブドキュメントに関する情報と、各リモートアクションのジョブドキュメントパラメータの説明が記載されています。デバイス側のソフトウェアは、テンプレート名とパラメータを使用してリモートアクションを実行します。

AWS 管理テンプレートでは、テンプレートを使用してジョブを作成するときに、値を指定する入力パラメータを使用できます。すべての管理テンプレートには、共通して次の 2 つのオプションの入力パラメータ (runAsUser および pathToHandler) があります。AWS-Reboot 以外のテンプレートには、追加の入力パラメータが必要です。このパラメータには、テンプレートを使用してジョブを作成するときに値を指定する必要があります。これらの必須入力パラメータは、選択したテンプレートによって異なります。たとえば、AWS-Download-File テンプレートを選択する場合、インストールするパッケージのリストと、ファイルのダウンロード元の URL を指定する必要があります。

AWS IoT コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、管理テンプレートを使用するジョブを作成するときに、入力パラメータの値を指定します。CLI を使用する場合は、document-parameters オブジェクトを使用してこれらの値を指定します。詳細については、「documentParameters」を参照してください。

注記

document-parameters は、AWS 管理テンプレートからジョブを作成する場合にのみ使用します。このパラメータは、カスタムジョブテンプレートで使用したり、カスタムジョブテンプレートからジョブを作成したりすることはできません。

次に、一般的なオプションの入力パラメータについて説明します。各管理テンプレートが必要とするその他の入力パラメータについては、次のセクションを参照してください。

runAsUser

このパラメータは、ジョブハンドラーを別のユーザーとして実行するかどうかを指定します。ジョブ作成時に指定されていない場合、ジョブハンドラーは Device Client と同じユーザーとして実行されます。ジョブハンドラーを別のユーザーとして実行する場合は、256 文字以下の文字列で値を指定します。

pathToHandler

デバイスで実行されているジョブハンドラーへのパス。ジョブの作成時に指定されなかった場合、Device Client は現在の作業ディレクトリを使用します。

以下に、さまざまなリモートアクション、それらのジョブドキュメント、およびそれらが受け入れるパラメータを示します。これらのテンプレートはすべて、デバイス上でリモートオペレーションを実行するための Linux 環境をサポートしています。

テンプレート名

AWS–Download–File

テンプレートの説明

AWS が提供する管理テンプレート。ファイルのダウンロードに使用します。

入力パラメータ

このテンプレートには以下の必須パラメータがあります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

downloadUrl

ファイルのダウンロード元の URL。これは、インターネットリソース、パブリックにアクセスできる Amazon S3 内のオブジェクト、またはお客様のデバイスだけが署名付き URL を使用してアクセスできる Amazon S3 内のオブジェクトです。署名付き URL の使用およびアクセス許可の付与の詳細については、署名付き URL を参照してください。

filePath

ダウンロードしたファイルを保存するデバイス内の場所を示すローカルファイルパス。

デバイスの動作

デバイスは、指定された場所からファイルをダウンロードし、ダウンロードが完了したことを確認し、ローカルに保存します。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラへのパスとシェルスクリプト download-file.sh が表示されます。ファイルをダウンロードするには、ジョブハンドラでこのシェルスクリプトを実行する必要があります。また、必須パラメータ downloadUrl および filePath も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Download-File", "type": "runHandler", "input": { "handler": "download-file.sh", "args": [ "${aws:iot:parameter:downloadUrl}", "${aws:iot:parameter:filePath}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Install–Application

テンプレートの説明

AWS が提供する管理テンプレート。1 つ以上のアプリケーションのインストールに使用します。

入力パラメータ

このテンプレートには以下の必須パラメータ packages があります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

packages

インストールされる 1 つ以上のアプリケーションのスペース区切りのリスト。

デバイスの動作

デバイスは、ジョブドキュメントで指定されたとおりにアプリケーションをインストールします。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト install-packages.sh が表示されます。ファイルをダウンロードするには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。また、必須パラメータ packages も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Install-Application", "type": "runHandler", "input": { "handler": "install-packages.sh", "args": [ "${aws:iot:parameter:packages}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Reboot

テンプレートの説明

デバイスを再起動するための AWS が提供する管理テンプレート。

入力パラメータ

このテンプレートには必須パラメータはありません。runAsUser および pathToHandler のオプションパラメータを指定できます。

デバイスの動作

デバイスは正常に再起動します。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト reboot.sh が表示されます。デバイスを再起動するには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。

{ "version": "1.0", "steps": [ { "action": { "name": "Reboot", "type": "runHandler", "input": { "handler": "reboot.sh", "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Remove–Application

テンプレートの説明

AWS が提供する管理テンプレート。1 つ以上のアプリケーションのアンインストールに使用します。

入力パラメータ

このテンプレートには以下の必須パラメータ packages があります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

packages

アンインストールされる 1 つ以上のアプリケーションのスペース区切りのリスト。

デバイスの動作

デバイスは、ジョブドキュメントで指定されたとおりにアプリケーションをアンインストールします。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト remove-packages.sh が表示されます。ファイルをダウンロードするには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。また、必須パラメータ packages も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Remove-Application", "type": "runHandler", "input": { "handler": "remove-packages.sh", "args": [ "${aws:iot:parameter:packages}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Restart–Application

テンプレートの説明

AWS が提供する管理テンプレート。1 つ以上のサービスの停止および再起動に使用します。

入力パラメータ

このテンプレートには以下の必須パラメータ services があります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

サービス

再起動される 1 つ以上のアプリケーションのスペース区切りのリスト。

デバイスの動作

指定されたアプリケーションが停止し、その後デバイスで再起動されます。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト restart-services.sh が表示されます。システムサービスを再起動するには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。また、必須パラメータ services も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Restart-Application", "type": "runHandler", "input": { "handler": "restart-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS-Start-Application

テンプレートの説明

AWS が提供する管理テンプレート。1 つ以上のサービスの起動に使用します。

入力パラメータ

このテンプレートには以下の必須パラメータ services があります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

services

起動される 1 つ以上のアプリケーションのスペース区切りのリスト。

デバイスの動作

指定されたアプリケーションがデバイス上で実行を開始します。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト start-services.sh が表示されます。システムサービスを起動するには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。また、必須パラメータ services も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Start-Application", "type": "runHandler", "input": { "handler": "start-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Stop–Application

テンプレートの説明

AWS が提供する管理テンプレート。1 つ以上のサービスの停止に使用します。

入力パラメータ

このテンプレートには以下の必須パラメータ services があります。runAsUser および pathToHandler のオプションパラメータを指定することもできます。

services

停止される 1 つ以上のアプリケーションのスペース区切りのリスト。

デバイスの動作

指定されたアプリケーションは、デバイスでの実行を停止します。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、ジョブハンドラーへのパスとシェルスクリプト stop-services.sh が表示されます。システムサービスを停止するには、ジョブハンドラーでこのシェルスクリプトを実行する必要があります。また、必須パラメータ services も表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Stop-Application", "type": "runHandler", "input": { "handler": "stop-services.sh", "args": [ "${aws:iot:parameter:services}" ], "path": "${aws:iot:parameter:pathToHandler}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }
テンプレート名

AWS–Run–Command

テンプレートの説明

AWS が提供する、シェルコマンドを実行するための管理テンプレートです。

入力パラメータ

このテンプレートには以下の必須パラメータ command があります。runAsUser のオプションパラメータを指定することもできます。

command

コンマで区切られたコマンドの文字列。コマンド自体に含まれるカンマはすべてエスケープする必要があります。

デバイスの動作

デバイスでは、ジョブドキュメントで指定されたとおりにシェルコマンドを実行します。

ジョブドキュメント

以下は、ジョブドキュメントとその最新バージョンを示しています。テンプレートには、デバイスで実行されるジョブコマンドと、提供されたコマンドへのパスが表示されます。

{ "version": "1.0", "steps": [ { "action": { "name": "Run-Command", "type": "runCommand", "input": { "command": "${aws:iot:parameter:command}" }, "runAsUser": "${aws:iot:parameter:runAsUser}" } } ] }