使用 AWS CLI 的 Device Advisor 示例 - AWS Command Line Interface

本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 AWS CLI 的 Device Advisor 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 Device Advisor 结合使用,执行操作和实现常见场景。

操作 是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 create-suite-definition

AWS CLI

示例 1:创建 IoT Device Advisor 测试套件

以下 create-suite-definition 示例使用指定套件定义配置在 AWS IoT 中创建 Device Advisor 测试套件。

aws iotdeviceadvisor create-suite-definition \ --suite-definition-configuration '{ \ "suiteDefinitionName": "TestSuiteName", \ "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ "intendedForQualification": false, \ "rootGroup": "{\"configuration\":{},\"tests\":[{\"name\":\"MQTT Connect\",\"configuration\":{\"EXECUTION_TIMEOUT\":120},\"tests\":[{\"name\":\"MQTT_Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", \ "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}'

输出:

{ "suiteDefinitionId": "0jtsgio7yenu", "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/0jtsgio7yenu", "suiteDefinitionName": "TestSuiteName", "createdAt": "2022-12-02T11:38:13.263000-05:00" }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的创建测试套件定义

示例 2:创建 IoT Device Advisor 最新合格测试套件

以下 create-suite-definition 示例使用指定套件定义配置在 AWS IoT 中创建包含最新版本的 Device Advisor 合格测试套件。

aws iotdeviceadvisor create-suite-definition \ --suite-definition-configuration '{ \ "suiteDefinitionName": "TestSuiteName", \ "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ "intendedForQualification": true, \ "rootGroup": "", \ "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}'

输出:

{ "suiteDefinitionId": "txgsuolk2myj", "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/txgsuolk2myj", "suiteDefinitionName": "TestSuiteName", "createdAt": "2022-12-02T11:38:13.263000-05:00" }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的创建测试套件定义

以下代码示例演示了如何使用 delete-suite-definition

AWS CLI

删除 IoT Device Advisor 测试套件

以下 delete-suite-definition 示例删除具有指定套件定义 ID 的 Device Advisor 测试套件。

aws iotdeviceadvisor delete-suite-definition \ --suite-definition-id 0jtsgio7yenu

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT API 参考》中的 DeleteSuiteDefinition

以下代码示例演示了如何使用 get-endpoint

AWS CLI

示例 1:获取有关 IoT Device Advisor 账户级端点的信息

以下 get-endpoint 示例获取有关 Device Advisor 账户级测试端点的信息。

aws iotdeviceadvisor get-endpoint

输出:

{ "endpoint": "t6y4c143x9sfo.deviceadvisor.iot.us-east-1.amazonaws.com" }

示例 2:获取有关 IoT Device Advisor 设备级端点的信息

以下 get-endpoint 示例获取有关具有指定 thing-arn 或 certificate-arn 的 Device Advisor 设备级测试端点的信息。

aws iotdeviceadvisor get-endpoint \ --thing-arn arn:aws:iot:us-east-1:123456789012:thing/MyIotThing

输出:

{ "endpoint": "tdb7719be5t6y4c143x9sfo.deviceadvisor.iot.us-east-1.amazonaws.com" }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的获取测试端点

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetEndpoint

以下代码示例演示了如何使用 get-suite-definition

AWS CLI

获取有关 IoT Device Advisor 测试套件的信息

以下 get-suite-definition 示例获取有关具有指定套件定义 ID 的 Device Advisor 测试套件的信息。

aws iotdeviceadvisor get-suite-definition \ --suite-definition-id qqcsmtyyjabl

输出:

{ "suiteDefinitionId": "qqcsmtyyjabl", "suiteDefinitionArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/qqcsmtyyjabl", "suiteDefinitionVersion": "v1", "latestVersion": "v1", "suiteDefinitionConfiguration": { "suiteDefinitionName": "MQTT connection", "devices": [], "intendedForQualification": false, "isLongDurationTest": false, "rootGroup": "{\"configuration\":{},\"tests\":[{\"id\":\"uta5d9j1kvwc\",\"name\":\"Test group 1\",\"configuration\":{},\"tests\":[{\"id\":\"awr8pq5vc9yp\",\"name\":\"MQTT Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole", "protocol": "MqttV3_1_1" }, "createdAt": "2022-11-11T22:28:52.389000-05:00", "lastModifiedAt": "2022-11-11T22:28:52.389000-05:00", "tags": {} }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的获取测试套件定义

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetSuiteDefinition

