共用方式為


az iot device

注意

此參考是 Azure CLI 的 azure-iot 延伸模組的一部分(2.46.0 版或更高版本)。 擴充功能會在您第一次執行 az iot device 命令時自動安裝。 深入了解擴充功能。

利用裝置模擬和其他以裝置為中心的作業,例如裝置到雲端或雲端到裝置傳訊功能。

命令

名稱 Description 類型 狀態
az iot device c2d-message

雲端到裝置傳訊命令。

副檔名 GA
az iot device c2d-message abandon

放棄雲端到裝置訊息。

副檔名 GA
az iot device c2d-message complete

完成雲端到裝置訊息。

副檔名 GA
az iot device c2d-message purge

清除目標裝置的雲端到裝置消息佇列。

副檔名 GA
az iot device c2d-message receive

接收雲端到裝置訊息。

副檔名 GA
az iot device c2d-message reject

拒絕或使雲端到裝置訊息失效。

副檔名 GA
az iot device c2d-message send

傳送雲端到裝置訊息。

副檔名 GA
az iot device registration

管理IoT裝置布建服務的IoT裝置註冊。

副檔名 預覽​​
az iot device registration create

向IoT裝置布建服務註冊IoT裝置。

副檔名 預覽​​
az iot device send-d2c-message

傳送 mqtt 裝置到雲端訊息。

副檔名 GA
az iot device simulate

模擬 Azure IoT 中樞 中的裝置。

副檔名 實驗
az iot device upload-file

將本機檔案作為裝置上傳至預先設定的 Blob 記憶體容器。

副檔名 GA

az iot device send-d2c-message

傳送 mqtt 裝置到雲端訊息。

此命令支援以 Unicode 字串或二進位格式傳送具有自定義承載的訊息。 當想要傳送二進位檔時,資料應該來自檔案(透過 --data-file-path),而內容類型應該設定為 application/octet-stream

注意:此命令僅適用於對稱密鑰驗證 (SAS) 型裝置。 若要在訊息路由中啟用訊息本文的查詢,contentType 系統屬性必須是 application/JSON,而 contentEncoding 系統屬性必須是該系統屬性支援的其中一個 UTF 編碼值(UTF-8、UTF-16 或 UTF-32)。 如果在 Azure 儲存體 作為路由端點時未設定內容編碼,則 IoT 中樞 以基底 64 編碼格式寫入訊息。 如果使用 x509 驗證方法,則必須提供必要的憑證和金鑰檔案(以及複雜密碼)。

az iot device send-d2c-message --device-id
                               [--certificate-file-path]
                               [--da]
                               [--data-file-path]
                               [--dtmi]
                               [--hub-name]
                               [--key]
                               [--key-file-path]
                               [--login]
                               [--mc]
                               [--pass]
                               [--properties]
                               [--resource-group]

範例

基本使用方式

az iot device send-d2c-message -n {iothub_name} -d {device_id}

註冊 'dtmi:com:example:Thermostat' 模型標識符之裝置的基本用法;線上時為 1'

az iot device send-d2c-message -n {iothub_name} -d {device_id} --model-id 'dtmi:com:example:Thermostat;1'

具有 x509 驗證之裝置的基本使用方式

az iot device send-d2c-message -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path}

具有 x509 驗證之裝置的基本使用方式,其中密鑰檔案具有複雜密碼

az iot device send-d2c-message -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path} --pass {passphrase}

使用自訂數據的基本用法

az iot device send-d2c-message -n {iothub_name} -d {device_id} --data {message_body}

傳送應用程式屬性

az iot device send-d2c-message -n {iothub_name} -d {device_id} --props 'key0=value0;key1=value1'

傳送系統屬性 (訊息識別元和相互關聯識別碼)

az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.mid={id};$.cid={id}'

在系統屬性中指定內容類型和內容編碼,以傳送自定義數據

az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct={content-type};$.ce={content-encoding}' --data {message_body}

藉由在系統屬性中指定內容編碼,以二進位格式傳送自定義數據

az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct=application/octet-stream' --data-file-path {file_path}

藉由在系統屬性中指定內容類型和內容編碼,以 JSON 格式傳送自定義數據

az iot device send-d2c-message -n {iothub_name} -d {device_id} --props '$.ct=application/json;$.ce=utf-8' --data-file-path {file_path}

必要參數

--device-id -d

目標裝置標識碼。

選擇性參數

--certificate-file-path --cp

憑證檔案的路徑。

--da --data

訊息本文。 提供文字或原始 JSON。

預設值: Ping from Az CLI IoT Extension
--data-file-path --dfp
預覽

提供訊息本文承載的檔案路徑。 請注意,當承載需要以二進位格式傳送時,請將內容類型設定為 application/octet-stream。

--dtmi --model-id

