使用 Azure CLI 排程和廣播作業
使用 Azure CLI 來排程和追蹤更新數百萬個裝置的作業。 使用作業以:
- 更新所需屬性
- 更新標籤
- 叫用直接方法
就概念而言,作業會包裝上述其中一個動作,然後針對一組裝置追蹤執行進度。 裝置對應項查詢會定義作業互動的一組裝置。 例如,後端應用程式可以在 10,000 個裝置上使用作業叫用重新啟動方法,此方法由裝置對應項查詢指定並排定在未來執行。 接著,該應用程式可以追蹤每個這些裝置接收和執行重新啟動方法的進度。
若要深入瞭解作業如何協助管理大量裝置管理作業,請參閱 排程多個裝置上的作業。
注意
本文中所述的功能僅適用於 IoT 中樞的標準層。 如需有關基本和標準/免費 Azure IoT 中樞階層的詳細資訊,請參閱為您的解決方案選擇適合的 Azure IoT 中樞階層。
必要條件
Azure CLI。 您也可使用 Azure Cloud Shell (部分機器翻譯) (可在瀏覽器或 Windows 終端等應用程式中執行的互動式 CLI 殼層) 執行本文中的命令。 如果您使用 Cloud Shell,就不需要安裝任何項目。 如果您偏好在本機使用 CLI,本文需要 Azure CLI 2.36 版或更新版本。 若要尋找已安裝的版本,請執行
az --version
。 若要在本機安裝或升級 Azure CLI,請參閱安裝 Azure CLI (部分機器翻譯)。Azure 訂用帳戶中的 IoT 中樞。 如果您還沒有中樞,可遵循建立 IoT 中樞中的步驟。
排程作業以叫用直接方法
您可以使用作業在一或多個裝置上叫 用直接方法 。
使用 az iot hub job create 命令,以對應的值取代下列佔位符。 命令會排程在目標裝置上呼叫方法名稱的作業。
az iot hub job create --hub-name {HubName} --job-id {JobName} \
--job-type scheduleDeviceMethod \
--method-name {MethodName} --method-payload {MethodPayload} \
--query-condition "{DeviceQuery}"
預留位置 | 值 |
---|---|
{HubName} |
IoT 中樞的名稱。 |
{JobName} |
排程作業的名稱。 作業名稱是唯一的,因此每次執行此命令時,請選擇不同的作業名稱。 |
{MethodName} |
直接方法的名稱。 |
{MethodPayload} |
要提供給直接方法的任何承載。 如果不需要承載,請使用 null 。 |
{DeviceQuery} |
查詢,定義要以作業為目標的裝置或裝置。 例如,單一裝置作業可以使用下列查詢條件: deviceId = 'myExampleDevice' 。 |
提示
在排程作業 az iot hub job create 命令以叫用直接方法時,您必須同時指定 --method-name
和 --method-payload
選擇性參數的值。 針對不接受承載的直接方法,請為 --method-payload
參數指定 null
。
排程作業以更新裝置對應項屬性
使用 az iot hub job create 命令,以對應的值取代下列佔位符。 在此範例中,我們會排程作業,針對模擬裝置將所需對應項屬性 BuildingNo
的值設定為 45。
az iot hub job create --hub-name {HubName} --job-id {JobName} \
--job-type scheduleUpdateTwin \
--twin-patch '{JSONTwinPatch}' \
--query-condition "{DeviceQuery}"
預留位置 | 值 |
---|---|
{HubName} |
IoT 中樞的名稱。 |
{JobName} |
排程作業的名稱。 作業名稱是唯一的,因此每次執行此命令時,請選擇不同的作業名稱。 |
{JSONTwinPatch} |
您想要用來更新裝置對應項所需屬性的 JSON 代碼段。 例如: {"properties":{"desired": {"BuildingNo": 45}}} 。 |
{DeviceQuery} |
查詢,定義要以作業為目標的裝置或裝置。 例如,單一裝置作業可以使用下列查詢條件: deviceId = 'myExampleDevice' 。 |
相關內容
瞭解如何使用 Azure IoT SDK 以程式設計方式實作作業: 排程和廣播作業。