裝置建議程式範例: AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

裝置建議程式範例: AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 搭配裝置建議程式來執行動作及實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會告訴您如何呼叫個別服務函數,但您可以在其相關情境和跨服務範例中查看內容中的動作。

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

每個範例都包含一個連結 GitHub,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例會示範如何使用create-suite-definition

AWS CLI

範例 1:建立 IoT 裝置建議程式測試套件

下列create-suite-definition範例會使用指定的套件定義組態,在 AWS IoT 中建立裝置建議程式測試套件。

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 核心開發人員指南中的建立測試套件定義

範例 2:建立 IoT 裝置建議程式最新資格測試套件

下列create-suite-definition範例會建立具有指定套件定義組態之 AWS IoT 中最新版本的裝置建議程式資格測試套件。

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 核心開發人員指南中的建立測試套件定義

下列程式碼範例會示範如何使用delete-suite-definition

AWS CLI

刪除 IoT 裝置建議程式測試套件

下列delete-suite-definition範例會刪除具有指定套件定義 ID 的裝置建議程式測試套件。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT API 參考資料DeleteSuiteDefinition中的。

下列程式碼範例會示範如何使用get-endpoint

AWS CLI

範例 1:取得 IoT 裝置建議程式帳戶層級端點的相關資訊

下列get-endpoint範例會取得裝置建議程式帳戶層級測試端點的相關資訊。

aws iotdeviceadvisor get-endpoint

輸出:

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

範例 2:取得 IoT 裝置建議程式裝置層級端點的相關資訊

下列get-endpoint範例會取得有關具有指定 thing-arn 或憑證 arn 之裝置建議程式裝置層級測試端點的相關資訊。

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 核心開發人員指南中的取得測試端點

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetEndpoint中的。

下列程式碼範例會示範如何使用get-suite-definition

AWS CLI

取得 IoT 裝置建議程式測試套件的相關資訊

下列get-suite-definition範例會取得具有指定套件定義識別碼之 aevice 建議程式測試套件的相關資訊。

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 核心開發人員指南中的取得測試套件定義

下列程式碼範例會示範如何使用get-suite-run-report

AWS CLI

取得 IoT 裝置建議程式合格測試套件執行報表的相關資訊

下列get-suite-run-report範例會取得報表下載連結,以便使用指定的套裝定義識別碼和套件執行 ID,成功執行裝置建議程式合格測試套件。

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 核心開發人員指南中的取得成功執行資格測試套件的資格報告

下列程式碼範例會示範如何使用get-suite-run

AWS CLI

取得 IoT 裝置建議程式測試套件執行狀態的相關資訊

下列get-suite-run範例會取得裝置建議程式測試套件執行狀態的相關資訊,其中包含指定的套件定義識別碼和套件執行 ID。

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 核心開發人員指南中的取得執行測試套件。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考GetSuiteRun中的。

下列程式碼範例會示範如何使用list-suite-definitions

AWS CLI

範例 1:列出您建立的 IoT 裝置建議程式測試套件

下列list-suite-definitions範例會列出您在 AWS IoT 中建立的最多 25 個裝置建議程式測試套件。如果您有超過 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 裝置建議程式測試套件

下列list-suite-definitions範例會列出您在 AWS IoT 中建立的具有指定最大結果編號的裝置建議程式測試套件。如果您的測試套件數量超過了最大數量,則輸出中將顯示「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 裝置建議程式測試套件執行狀態的所有資訊

下列list-suite-runs範例會列出有關裝置建議程式測試套件執行狀態的所有資訊,以及指定的套件定義識別碼。如果您有超過 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 裝置建議程式測試套件執行狀態的資訊

下列list-suite-runs範例會列出裝置建議程式測試套件執行狀態的相關資訊,其中包含指定的套件定義識別碼和指定的最大結果編號。如果您的測試套件運行量超過了最大數量,則輸出中將顯示「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 裝置建議程式資源的標籤

下列list-tags-for-resource範例會列出附加至裝置建議程式資源的標籤。裝置建議程式資源可以是套件定義-ARN 或 Suiterun-Arn。

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

輸出:

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

如需詳細資訊,請參閱服務授權參考資料ListTagsForResourcehttps://docs.aws.amazon.com/iot/latest/apireference/API_iotdeviceadvisor_ListTagsForResource.html中的AWS IoT API 參考和 AWS IoT 核心裝置顧問所定義的資源類型

下列程式碼範例會示範如何使用start-suite-run

AWS CLI

若要啟動 IoT 裝置建議程式測試套件執行

下列start-suite-run範例會列出您 AWS 帳戶中可用的 Widget。

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 核心開發人員指南中的啟動測試套件執行

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考StartSuiteRun中的。

下列程式碼範例會示範如何使用stop-suite-run

AWS CLI

停止目前正在執行的 IoT 裝置建議程式測試套件

下列stop-suite-run範例會停止目前使用指定套件定義識別碼和套件執行 ID 執行的裝置建議程式測試套件。

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

此命令不會產生輸出。

如需詳細資訊,請參閱 AWS IoT 核心開發人員指南中的停止執行測試套件。

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考StopSuiteRun中的。

下列程式碼範例會示範如何使用tag-resource

AWS CLI

新增及修改 IoT 裝置建議程式資源的現有標籤

下列tag-resource範例會使用指定的資源 arn 和標籤,新增並修改裝置建議程式資源的現有標籤。裝置建議程式資源可以是套件定義-ARN 或 Suiterun-Arn。

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

此命令不會產生輸出。

如需詳細資訊,請參閱服務授權參考資料TagResourcehttps://docs.aws.amazon.com/iot/latest/apireference/API_iotdeviceadvisor_TagResource.html中的AWS IoT API 參考和 AWS IoT 核心裝置顧問所定義的資源類型

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考TagResource中的。

下列程式碼範例會示範如何使用untag-resource

AWS CLI

若要從 IoT 裝置建議程式資源移除現有標籤

下列untag-resource範例會使用指定的資源 arn 和 tag 索引鍵,從裝置建議程式資源移除現有標籤。裝置建議程式資源可以是套件定義-ARN 或 Suiterun-Arn。

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

此命令不會產生輸出。

如需詳細資訊,請參閱服務授權參考資料UntagResourcehttps://docs.aws.amazon.com/iot/latest/apireference/API_iotdeviceadvisor_UntagResource.html中的AWS IoT API 參考和 AWS IoT 核心裝置顧問所定義的資源類型

  • 如需 API 詳細資訊,請參閱AWS CLI 命令參考UntagResource中的。

下列程式碼範例會示範如何使用update-suite-definition

AWS CLI

範例 1:更新 IoT 裝置建議程式測試套件

下列update-suite-definition範例會使用指定的套件定義 ID 和套件定義組態來更新 AWS IoT 中的裝置建議程式測試套件。

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 裝置建議程式資格測試套件

下列update-suite-definition範例會使用指定的套件定義 ID 和套件定義組態,更新 AWS IoT 中的裝置建議程式資格測試套件。

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中的。