聯機到中樞時,裝置將會回報的數字對應項模型標識符。 如需詳細資訊,請參閱 https://docs.microsoft.com/en-us/azure/iot-develop/overview-iot-plug-and-play

--hub-name -n

IoT 中樞 名稱或主機名。 如果未提供 --login,則為必要項。

--key --symmetric-key

要用於裝置的對稱金鑰。 如果提供對稱金鑰和其他裝置驗證自變數,對稱金鑰會優先使用。

--key-file-path --kp

金鑰檔案的路徑。

--login -l

此命令支援具有執行動作許可權的實體 連接字串。 使用來避免透過 「az login」 的工作階段登入。 如果提供實體 連接字串 和名稱,則 連接字串 優先。 如果未提供 --hub-name,則為必要專案。

--mc --msg-count

要傳送至 IoT 中樞的裝置訊息數目。

預設值: 1
--pass --passphrase

金鑰檔案的複雜密碼。

--properties --props -p

機碼/值組中具有下列格式的 Message 屬性包:a=b;c=d。 針對 mqtt 傳訊 - 您可以使用 $.=value 來傳送系統屬性。 例如 $.cid=12345 會設定系統相互關聯標識符屬性。 其他系統屬性標識碼範例包括內容類型的 $.ct、訊息標識碼的$.mid,以及內容編碼的 $.ce。

--resource-group -g

資源群組的名稱。 您可以使用 az configure --defaults group=<name> 來設定預設群組。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 az account set -s NAME_OR_ID 設定預設訂用帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

az iot device simulate

實驗

此命令是實驗性且正在開發中。 參考和支援層級: https://aka.ms/CLI_refstatus

模擬 Azure IoT 中樞 中的裝置。

當裝置模擬執行時,裝置會自動接收並確認雲端到裝置 (c2d) 訊息。 針對 mqtt 模擬,所有 c2d 訊息都會在完成時認可。 針對 HTTP 模擬 c2d 通知,是以使用者選取項目為基礎,可完成、拒絕或放棄。 mqtt 模擬也支援直接方法調用,其可由響應狀態代碼和響應承載認可。 注意:命令預設會將內容類型設定為 application/json,並將 content-encoding 設定為 utf-8。 這可以覆寫。 注意:如果使用 x509 驗證方法,則必須提供必要的憑證和密鑰檔案(以及複雜密碼)。

az iot device simulate --device-id
                       [--certificate-file-path]
                       [--da]
                       [--dtmi]
                       [--hub-name]
                       [--init-reported-properties]
                       [--key]
                       [--key-file-path]
                       [--login]
                       [--mc]
                       [--method-response-code]
                       [--method-response-payload]
                       [--mi]
                       [--pass]
                       [--properties]
                       [--proto {http, mqtt}]
                       [--receive-settle {abandon, complete, reject}]
                       [--resource-group]

範例

基本使用方式 (mqtt)

az iot device simulate -n {iothub_name} -d {device_id}

註冊 'dtmi:com:example:Thermostat' 模型標識符之裝置的基本用法;連線時為 1' (mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --model-id 'dtmi:com:example:Thermostat;1'

具有 x509 驗證之裝置的基本用法(mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path}

密鑰檔案具有複雜密碼之 x509 驗證 (mqtt) 裝置的基本使用方式

az iot device simulate -n {iothub_name} -d {device_id} --cp {certificate_file_path} --kp {key_file_path} --pass {passphrase}

