使用 PowerShell 配置 IoT 中心文件上传

要使用 IoT 中心的文件上传功能,必须先将 Azure 存储帐户与 IoT 中心关联。 可以使用现有存储帐户,也可以创建新的存储帐户。

要完成本教程,需要以下各项:

登录并设置 Azure 帐户

登录到 Azure 帐户,并选择订阅。

  1. 在 PowerShell 提示符下,运行 Connect-AzureRmAccount cmdlet:

    Connect-AzureRmAccount -Environment AzureChinaCloud
    
  2. 如果有多个 Azure 订阅,则访问 Azure 即有权访问与凭据关联的所有 Azure 订阅。 使用以下命令,列出可供使用的 Azure 订阅:

    Get-AzureRMSubscription
    

    使用以下命令,选择想要用于运行命令以管理 IoT 中心的订阅。 可使用上一命令输出中的订阅名称或 ID:

    Select-AzureRMSubscription `
        -SubscriptionName "{your subscription name}"
    

检索存储帐户详细信息

以下步骤假设已使用 Resource Manager 部署模型而不经典部署模型创建了存储帐户。

若要从设备配置文件上传,需要 Azure 存储帐户的连接字符串。 存储帐户必须与 IoT 中心位于同一订阅中。 还需要存储帐户中 Blob 容器的名称。 使用以下命令检索存储帐户密钥:

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

记下 key1 存储帐户密钥值。 在后续步骤中需要用到它。

可将现有的 Blob 容器用于文件上传,或新建一个容器:

  • 若要列出存储帐户中的现有 Blob 容器,请使用以下命令:

    $ctx = New-AzureStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzureStorageContainer -Context $ctx
    
  • 若要在存储帐户中创建 Blob 容器,请使用以下命令:

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

配置 IoT 中心

现在可以使用存储帐户详细信息配置 IoT 中心以将文件上传到 IoT 中心

配置需要以下值:

存储容器:当前 Azure 订阅中要与 IoT 中心关联的 Azure 存储帐户中的 Blob 容器。 检索在上一部分中必要的存储帐户信息。 IoT 中心会自动生成对此 Blob 容器具有写入权限的 SAS URI,以供设备上传文件时使用。

接收已上传文件的通知:启用或禁用文件上传通知。

SAS TTL:此设置是 IoT 中心返回给设备的 SAS URI 生存时间。 默认设置为一小时。

文件通知设置默认 TTL:文件上传通知到期前的生存时间。 默认设置为一天。

文件通知最大传送数:IoT 中心将尝试传送文件上传通知的次数。 默认设置为 10。

使用以下 PowerShell cmdlet 在 IoT 中心内配置上传文件设置:

Set-AzureRmIotHub `
    -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.chinacloudapi.cn" `
    -FileUploadContainerName "{your blob container name}" `
    -FileUploadNotificationMaxDeliveryCount 10

后续步骤

有关 IoT 中心文件上传功能的详细信息,请参阅从设备上传文件

若要了解有关如何管理 Azure IoT 中心的详细信息,请参阅以下链接:

若要进一步探索 IoT 中心的功能,请参阅: