使用 Azure CLI 配置 IoT 中心文件上传

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

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

  • 有效的 Azure 帐户。 如果没有帐户,可以创建一个试用帐户,只需几分钟即可完成。
  • Azure CLI 2.0
  • Azure IoT 中心。 如果没有 IoT 中心,可以使用 az iot hub create command 创建一个,或使用门户 [创建 IoT 中心][lnk-portal-hub]。
  • 一个 Azure 存储帐户。 如果没有 Azure 存储帐户,可以使用 Azure CLI 2.0 - 管理存储帐户创建一个,或使用门户创建存储帐户

登录并设置 Azure 帐户

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

  1. 在命令提示符中,运行 login 命令

    az login
    

    按照说明使用代码进行身份验证,并通过 Web 浏览器登录 Azure 帐户。

    Note

    在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

  2. 如果有多个 Azure 订阅,登录 Azure 可获得与凭据关联的所有 Azure 帐户的访问权限。 使用以下 命令,列出可供使用的 Azure 帐户

    az account list
    

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

    az account set --subscription {your subscription name or id}
    

检索存储帐户详细信息

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

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

az storage account show-connection-string --name {your storage account name} --resource-group {your storage account resource group}

记下 connectionString 值。 在后续步骤中需要用到它。

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

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

    az storage container list --connection-string "{your storage account connection string}"
    
  • 若要在存储帐户中创建 Blob 容器,请使用以下命令:

    az storage container create --name {container name} --connection-string "{your storage account connection string}"
    

文件上传

现在可以配置 IoT 中心启用文件上传功能使用存储帐户详细信息。

配置需要以下值:

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

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

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

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

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

使用以下 Azure CLI 命令在 IoT 中心内配置文件上传设置:

在 bash shell 中使用:

az iot hub update --name {your iot hub name} --set properties.storageEndpoints.'$default'.connectionString="{your storage account connection string}"
az iot hub update --name {your iot hub name} --set properties.storageEndpoints.'$default'.containerName="{your storage container name}"
az iot hub update --name {your iot hub name} --set properties.storageEndpoints.'$default'.sasTtlAsIso8601=PT1H0M0S

az iot hub update --name {your iot hub name} --set properties.enableFileUploadNotifications=true
az iot hub update --name {your iot hub name} --set properties.messagingEndpoints.fileNotifications.maxDeliveryCount=10
az iot hub update --name {your iot hub name} --set properties.messagingEndpoints.fileNotifications.ttlAsIso8601=PT1H0M0S

在 Windows 命令提示符下使用:

az iot hub update --name {your iot hub name} --set "properties.storageEndpoints.$default.connectionString="{your storage account connection string}""
az iot hub update --name {your iot hub name} --set "properties.storageEndpoints.$default.containerName="{your storage container name}""
az iot hub update --name {your iot hub name} --set "properties.storageEndpoints.$default.sasTtlAsIso8601=PT1H0M0S"

az iot hub update --name {your iot hub name} --set properties.enableFileUploadNotifications=true
az iot hub update --name {your iot hub name} --set properties.messagingEndpoints.fileNotifications.maxDeliveryCount=10
az iot hub update --name {your iot hub name} --set properties.messagingEndpoints.fileNotifications.ttlAsIso8601=PT1H0M0S

可以使用以下命令在 IoT 中心内查看文件上传配置:

az iot hub show --name {your iot hub name}

后续步骤

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

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

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