本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:在執行 AWS IoT 裝置用戶端教學課程後清除
本教學課程中的程序會在完成此學習路徑中的教學課程時,逐步引導您移除所建立的檔案和資源。
步驟 1:在使用 AWS IoT 裝置用戶端建置示範後清除裝置
本教學課程說明在此學習路徑中建置示範後,如何清除 microSD 卡的兩個選項。選擇提供所需安全等級的選項。
請注意,清理裝置的 microSD 卡並不會移除任何 AWS IoT 資源。若要在清理裝置的 microSD 卡後清除 AWS IoT 資源,請參閱 步驟 2:在使用 AWS IoT 裝置用戶端建置示範後清除 AWS 帳戶 上的教學課程。
選項 1:透過重新寫入 microSD 記憶卡進行清除
在完成此學習路徑中的教學課程後,清除 microSD 卡最簡單且最徹底的方法是,使用您在第一次準備裝置時所建立的儲存映像檔案覆寫 microSD 卡。
此程序會使用本機主機電腦,將儲存的 microSD 卡映像寫入 microSD 卡。
注意
如果裝置未針對其作業系統使用卸除式儲存媒體,請參閱該裝置的程序。
若要將新映像寫入 microSD 卡
-
在本機主機電腦上,找出要寫入至 microSD 卡的儲存 microSD 卡映像。
-
請將 microSD 卡插入主機電腦。
-
使用 SD 卡映像工具,將選取的影像檔案寫入至 microSD 卡。
-
寫入 Raspberry Pi 作業系統映像至 microSD 卡後,請退出 microSD 卡並安全地將其從本機主機電腦中移除。
您的 microSD 卡已可供使用。
選項 2:透過刪除使用者目錄進行清除
若要在完成教學課程後清理 microSD 卡而不重寫 microSD 卡映像,您可以個別刪除使用者目錄。這並不像從儲存映像重寫 microSD 卡那麼徹底,因為此操作不會移除任何可能已安裝的系統檔案。
如果移除使用者目錄足以滿足需求,您可以遵循此程序。
從裝置刪除此學習路徑的使用者目錄
-
在連接至裝置的終端機視窗中,執行這些命令來刪除在此學習路徑中建立的使用者目錄、子目錄及其所有檔案。
注意
在刪除這些目錄和檔案之後,您必須再次完成教學課程,才能執行示範。
rm -Rf ~/dc-configs rm -Rf ~/policies rm -Rf ~/messages rm -Rf ~/certs rm -Rf ~/.aws-iot-device-client
-
在連接至裝置的終端機視窗中,執行這些命令來刪除應用程式來源目錄和檔案。
注意
這些命令不會解除安裝任何程式。它們只會刪除用於建置和安裝它們的來源檔案。刪除這些檔案之後,AWS CLI 與 AWS IoT 裝置用戶端可能無法運作。
rm -Rf ~/aws-cli rm -Rf ~/aws rm -Rf ~/aws-iot-device-client
步驟 2:在使用 AWS IoT 裝置用戶端建置示範後清除 AWS 帳戶
在完成此學習路徑中的教學課程後,這些程序可協助您識別並移除所建立的 AWS 資源。
清除 AWS IoT 資源
在完成此學習路徑中的教學課程後,此程序可協助您識別並移除您建立的 AWS IoT 資源。
教學課程 | 物件資源 | 政策資源 |
---|---|---|
DevCliTestThing |
DevCliTestThingPolicy | |
PubSubTestThing |
PubSubTestThingPolicy | |
使用者定義 (可能不止一個) |
使用者定義 (可能不止一個) |
若要刪除 AWS IoT 資源,請為建立的每個物件資源執行此程序
-
使用要刪除的物件資源名稱來取代
,然後執行此命令從本機主機電腦列出連接至物件資源的憑證。thing_name
aws iot list-thing-principals --thing-name
thing_name
此命令會傳回像這樣的回應,其中會列出連接至
的憑證。在大多數情況下,清單中只會有一個憑證。thing_name
{ "principals": [ "arn:aws:iot:us-west-2:57EXAMPLE833:cert/23853eea3cf0edc7f8a69c74abeafa27b2b52823cab5b3e156295e94b26ae8ac" ] }
-
針對上一個命令列出的每個憑證:
-
使用上一個命令的憑證 ID 來取代
。憑證 ID 是上一個命令傳回的 ARN 中certificate_ID
cert/
後面的英數字元。然後執行此命令來停用憑證。aws iot update-certificate --new-status INACTIVE --certificate-id
certificate_ID
如果成功,此命令不會傳回任何內容。
-
使用之前傳回的憑證清單中的憑證 ARN 來取代
,然後執行此命令來列出連接至此憑證的政策。certificate_ARN
aws iot list-attached-policies --target
certificate_ARN
此命令會傳回像這樣的回應,其中會列出連接至憑證的政策。在大多數情況下,清單中只會有一個政策。
{ "policies": [ { "policyName": "DevCliTestThingPolicy", "policyArn": "arn:aws:iot:us-west-2:57EXAMPLE833:policy/DevCliTestThingPolicy" } ] }
-
每個連接至憑證的政策:
-
使用上一個命令的
policyName
值來取代
,使用憑證的 ARN 來取代policy_name
,然後執行此命令從憑證分離政策。certificate_ARN
aws iot detach-policy --policy-name
policy_name
--targetcertificate_ARN
如果成功,此命令不會傳回任何內容。
-
使用
policyName
值來取代
,然後執行此命令,查看政策是否已連接至任何憑證。policy_name
aws iot list-targets-for-policy --policy-name
policy_name
如果命令傳回類似這樣的空白清單,代表政策未連接至任何憑證,您可以繼續列出政策版本。如果仍有連接至政策的憑證,請繼續進行 detach-thing-principal 步驟。
{ "targets": [] }
-
使用
policyName
值來取代
,然後執行此命令來檢查政策版本。若要刪除政策,該政策必須只有一個版本。policy_name
aws iot list-policy-versions --policy-name
policy_name
如果政策只有一個版本 (例如此範例),您可以跳至 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" } ] }
如果需要刪除政策版本,請使用
policyName
值來取代
,使用上一個命令的policy_name
versionId
值取代
,然後執行此命令來刪除政策版本。version_ID
aws iot delete-policy-version --policy-name
policy_name
--policy-version-idversion_ID
如果成功,此命令不會傳回任何內容。
刪除政策版本後,請重複此步驟,直到政策只有一個政策版本為止。
-
使用
policyName
值來取代
,然後執行此命令來刪除政策。policy_name
aws iot delete-policy --policy-name
policy_name
-
-
使用物件的名稱來取代
,再使用憑證的 ARN 來取代thing_name
,然後執行此命令來從物件資源分離憑證。certificate_ARN
aws iot detach-thing-principal --thing-name
thing_name
--principalcertificate_ARN
如果成功,此命令不會傳回任何內容。
-
使用上一個命令的憑證 ID 來取代
。憑證 ID 是上一個命令傳回的 ARN 中certificate_ID
cert/
後面的英數字元。然後執行此命令來刪除憑證資源。aws iot delete-certificate --certificate-id
certificate_ID
如果成功,此命令不會傳回任何內容。
-
-
使用物件的名稱來取代
,然後執行此命令來刪除該物件。thing_name
aws iot delete-thing --thing-name
thing_name
如果成功,此命令不會傳回任何內容。
清除 AWS 資源
在完成此學習路徑中的教學課程後,此程序可協助您識別並移除所建立的其他 AWS 資源。
教學課程 | 資源類型 | 資源名稱或 ID |
---|---|---|
Amazon S3 物件 | hello-world-job.json | |
AWS IoT 任務資源 |
使用者定義 |
刪除在此學習路徑中建立的 AWS 資源
-
刪除在此學習路徑中建立的任務
-
執行此命令來列出 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" } ] }
-
針對您從清單中辨識出在此學習路徑中建立的任務的每個任務,請使用要刪除任務的
jobId
值來取代
,然後執行此命令來刪除 AWS IoT 任務。jobId
aws iot delete-job --job-id
jobId
如果成功,此命令不會傳回任何內容。
-
-
刪除儲存在此學習路徑 Amazon S3 儲存貯體中的任務文件
-
使用您採用的儲存貯體名稱來取代
,然後執行此命令來列出您使用的 Amazon S3 儲存貯體中的物件。bucket
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" } } ] }
-
對於您從清單中辨識為在此學習路徑中建立的物件的每個物件,請使用儲存貯體名稱來取代
,使用要刪除物件的鍵值來取代bucket
,然後執行此命令來刪除 Amazon S3 物件。key
aws s3api delete-object --bucket
bucket
--keykey
如果成功,此命令不會傳回任何內容。
-
在完成此學習路徑時刪除建立的所有 AWS 資源和物件之後,您可以重新開始並重複教學課程。