チュートリアル: AWS IoT Device Client チュートリアルを実行した後のクリーンアップ - AWS IoT Core

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

チュートリアル: AWS IoT Device Client チュートリアルを実行した後のクリーンアップ

このチュートリアルの手順では、このラーニングパスのチュートリアルを完了するまでに作成したファイルとリソースを削除する手順を説明します。

ステップ 1: AWS IoT Device Client でデモを作成した後にデバイスをクリーンアップする

このチュートリアルでは、このラーニングパスでデモを作成した後に microSD カードをクリーンアップする方法の 2 つのオプションについて説明します。必要なセキュリティレベルを提供するオプションを選択します。

デバイスの microSD カードをクリーニングしても作成した AWS IoT リソースは何も削除されないことに注意してください。デバイスの microSD カードをクリーニングしてから AWS IoT リソースをクリーンアップするには、ステップ 2: AWS IoT Device Client でデモを作成した後に AWS アカウント をクリーンアップする のチュートリアルを確認してください。

オプション 1: microSD カードを書き換えてクリーンアップする

このラーニングパスのチュートリアルを完了した後、microSD カードをクリーニングする最も簡単で徹底的な方法は、デバイスの最初の準備時に作成して保存しておいたイメージファイルで microSD カードを上書きすることです。

この手順では、ローカルホストコンピュータを使用して、保存された microSD カードイメージを microSD カードに書き込みます。

注記

デバイスがオペレーティングシステムにリムーバブルストレージメディアを使用していない場合は、そのデバイスの手順を参照してください。

microSD カードに新しいイメージを書き込むには
  1. ローカルホストコンピュータで、microSD カードに書き込む保存した microSD カードイメージを見つけます。

  2. microSD カードをローカルホストコンピュータに挿入します。

  3. SD カードイメージングツールを使用して、選択したイメージファイルを microSD カードに書き込みます。

  4. Raspberry Pi OS イメージを microSD カードに書き込んだ後、microSD カードを取り出し、ローカルホストコンピュータから安全に取り外します。

microSD カードは使用可能になっています。

オプション 2: ユーザーディレクトリを削除してクリーンアップする

チュートリアルを完了した後、microSD カードのイメージを書き換えずに microSD カードをクリーニングするには、ユーザーディレクトリを個別に削除します。この方法では、システムファイルがインストールされている場合、そのファイルは削除されないため、保存されたイメージで microSD カードを書き換える方法ほど徹底的ではありません。

必要性に対して、ユーザーディレクトリが十分に削除されるならば、この手順に従うことができます。

このラーニングパスのユーザーディレクトリをデバイスから削除するには
  1. 次のコマンドを実行して、デバイスに接続されたターミナルウィンドウで、このラーニングパスで作成されたユーザーディレクトリ、サブディレクトリ、およびそのすべてのファイルを削除します。

    注記

    これらのディレクトリとファイルを削除すると、チュートリアルを再度完了しないとデモを実行できなくなります。

    rm -Rf ~/dc-configs rm -Rf ~/policies rm -Rf ~/messages rm -Rf ~/certs rm -Rf ~/.aws-iot-device-client
  2. 次のコマンドを実行して、デバイスに接続されているターミナルウィンドウで、アプリケーションのソースディレクトリとファイルを削除します。

    注記

    これらのコマンドはプログラムをアンインストールしません。プログラムのビルドとインストールに使用されたソースファイルのみを削除します。これらのファイルを削除すると、AWS CLI と AWS IoT Device Client が動作しない場合があります。

    rm -Rf ~/aws-cli rm -Rf ~/aws rm -Rf ~/aws-iot-device-client

ステップ 2: AWS IoT Device Client でデモを作成した後に AWS アカウント をクリーンアップする

これらの手順は、このラーニングパスのチュートリアルの完了までに作成した AWS リソースを特定して削除するのに役立ちます。

AWS IoT リソースをクリーンアップする

この手順は、このラーニングパスのチュートリアルの完了までに作成した AWS IoT リソースを特定して削除するのに役立ちます。

このラーニングパスで作成された AWS IoT リソース
チュートリアル モノのリソース ポリシーリソース

チュートリアル: AWS IoT Device Client のインストールと設定

DevCliTestThing

DevCliTestThingPolicy

チュートリアル: AWS IoT Device Client とのMQTTメッセージ通信をデモンストレーションする

PubSubTestThing

PubSubTestThingPolicy

チュートリアル: AWS IoT Device Client でのリモートアクション (ジョブ) をデモンストレーションする