傳送混合屬性 (mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --properties "myprop=myvalue;$.ct=application/json"

將直接方法回應狀態代碼和直接方法響應承載傳送為原始 json(僅限 mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --method-response-code 201 --method-response-payload '{"result":"Direct method successful"}'

將直接方法回應狀態代碼和直接方法響應承載傳送為本機檔案的路徑(僅限 mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --method-response-code 201 --method-response-payload '../my_direct_method_payload.json'

將裝置對應項報告屬性的初始狀態傳送為目標裝置的原始 json(僅限 mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --init-reported-properties '{"reported_prop_1":"val_1", "reported_prop_2":val_2}'

將裝置對應項報告屬性的初始狀態傳送為目標裝置本機檔案的路徑(僅限 mqtt)

az iot device simulate -n {iothub_name} -d {device_id} --init-reported-properties '../my_device_twin_reported_properties.json'

基本用法 (HTTP)

az iot device simulate -n {iothub_name} -d {device_id} --protocol http

傳送混合屬性 (HTTP)

az iot device simulate -n {iothub_name} -d {device_id} --protocol http --properties "iothub-app-myprop=myvalue;content-type=application/json;iothub-correlationid=12345"

選擇訊息之間的總訊息計數和間隔

az iot device simulate -n {iothub_name} -d {device_id} --msg-count 1000 --msg-interval 5

拒絕 c2d 訊息 (僅限 HTTP)

az iot device simulate -n {iothub_name} -d {device_id} --rs reject --protocol http

放棄 c2d 訊息 (僅限 HTTP)

az iot device simulate -n {iothub_name} -d {device_id} --rs abandon --protocol http

必要參數

--device-id -d

目標裝置標識碼。

選擇性參數

--certificate-file-path --cp

憑證檔案的路徑。

--da --data

訊息本文。 提供文字或原始 JSON。

預設值: Ping from Az CLI IoT Extension
--dtmi --model-id

聯機到中樞時,裝置將會回報的數字對應項模型標識符。 如需詳細資訊,請參閱 https://docs.microsoft.com/en-us/azure/iot-develop/overview-iot-plug-and-play

--hub-name -n

IoT 中樞 名稱或主機名。 如果未提供 --login,則為必要項。

--init-reported-properties --irp

執行模擬器時,目標裝置的對應項報告屬性的初始狀態。 選擇性參數,僅支援 mqtt。

--key --symmetric-key

要用於裝置的對稱金鑰。 如果提供對稱金鑰和其他裝置驗證自變數,對稱金鑰會優先使用。

--key-file-path --kp

金鑰檔案的路徑。

--login -l

此命令支援具有執行動作許可權的實體 連接字串。 使用來避免透過 「az login」 的工作階段登入。 如果同時提供實體 連接字串 和名稱,則 連接字串 優先。 如果未提供 --hub-name,則為必要專案。

--mc --msg-count

要傳送至 IoT 中樞的裝置訊息數目。

預設值: 100
--method-response-code --mrc

在裝置上執行直接方法時要傳回的狀態代碼。 選擇性參數,僅支援 mqtt。

--method-response-payload --mrp

在裝置上執行直接方法時要傳回的承載。 提供檔案路徑或原始 JSON。 選擇性參數,僅支援 mqtt。

--mi --msg-interval

在裝置到雲端訊息之間的秒數延遲。

預設值: 3
--pass --passphrase

金鑰檔案的複雜密碼。

--properties --props -p

機碼/值組中具有下列格式的 Message 屬性包:a=b;c=d。 針對 mqtt 傳訊 - 您可以使用 $.=value 來傳送系統屬性。 例如 $.cid=12345 會設定系統相互關聯標識符屬性。 其他系統屬性標識碼範例包括內容類型的 $.ct、訊息標識碼的$.mid,以及內容編碼的 $.ce。 針對 HTTP 訊息 - 應用程式屬性是使用 iothub-app-=value 傳送,例如 iothub-app-myprop=myvalue。 系統屬性通常會加上 iothub-like iothub-correlationid,但有內容類型和內容編碼等例外狀況。

--proto --protocol

指出裝置到雲端訊息通訊協定。

接受的值: http, mqtt
預設值: mqtt
--receive-settle --rs

指出如何解決已接收的雲端到裝置訊息。 僅支援 HTTP。

接受的值: abandon, complete, reject
預設值: complete
--resource-group -g

資源群組的名稱。 您可以使用 az configure --defaults group=<name> 來設定預設群組。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 az account set -s NAME_OR_ID 設定預設訂用帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。

az iot device upload-file

將本機檔案作為裝置上傳至預先設定的 Blob 記憶體容器。

az iot device upload-file --content-type
                          --device-id
                          --file-path
                          [--hub-name]
                          [--login]
                          [--resource-group]

必要參數

--content-type --ct

MIME 檔案類型。

--device-id -d

目標裝置標識碼。

--file-path --fp

要上傳的檔案路徑。

選擇性參數

--hub-name -n

IoT 中樞 名稱或主機名。 如果未提供 --login,則為必要項。

--login -l

此命令支援具有執行動作許可權的實體 連接字串。 使用來避免透過 「az login」 的工作階段登入。 如果提供實體 連接字串 和名稱,則 連接字串 優先。 如果未提供 --hub-name,則為必要專案。

--resource-group -g

資源群組的名稱。 您可以使用 az configure --defaults group=<name> 來設定預設群組。

全域參數
--debug

增加記錄詳細資訊,以顯示所有偵錯記錄。

--help -h

顯示此說明訊息並結束。

--only-show-errors

只顯示錯誤,隱藏警告。

--output -o

輸出格式。

接受的值: json, jsonc, none, table, tsv, yaml, yamlc
預設值: json
--query

JMESPath 查詢字串。 如需詳細資訊和範例,請參閱 http://jmespath.org/

--subscription

訂用帳戶的名稱或識別碼。 您可以使用 az account set -s NAME_OR_ID 設定預設訂用帳戶。

--verbose

增加記錄詳細資訊。 使用 --debug 來取得完整偵錯記錄。