本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:运行 AWS IoTDevice Client 教程后清理
本教程中的过程将指导您在完成本学习路径中的教程时删除创建的文件和资源。
步骤 1:使用 Device Client AWS IoT构建演示后清理设备
本教程介绍了在此学习路径中构建演示后如何清理 microSD 卡的两个选项。选择提供所需安全级别的选项。
请注意,清理设备的 microSD 卡不会移除任何您创建的 AWS IoT资源。要在清理设备的 microSD 卡后清理 AWS IoT资源,应查看 步骤 2:使用 AWS IoT Device Client 构建演示后清理您的 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 IoTDevice 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资源。
教程 | 事物资源 | 策略资源 |
---|---|---|
DevclitestTthing |
PubSubTestThingPolicy | |
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" } ] }
-
对于附加到该证书的每个策略。
-
将
替换为上一个命令中的policy_name
policyName
值,将
替换为证书的 ARN,然后运行此命令将策略与证书分离。certificate_ARN
aws iot detach-policy --policy-name
policy_name
--targetcertificate_ARN
如果成功,该命令不返回任何内容。
-
将
替换为policy_name
policyName
值,然后运行此命令查看策略是否附加到其他证书。aws iot list-targets-for-policy --policy-name
policy_name
如果该命令返回这样的空列表,该策略不会附加到任何证书,您将继续列出策略版本。如果还有附加到策略的证书,请继续 detach-thing-principal步骤。
{ "targets": [] }
-
将
替换为policy_name
policyName
值,然后运行此命令检查策略版本。要删除策略,它必须只有一个版本。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" } ] }
如果策略有多个版本,如本例所示,则必须先删除
false
值为isDefaultVersion
的策略版本,然后才能删除策略。{ "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_name
policyName
值,将
替换为来自上一个命令的version_ID
versionId
值,然后运行此命令删除策略版本。aws iot delete-policy-version --policy-name
policy_name
--policy-version-idversion_ID
如果成功,该命令不返回任何内容。
删除策略版本后,请重复此步骤,直到该策略只有一个策略版本。
-
将
替换为policy_name
policyName
值,然后运行此命令删除策略。aws iot delete-policy --policy-name
policy_name
-
-
将
替换为事物名称,将thing_name
替换为证书的 ARN,然后运行此命令将证书与事物资源分离。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
jobId
值,然后运行此命令删除 AWS IoT任务。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资源和对象,您可以重新开始并重复教程。