以下代码示例演示了如何使用 get-suite-run-report

AWS CLI

获取有关 IoT Device Advisor 合格测试套件运行报告的信息

以下 get-suite-run-report 示例获取具有指定套件定义 ID 和套件运行 ID 的成功 Device Advisor 合格测试套件运行的报告下载链接。

aws iotdeviceadvisor get-suite-run-report \ --suite-definition-id ztvb5aek4w4x \ --suite-run-id p6awv83nre6v

输出:

{ "qualificationReportDownloadUrl": "https://senate-apn-reports-us-east-1-prod.s3.amazonaws.com/report.downloadlink" }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的获取成功合格测试套件运行的合格报告

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetSuiteRunReport

以下代码示例演示了如何使用 get-suite-run

AWS CLI

获取有关 IoT Device Advisor 测试套件运行状态的信息

以下 get-suite-run 示例获取具有指定套件定义 ID 和套件运行 ID 的 Device Advisor 测试套件运行状态的信息。

aws iotdeviceadvisor get-suite-run \ --suite-definition-id qqcsmtyyjabl \ --suite-run-id nzlfyhaa18oa

输出:

{ "suiteDefinitionId": "qqcsmtyyjabl", "suiteDefinitionVersion": "v1", "suiteRunId": "nzlfyhaa18oa", "suiteRunArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suiterun/qqcsmtyyjabl/nzlfyhaa18oa", "suiteRunConfiguration": { "primaryDevice": { "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing", "certificateArn": "arn:aws:iot:us-east-1:123456789012:cert/certFile" }, "parallelRun": false }, "testResult": { "groups": [ { "groupId": "uta5d9j1kvwc", "groupName": "Test group 1", "tests": [ { "testCaseRunId": "2ve2twrqyr0s", "testCaseDefinitionId": "awr8pq5vc9yp", "testCaseDefinitionName": "MQTT Connect", "status": "PASS", "startTime": "2022-11-12T00:01:53.693000-05:00", "endTime": "2022-11-12T00:02:15.443000-05:00", "logUrl": "https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logEventViewer:group=/aws/iot/deviceadvisor/qqcsmtyyjabl;stream=nzlfyhaa18oa_2ve2twrqyr0s", "warnings": "null", "failure": "null" } ] } ] }, "startTime": "2022-11-12T00:01:52.673000-05:00", "endTime": "2022-11-12T00:02:16.496000-05:00", "status": "PASS", "tags": {} }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的获取测试套件运行

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetSuiteRun

以下代码示例演示了如何使用 list-suite-definitions

AWS CLI

示例 1:列出您创建的 IoT Device Advisor 测试套件

以下 list-suite-definitions 示例列出您在 AWS IoT 中创建的最多 25 个 Device Advisor 测试套件。如果您有超过 25 个测试套件,则输出中将显示“nextToken”。您可以使用这个“nextToken”来显示创建的其余测试套件。

aws iotdeviceadvisor list-suite-definitions

输出:

{ "suiteDefinitionInformationList": [ { "suiteDefinitionId": "3hsn88h4p2g5", "suiteDefinitionName": "TestSuite1", "defaultDevices": [ { "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing" } ], "intendedForQualification": false, "isLongDurationTest": false, "protocol": "MqttV3_1_1", "createdAt": "2022-11-17T14:15:56.830000-05:00" }, { ...... } ], "nextToken": "nextTokenValue" }

示例 2:列出您使用指定设置创建的 IoT Device Advisor 测试套件

以下 list-suite-definitions 示例列出您在 AWS IoT 中创建的具有指定 max-result 数值的 Device Advisor 测试套件。如果您有超过此最大数值的测试套件,则输出中将显示“nextToken”。如果您有“nextToken”,则可以使用“nextToken”来显示您创建的在前面未显示的测试套件。

aws iotdeviceadvisor list-suite-definitions \ --max-result 1 \ --next-token "nextTokenValue"

输出:

{ "suiteDefinitionInformationList": [ { "suiteDefinitionId": "ztvb5aew4w4x", "suiteDefinitionName": "TestSuite2", "defaultDevices": [], "intendedForQualification": true, "isLongDurationTest": false, "protocol": "MqttV3_1_1", "createdAt": "2022-11-17T14:15:56.830000-05:00" } ], "nextToken": "nextTokenValue" }

有关更多信息,请参阅《AWS IoT API 参考》中的 ListSuiteDefinitions

以下代码示例演示了如何使用 list-suite-runs

AWS CLI

示例 1:列出有关指定 IoT Device Advisor 测试套件运行状态的所有信息

以下 list-suite-runs 示例列出有关具有指定套件定义 ID 的 Device Advisor 测试套件运行状态的所有信息。如果您有超过 25 个测试套件运行,则输出中将显示“nextToken”。您可以使用这个“nextToken”来显示其余测试套件运行。

aws iotdeviceadvisor list-suite-runs \ --suite-definition-id ztvb5aew4w4x

输出:

{ "suiteRunsList": [ { "suiteDefinitionId": "ztvb5aew4w4x", "suiteDefinitionVersion": "v1", "suiteDefinitionName": "TestSuite", "suiteRunId": "p6awv89nre6v", "createdAt": "2022-12-01T16:33:14.212000-05:00", "startedAt": "2022-12-01T16:33:15.710000-05:00", "endAt": "2022-12-01T16:42:03.323000-05:00", "status": "PASS", "passed": 6, "failed": 0 } ] }

示例 2:列出具有指定设置的指定 IoT Device Advisor 测试套件运行状态的信息

以下 list-suite-runs 示例列出具有指定套件定义 ID 和指定 max-result 数值的 Device Advisor 测试套件运行状态的信息。如果您有超过此最大数值的测试套件运行,则输出中将显示“nextToken”。如果您有“nextToken”,则可以使用“nextToken”来显示在前面未显示的测试套件运行。

aws iotdeviceadvisor list-suite-runs \ --suite-definition-id qqcsmtyyjaml \ --max-result 1 \ --next-token "nextTokenValue"

输出:

{ "suiteRunsList": [ { "suiteDefinitionId": "qqcsmtyyjaml", "suiteDefinitionVersion": "v1", "suiteDefinitionName": "MQTT connection", "suiteRunId": "gz9vm2s6d2jy", "createdAt": "2022-12-01T20:10:27.079000-05:00", "startedAt": "2022-12-01T20:10:28.003000-05:00", "endAt": "2022-12-01T20:10:45.084000-05:00", "status": "STOPPED", "passed": 0, "failed": 0 } ], "nextToken": "nextTokenValue" }

有关更多信息,请参阅《AWS IoT API 参考》中的 ListSuiteRuns

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListSuiteRuns

以下代码示例演示了如何使用 list-tags-for-resource

AWS CLI

列出附加到 IoT Device Advisor 资源的标签

以下 list-tags-for-resource 示例列出附加到 Device Advisor 资源的标签。Device Advisor 资源可以是 Suitedefinition-Arn 或 Suiterun-Arn。

aws iotdeviceadvisor list-tags-for-resource \ --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny

输出:

{ "tags": { "TestTagKey": "TestTagValue" } }

有关更多信息,请参阅《AWS IoT API 参考》中的 ListTagsForResource,或《服务授权参考》中的 AWS IoT Core Device Advisor 定义的资源类型

以下代码示例演示了如何使用 start-suite-run

AWS CLI

启动 IoT Device Advisor 测试套件运行

以下 start-suite-run 示例列出您的 AWS 账户中可用的微件。

aws iotdeviceadvisor start-suite-run \ --suite-definition-id qqcsmtyyjabl \ --suite-definition-version v1 \ --suite-run-configuration '{"primaryDevice":{"thingArn": "arn:aws:iot:us-east-1:123456789012:thing/MyIotThing","certificateArn":"arn:aws:iot:us-east-1:123456789012:cert/certFile"}}'

输出:

{ "suiteRunId": "pwmucgw7lt9s", "suiteRunArn": "arn:aws:iotdeviceadvisor:us-east-1:123456789012:suiterun/qqcsmtyyjabl/pwmucgw7lk9s", "createdAt": "2022-12-02T15:43:05.581000-05:00" }

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的启动测试套件运行

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StartSuiteRun

