共用方式為


使用 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 以程式設計方式實作作業: 排程和廣播作業