az iot device

注意

此參考是 Azure CLI 的 azure-iot 延伸模組的一部分 (2.37.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 來取得完整偵錯記錄。