以下代码示例演示了如何使用 stop-suite-run

AWS CLI

停止当前正在运行的 IoT Device Advisor 测试套件

以下 stop-suite-run 示例停止当前正在运行的具有指定套件定义 ID 和套件运行 ID 的 Device Advisor 测试套件。

aws iotdeviceadvisor stop-suite-run \ --suite-definition-id qqcsmtyyjabl \ --suite-run-id nzlfyhaa18oa

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT Core 开发人员指南》中的停止测试套件运行

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 StopSuiteRun

以下代码示例演示了如何使用 tag-resource

AWS CLI

添加和修改 IoT Device Advisor 资源的现有标签

以下 tag-resource 示例添加和修改具有指定资源 arn 和标签的 Device Advisor 资源的现有标签。Device Advisor 资源可以是 Suitedefinition-Arn 或 Suiterun-Arn。

aws iotdeviceadvisor tag-resource \ --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny \ --tags '{"TagKey": "TagValue"}'

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT API 参考》中的 TagResource,或《服务授权参考》中的 AWS IoT Core Device Advisor 定义的资源类型

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 TagResource

以下代码示例演示了如何使用 untag-resource

AWS CLI

从 IoT Device Advisor 资源中移除现有标签

以下 untag-resource 示例从具有指定资源 arn 和标签键的 Device Advisor 资源中移除现有标签。Device Advisor 资源可以是 Suitedefinition-Arn 或 Suiterun-Arn。

aws iotdeviceadvisor untag-resource \ --resource-arn arn:aws:iotdeviceadvisor:us-east-1:123456789012:suitedefinition/ba0uyjpg38ny \ --tag-keys "TagKey"

此命令不生成任何输出。

有关更多信息,请参阅《AWS IoT API 参考》中的 UntagResource,或《服务授权参考》中的 AWS IoT Core Device Advisor 定义的资源类型

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 UntagResource

以下代码示例演示了如何使用 update-suite-definition

AWS CLI

示例 1:更新 IoT Device Advisor 测试套件

以下 update-suite-definition 示例更新 AWS IoT 中的具有指定套件定义 ID 和套件定义配置的 Device Advisor 测试套件。

aws iotdeviceadvisor update-suite-definition \ --suite-definition-id 3hsn88h4p2g5 \ --suite-definition-configuration '{ \ "suiteDefinitionName": "TestSuiteName", \ "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ "intendedForQualification": false, \ "rootGroup": "{\"configuration\":{},\"tests\":[{\"name\":\"MQTT Connect\",\"configuration\":{\"EXECUTION_TIMEOUT\":120},\"tests\":[{\"name\":\"MQTT_Connect\",\"configuration\":{},\"test\":{\"id\":\"MQTT_Connect\",\"testCase\":null,\"version\":\"0.0.0\"}}]}]}", \ "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}'

输出:

{ "suiteDefinitionId": "3hsn88h4p2g5", "suiteDefinitionName": "TestSuiteName", "suiteDefinitionVersion": "v3", "createdAt": "2022-11-17T14:15:56.830000-05:00", "lastUpdatedAt": "2022-12-02T16:02:45.857000-05:00" }

示例 2:更新 IoT Device Advisor 合格测试套件

以下 update-suite-definition 示例更新 AWS IoT 中的具有指定套件定义 ID 和套件定义配置的 Device Advisor 合格测试套件。

aws iotdeviceadvisor update-suite-definition \ --suite-definition-id txgsuolk2myj \ --suite-definition-configuration '{ "suiteDefinitionName": "TestSuiteName", \ "devices": [{"thingArn":"arn:aws:iot:us-east-1:123456789012:thing/MyIotThing"}], \ "intendedForQualification": true, \ "rootGroup": "", \ "devicePermissionRoleArn": "arn:aws:iam::123456789012:role/Myrole"}'

输出:

{ "suiteDefinitionId": "txgsuolk2myj", "suiteDefinitionName": "TestSuiteName", "suiteDefinitionVersion": "v3", "createdAt": "2022-11-17T14:15:56.830000-05:00", "lastUpdatedAt": "2022-12-02T16:02:45.857000-05:00" }

有关更多信息,请参阅《AWS IoT API 参考》中的 UpdateSuiteDefinition