コマンドリソースを非推奨にする - AWS IoT Core

コマンドリソースを非推奨にする

コマンドを非推奨にすることで、コマンドが古く、使用すべきではないことを示すことができます。たとえば、アクティブに管理されなくなったコマンドを非推奨にしたり、同じコマンド ID で異なるペイロード情報を使用して新しいコマンドを作成したりできます。

主な考慮事項

コマンドを非推奨にする際の重要な考慮事項を以下に示しています。

  • コマンドを非推奨にしても、削除はされません。コマンド ID を使用してコマンドを取得することは可能で、コマンドを再利用する場合は復元することもできます。

  • 非推奨になったコマンドのターゲットデバイスで新しいコマンド実行を開始しようとすると、エラーが生成されるため、古くなったコマンドの使用を防ぐことができます。

  • ターゲットデバイスで非推奨のコマンドを実行するには、まずそれを復元する必要があります。復元されると、コマンドは利用可能となるため、通常のコマンドとして使用でき、ターゲットデバイスでコマンド実行を実行することができます。

  • コマンドの実行中にコマンドを非推奨にした場合、実行は完了するまでターゲットデバイスで引き続き実行されます。コマンド実行のステータスを取得することもできます。

コマンドリソースを非推奨にする (コンソール)

コンソールからコマンドを非推奨にするには、AWS IoT コンソールの [コマンドハブ] に移動し、次の手順を実行します。

  1. 非推奨にするコマンドを選択し、[アクション][非推奨] を選択します。

  2. コマンドを非推奨にすることを確認し、[非推奨] を選択します。

コマンドリソースを非推奨にする(CLI)

update-command CLI を使用して、コマンドを非推奨としてマークできます。削除する前に、まずコマンドを非推奨にする必要があります。コマンドが非推奨になった後に、ターゲットデバイスにコマンド実行を送信するなど、使用する必要が生じた場合は、非推奨を解除する必要があります。

aws iot update-command \ --command-id <command-id> \ --deprecated

たとえば、上記の例で更新した ACSwitch コマンドを非推奨にした場合、次のコードはこのコマンドを実行した際のサンプル出力を示しています。

{ "commandId": "turnOffAc", "deprecated": true, "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00" }

非推奨の時間とステータスを確認する

GetCommand API オペレーションを使用して、コマンドが非推奨になったかどうかと、最後に廃止されたタイミングを確認できます。

aws iot get-command --command-id <turnOffAC>

このコマンドを実行すると、コマンドに関する情報を含むレスポンスが生成されます。作成日時と廃止日時に関する情報は、最後に更新された情報を使用して取得できます。この情報は、コマンドの有効期間と、コマンドを削除するか再利用するかを決定するのに役立ちます。たとえば、次のコードは、上記の turnOffAc の例でのレスポンス例を示しています。

{ "commandId": "turnOffAC", "commandArn": "arn:aws:iot:ap-south-1:123456789012:command/turnOffAC", "namespace": "AWS-IoT", "payload": { "content": "testPayload.json", "contentType": "application/json" }, "createdAt": "2024-03-23T00:50:10.095000-07:00", "lastUpdatedAt": "2024-05-09T23:16:51.370000-07:00", "deprecated": false }

コマンドリソースを復元する

ACSwitch コマンドを使用したり、このコマンドをデバイスに送信したりするには、復元する必要があります。

コンソールからコマンドを復元するには、AWS IoT コンソールの [コマンドハブ] に移動し、復元するコマンドを選択して、[アクション][復元] を選択します。

AWS IoT Core API または AWS CLI を使用してコマンドを復元するには、UpdateCommand API オペレーションまたは update-command CLI を使用します。以下の例は、リクエストとレスポンスの例を示しています。

aws iot update-command \ --command-id <command-id> --no-deprecated

次の例は、出力の例を示しています。

{ "commandId": "ACSwitch", "deprecated": false, "lastUpdatedAt": "2024-05-09T23:17:21.954000-07:00" }