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

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

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

注意

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

必要條件

登入並設定您的 Azure 帳戶

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

  1. 在 PowerShell 提示字元中,執行 連線-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 命令所傳回的訂用帳戶名稱(名稱)或訂用帳戶標識碼(Id),而不是 Select-AzContext 命令所需的更複雜的內容名稱。

擷取記憶體帳戶詳細數據

下列步驟假設您使用 Resource Manager 部署模型建立記憶體帳戶,而不是傳統部署模型。

若要從您的裝置配置檔案上傳,您需要 Azure 記憶體帳戶的 連接字串。 記憶體帳戶必須與IoT中樞位於相同的訂用帳戶中。 您也需要記憶體帳戶中的 Blob 容器名稱。 使用 Get-Az 儲存體 AccountKey 命令來擷取記憶體帳戶金鑰:

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

記下 key1 記憶體帳戶金鑰值。 在下列步驟中,您需要它。

您可以針對檔案上傳使用現有的 Blob 容器,或建立新的 Blob 容器:

  • 若要列出記憶體帳戶中的現有 Blob 容器,請使用 New-Az 儲存體 ContextGet-Az 儲存體 Container 命令:

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

    $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

下一步