ユーザー定義 (複数ある可能性があります)

ユーザー定義 (複数ある可能性があります)

AWS IoT リソースを削除するには、作成したモノのリソースごとに、以下の手順に従います。
  1. thing_name を削除するモノのリソースの名前に置き換えてから、次のコマンドを実行して、ローカルホストコンピュータからモノのリソースにアタッチされた証明書を一覧表示します。

    aws iot list-thing-principals --thing-name thing_name

    このコマンドは、thing_name にアタッチされている証明書を一覧表示するこのようなレスポンスを返します。ほとんどの場合、リストに含まれる証明書は 1 つだけです。

    { "principals": [ "arn:aws:iot:us-west-2:57EXAMPLE833:cert/23853eea3cf0edc7f8a69c74abeafa27b2b52823cab5b3e156295e94b26ae8ac" ] }
  2. 前のコマンドでリストされた各証明書について、次の手順を実行します。

    1. certificate_ID を前のコマンドの証明書 ID に置き換えます。証明書 ID は、前のコマンドで返された ARN で cert/ の後に続く英数字です。次に、次のコマンドを実行して、証明書を無効にします。

      aws iot update-certificate --new-status INACTIVE --certificate-id certificate_ID

      成功すると、このコマンドは何も返しません。

    2. certificate_ARN を以前に返された証明書のリストの証明書 ARN に置き換えてから、次のコマンドを実行して、この証明書にアタッチされたポリシーを一覧表示します。

      aws iot list-attached-policies --target certificate_ARN

      このコマンドは、証明書にアタッチされたポリシーを一覧表示するこのようなレスポンスを返します。ほとんどの場合、リストにはポリシーが 1 つしかありません。

      { "policies": [ { "policyName": "DevCliTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy" } ] }
    3. 証明書にアタッチされた各ポリシーについて、次の手順を実行します。

      1. policy_name を 前のコマンドの policyName の値に置き換え、certificate_ARN を証明書の ARN に置き換えてから、次のコマンドを実行して、証明書からポリシーをデタッチします。

        aws iot detach-policy --policy-name policy_name --target certificate_ARN

        成功すると、このコマンドは何も返しません。

      2. policy_namepolicyName の値に置き換えてから、次のコマンドを実行して、ポリシーがその他の証明書にアタッチされているかどうかを確認します。

        aws iot list-targets-for-policy --policy-name policy_name

        コマンドがこのような空のリストを返す場合、ポリシーはどの証明書にもアタッチされていません。その場合、ポリシーのバージョンを一覧表示します。ポリシーにまだ証明書が添付されている場合は、detach-thing-principal ステップに進みます。

        { "targets": [] }
      3. policy_namepolicyName の値に置き換えてから、次のコマンドを実行してポリシーのバージョンを確認します。ポリシーを削除するには、ポリシーのバージョンが 1 つだけであることが必要です。

        aws iot list-policy-versions --policy-name policy_name

        次の例のように、ポリシーにバージョンが 1 つしかない場合は、スキップして delete-policy ステップに進み、直ちにポリシーを削除できます。

        { "policyVersions": [ { "versionId": "1", "isDefaultVersion": true, "createDate": "2021-11-18T01:02:46.778000+00:00" } ] }

        次の例のように、ポリシーに複数のバージョンがある場合、ポリシーを削除する前に、isDefaultVersion の値が false であるポリシーバージョンを削除する必要があります。

        { "policyVersions": [ { "versionId": "2", "isDefaultVersion": true, "createDate": "2021-11-18T01:52:04.423000+00:00" }, { "versionId": "1", "isDefaultVersion": false, "createDate": "2021-11-18T01:30:18.083000+00:00" } ] }

        ポリシーバージョンを削除する必要がある場合は、policy_namepolicyName の値に置き換え、version_ID を前のコマンドの versionId の値に置き換えてから、次のコマンドを実行してポリシーバージョンを削除します。

        aws iot delete-policy-version --policy-name policy_name --policy-version-id version_ID

        成功すると、このコマンドは何も返しません。

        ポリシーバージョンを 1 つ削除した後、ポリシーのポリシーバージョンが 1 つになるまで、このステップを繰り返します。

      4. policy_namepolicyName の値に置き換えてから、次のコマンドを実行してポリシーを削除します。

        aws iot delete-policy --policy-name policy_name
    4. thing_name をモノの名前に置き換え、certificate_ARN を証明書の ARN に置き換えてから、次のコマンドを実行してモノのリソースから証明書をデタッチします。

      aws iot detach-thing-principal --thing-name thing_name --principal certificate_ARN

      成功すると、このコマンドは何も返しません。

    5. certificate_ID を前のコマンドの証明書 ID に置き換えます。証明書 ID は、前のコマンドで返された ARN で cert/ の後に続く英数字です。次に、次のコマンドを実行して、証明書リソースを削除します。

      aws iot delete-certificate --certificate-id certificate_ID

      成功すると、このコマンドは何も返しません。

  3. thing_name をモノの名前に置き換えて、次のコマンドを実行してモノを削除します。

    aws iot delete-thing --thing-name thing_name

    成功すると、このコマンドは何も返しません。

