分享方式:


使用 PowerShell 設定 IoT 中樞檔案上傳

本文說明如何使用 PowerShell 在 IoT 中樞上設定檔案上傳。

若要使用 IoT 中樞的檔案上傳功能,您必須先將 Azure 儲存體帳戶和 blob 容器與您的 IoT 中樞建立關聯。 IoT 中樞會自動產生具有此 Blob 容器寫入權限的 SAS URI,以供裝置上傳檔案時使用。 除了儲存體帳戶和 Blob 容器之外,您還可以設定 SAS URI 的存留時間,以及設定 IoT 中樞可以傳遞至後端服務的選擇性檔案上傳通知設定。

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

必要條件

登入並設定 Azure 帳戶

登入您的 Azure 帳戶並選取您的訂用帳戶。 如果您使用 Azure Cloud Shell,則應該已登入;不過,如果您有多個訂閱,您仍可能需要選取您的 Azure 訂閱。

  1. 在 PowerShell 命令提示字元中,執行 Connect-AzAccount Cmdlet:

    Connect-AzAccount
    
  2. 如果您有多個 Azure 訂用帳戶,則登入 Azure 即會為您授與和您認證相關聯之所有 Azure 訂用帳戶的存取權。 使用 Get-AzSubscription 命令來列出可供您使用的 Azure 訂閱:

    Get-AzSubscription
    

    使用下列命令,來選取您想要用來執行命令以管理 IoT 中樞的訂用帳戶。 您可以使用來自上一個命令之輸出內的訂用帳戶名稱或識別碼︰

    Select-AzSubscription `
        -Name "{your subscription name}"
    

    注意

    Select-AzSubscription 命令是 Select-AzCoNtext 的別名,可讓您使用 Get-AzSubscription 命令傳回的訂閱名稱 (名稱) 或訂閱識別碼 (識別碼),而不是 Select-AzCoNtext 命令所需的更複雜內容名稱。

擷取您的儲存體帳戶詳細資料

下列步驟假設您使用 [Resource Manager] 部署模型,而非 [傳統] 部署模型,建立了儲存體帳戶。

若要從裝置設定檔案上傳,您需要 Azure 儲存體帳戶的連接字串。 儲存體帳戶必須與您的 IoT 中樞位於相同的訂用帳戶中。 您也需要儲存體帳戶中 blob 容器的名稱。 使用 Get-AzStorageAccountKey 命令取得儲存體帳戶金鑰:

Get-AzStorageAccountKey `
  -Name {your storage account name} `
  -ResourceGroupName {your storage account resource group}

記下 key1 儲存體帳戶金鑰值。 您需要在後續步驟中用到此值。

您可以使用現有的 blob 容器進行檔案上傳,或建立新容器:

  • 要列出儲存體帳戶現有的 blob 容器,請使用 New-AzStorageContextGet-AzStorageContainer 命令:

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • 若要在儲存體帳戶中建立 Blob 容器,請使用 New-AzStorageContextNew-AzStorageContainer 命令:

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    New-AzStorageContainer `
        -Name {your new container name} `
        -Permission Off `
        -Context $ctx
    

設定 IoT 中樞

您現在可以使用儲存體帳戶詳細資料來設定 IoT 中樞,以將檔案上傳到 IoT 中樞

設定需要下列值:

  • 儲存體容器︰您目前 Azure 訂用帳戶內 Azure 儲存體帳戶中的 blob 容器,會與您的 IoT 中樞產生關聯。 您已在上一節中擷取了必要的儲存體帳戶資訊。 IoT 中樞會自動產生具有此 Blob 容器寫入權限的 SAS URI,以供裝置上傳檔案時使用。

  • 接收已上傳檔案的通知︰啟用或停用檔案上傳通知。

  • SAS TTL︰這個設定是「IoT 中樞」傳回給裝置之 SAS URI 的存留時間。 預設會設為一小時。

  • 檔案通知設定預設 TTL:檔案上傳通知到期前的存留時間。 預設會設為一天。

  • 檔案通知最大傳遞計數︰IoT 中樞可嘗試傳遞檔案上傳通知的次數。 預設會設為 10。

使用 Set-AzIotHub 命令設定 IoT 中樞上的檔案上傳設定:

Set-AzIotHub `
    -ResourceGroupName "{your iot hub resource group}" `
    -Name "{your iot hub name}" `
    -FileUploadNotificationTtl "01:00:00" `
    -FileUploadSasUriTtl "01:00:00" `
    -EnableFileUploadNotifications $true `
    -FileUploadStorageConnectionString "DefaultEndpointsProtocol=https;AccountName={your storage account name};AccountKey={your storage account key};EndpointSuffix=core.windows.net" `
    -FileUploadContainerName "{your blob container name}" `
    -FileUploadNotificationMaxDeliveryCount 10

注意

根據預設,IoT 中樞使用連接字串中的帳戶金鑰向 Azure 儲存體進行驗證。 您也可以使用系統指派或使用者指派的受控識別進行驗證。 受控識別在 Microsoft Entra ID 中以安全的方式為 Azure 服務提供自動受控的身分識別。 若要深入了解,請參閱針對受控識別的 IoT 中樞支援。 目前,Set-AzIotHub 命令上沒有參數可設定驗證類型。 您可以使用 Azure 入口網站Azure CLI 作為替代。

下一步