AWS リソースをクリーンアップする

この手順は、このラーニングパスのチュートリアルの完了までに作成した他の AWS リソースを特定して削除するのに役立ちます。

このラーニングパスで作成された他の AWS リソース
チュートリアル リソースタイプ リソース名または ID

チュートリアル: AWS IoT Device Client でのリモートアクション (ジョブ) をデモンストレーションする

Amazon S3 オブジェクト hello-world-job.json

チュートリアル: AWS IoT Device Client でのリモートアクション (ジョブ) をデモンストレーションする

AWS IoT ジョブリソース

ユーザー定義
このラーニングパスで作成された AWS リソースを削除するには
  1. このラーニングパスで作成されたジョブを削除するには

    1. 次のコマンドを実行して、AWS アカウント のジョブを一覧表示します。

      aws iot list-jobs

      このコマンドは、自身の AWS アカウント と AWS リージョン の AWS IoT ジョブの次のようなリストを返します。

      { "jobs": [ { "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-2", "jobId": "hello-world-job-2", "targetSelection": "SNAPSHOT", "status": "COMPLETED", "createdAt": "2021-11-16T23:40:36.825000+00:00", "lastUpdatedAt": "2021-11-16T23:40:41.375000+00:00", "completedAt": "2021-11-16T23:40:41.375000+00:00" }, { "jobArn": "arn:aws:iot:us-west-2:57EXAMPLE833:job/hello-world-job-1", "jobId": "hello-world-job-1", "targetSelection": "SNAPSHOT", "status": "COMPLETED", "createdAt": "2021-11-16T23:35:26.381000+00:00", "lastUpdatedAt": "2021-11-16T23:35:29.239000+00:00", "completedAt": "2021-11-16T23:35:29.239000+00:00" } ] }
    2. このラーニングパスで作成したジョブとしてリストから認識したジョブごとに、jobId を削除するジョブの jobId の値に置き換えてから、次のコマンドを実行して AWS IoT ジョブを削除します。

      aws iot delete-job --job-id jobId

      コマンドが正常に終了すると、何も返しません。

  2. このラーニングパスの Amazon S3 バケットに保存したジョブドキュメントを削除するには

    1. bucket を使用したバケットの名前に置き換えてから、次のコマンドを実行して、使用した Amazon S3 バケット内のオブジェクトを一覧表示します。

      aws s3api list-objects --bucket bucket

      このコマンドは、次のようにバケット内の Amazon S3 オブジェクトのリストを返します。

      { "Contents": [ { "Key": "hello-world-job.json", "LastModified": "2021-11-18T03:02:12+00:00", "ETag": "\"868c8bc3f56b5787964764d4b18ed5ef\"", "Size": 54, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } }, { "Key": "iot_job_firmware_update.json", "LastModified": "2021-04-13T21:57:07+00:00", "ETag": "\"7c68c591949391791ecf625253658c61\"", "Size": 66, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } }, { "Key": "order66.json", "LastModified": "2021-04-13T21:57:07+00:00", "ETag": "\"bca60d5380b88e1a70cc27d321caba72\"", "Size": 29, "StorageClass": "STANDARD", "Owner": { "DisplayName": "EXAMPLE", "ID": "e9e3d6ec1EXAMPLEf5bfb5e6bd0a2b6ed03884d1ed392a82ad011c144736a4ee" } } ] }
    2. このラーニングパスで作成したオブジェクトとしてリストから認識したオブジェクトごとに、bucket をバケット名に置き換え、key を削除するオブジェクトのキー値に置き換えてから、次のコマンドを実行して Amazon S3 オブジェクトを削除します。

      aws s3api delete-object --bucket bucket --key key

      コマンドが正常に終了すると、何も返しません。

このラーニングパスの完了までに作成した AWS リソースとオブジェクトをすべて削除したら、チュートリアルを最初からやり直すことができます。