Поделиться через


Настройка отправки файлов Центра Интернета вещей с помощью портала Azure

Настройка отправки файлов в Центре Интернета вещей позволяет подключенным устройствам отправлять файлы в учетную запись хранения Azure. В этой статье показано, как настроить отправку файлов в Центр Интернета вещей с помощью портала Azure, Azure CLI и Azure PowerShell.

Чтобы использовать функцию передачи файлов в Центре Интернета вещей, сначала необходимо связать учетную запись хранения Azure и контейнер BLOB-объектов с Центром Интернета вещей. Центр Интернета вещей автоматически генерирует универсальные коды ресурсов (URI) подписанных URL-адресов с разрешениями на запись в этом контейнере больших двоичных объектов, чтобы устройства могли их использовать во время передач файлов. Помимо связывания учетной записи хранения и контейнера BLOB-объектов можно задать срок жизни для URI SAS и тип проверки подлинности, используемый Центром Интернета вещей по отношению к службе хранилища Azure. Кроме того, можно настроить параметры для необязательных уведомлений об отправке файлов, которые Центр Интернета вещей может посылать серверным службам.

Необходимые компоненты

Настройка Центра Интернета вещей на портале Azure

  1. На портале Azure перейдите к своему Центру Интернета вещей и выберите File upload (Отправить файл) для отображения свойств отправки файлов. Затем выберите Azure Storage Container (Контейнер службы хранилища Azure) в разделе Storage container settings (Параметры контейнера хранилища).

    Снимок экрана: настройка параметров отправки файлов на портале.

  2. Выберите учетную запись службы хранилища Azure и контейнер BLOB-объектов в текущей подписке Azure, которые нужно связать с Центром Интернета вещей. При необходимости можно создать новую учетную запись службы хранилища Azure в области Storage accounts (Учетные записи хранения) и новый контейнер BLOB-объектов в области Containers (Контейнеры).

    Снимок экрана: просмотр контейнеров хранилища для отправки файлов.

  3. Выбрав учетную запись службы хранилища Azure и контейнер BLOB-объектов, настройте остальные свойства отправки файлов.

    • Receive notifications for uploaded files (Получать уведомления об отправленных файлах). Включите или отключите уведомления об отправке файлов с помощью переключателя.

    • SAS TTL (Срок жизни SAS). Этот параметр определяет срок жизни универсальных кодов ресурса (URI) SAS, возвращаемых Центром Интернета вещей на устройство. По умолчанию устанавливается значение "один час", но его можно изменить с помощью ползунка.

    • File notification settings default TTL (Стандартный срок жизни уведомления о файле). Это срок жизни уведомления об отправке файла. По умолчанию устанавливается значение "один день", но его можно изменить с помощью ползунка.

    • File notification maximum delivery count(Максимальное число доставок уведомления о файле): число попыток доставки уведомления о передаче файла, предпринимаемых Центром Интернета вещей. По умолчанию устанавливается значение 10, но его можно изменить с помощью ползунка.

    • Authentication type (Тип проверки подлинности). По умолчанию в Центре Интернета вещей используется проверка подлинности на основе ключей при подключении службы хранилища Azure и авторизации в ней. Вы также можете настроить управляемые удостоверения, назначаемые пользователем или системой, для проверки подлинности Центра Интернета вещей при подключении к службе хранилища Azure. Функция управляемых удостоверений безопасным образом предоставляет службам Azure автоматически управляемые удостоверения в Microsoft Entra ID. Сведения о настройке управляемых удостоверений см. в статье Поддержка управляемых удостоверений для Центра Интернета вещей. После настройки одного или нескольких управляемых удостоверений в своей учетной записи службы хранилища Azure и Центре Интернета вещей вы можете выбрать одно из них для проверки подлинности службой хранилища Azure при помощи кнопок System-assigned (Назначаемое системой) и User-assigned (Назначаемое пользователем).

      Примечание.

      Параметр типа проверки подлинности позволяет настроить проверку подлинности в Центре Интернета вещей с помощью учетной записи службы хранилища Azure. Устройства всегда проходят проверку подлинности в службе хранилища Azure, используя URI SAS, полученный из Центра Интернета вещей.

  4. Нажмите кнопку Save (Сохранить), чтобы сохранить настройки. Обязательно проверьте наличие подтверждения успешного завершения. Некоторые изменения, например, выбор параметра Authentication type (Тип проверки подлинности), проверяются только после сохранения настроек.

Необходимые компоненты

  • Активная учетная запись Azure. Если у вас нет учетной записи, можно создать бесплатную учетную запись всего за несколько минут.

  • Центр Интернета вещей в подписке Azure. Если у вас еще нет центра, выполните действия, описанные в разделе Создание центра Интернета вещей.

  • Учетная запись хранения Azure с контейнером Blob. Если у вас нет учетной записи хранения Azure, вы можете создать ее с помощью Azure CLI. Дополнительные сведения см. в разделе Создание учетной записи хранения.

Вход и настройка учетной записи Azure

Войдите в учетную запись Azure и выберите подписку. Если вы используете Azure Cloud Shell, вы уже войдете в систему; однако вам может потребоваться выбрать подписку Azure, если у вас несколько подписок.

  1. В командной строке выполните команду входа:

    az login
    

    Следуйте инструкциям по проверке подлинности с помощью кода и входа в учетную запись Azure через веб-браузер.

  2. Если у вас несколько подписок Azure, вход в Azure предоставляет вам доступ ко всем учетным записям Azure, связанным с вашими учетными данными. Используйте следующую команду, чтобы вывести список учетных записей Azure, доступных для использования:

    az account list
    

    Используйте следующую команду, чтобы выбрать подписку, которую вы хотите использовать для выполнения команд для создания центра Интернета вещей. Вы можете использовать имя подписки или идентификатор из выходных данных предыдущей команды:

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

Настройка доступа к учетной записи хранения

В следующих шагах предполагается, что вы создали учетную запись хранения с помощью модели развертывания Resource Manager , а не классической модели развертывания.

Чтобы настроить отправку файлов с устройств, необходимо предоставить центру Интернета вещей разрешения на доступ к учетной записи хранения Azure. Учетная запись хранения должна находиться в той же подписке, что и центр Интернета вещей. Вам также потребуется имя контейнера для блобов в учетной записи хранения.

Для предоставления разрешений на доступ можно использовать проверку подлинности на основе ключей или на основе удостоверений. Корпорация Майкрософт рекомендует использовать проверку подлинности на основе удостоверений в качестве более безопасного варианта.

Проверка подлинности на основе ключей

Для аутентификации с помощью ключей укажите строку подключения к вашей учетной записи хранения. Используйте команду az storage account show-connection-string , чтобы получить ключи учетной записи хранения.

Запишите connectionString значение. Строка подключения выглядит примерно так:

{
  "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}

Проверка подлинности на основе удостоверений

Для проверки подлинности на основе удостоверений можно использовать назначаемые системой управляемые удостоверения или назначаемые пользователем управляемые удостоверения. Дополнительные сведения см. в статье о поддержке Центра Интернета вещей для управляемых удостоверений.

Используйте команду az role assignment create, чтобы назначить управляемому удостоверению роль. Дополнительные сведения см. в статье Назначение роли Azure для доступа к данным BLOB-объектов.

Настройка Центра Интернета вещей

Теперь вы можете настроить центр Интернета вещей, чтобы разрешить отправку файлов в Центр Интернета вещей с помощью сведений о учетной записи хранения.

Для конфигурации требуются следующие значения:

  • Контейнер хранения: контейнер для BLOB-объектов в учётной записи Azure в текущей подписке Azure для ассоциации с вашим IoT-хабом. Вы получили необходимые сведения об учетной записи хранения в предыдущем разделе. Центр Интернета вещей автоматически генерирует универсальные коды ресурсов (URI) подписанных URL-адресов с разрешениями на запись в этом контейнере больших двоичных объектов, чтобы устройства могли их использовать во время передач файлов.

  • Получение уведомлений для отправленных файлов: включение или отключение уведомлений о отправке файлов.

  • SAS TTL (Срок жизни SAS). Этот параметр определяет срок жизни универсальных кодов ресурса (URI) SAS, возвращаемых Центром Интернета вещей на устройство. Установите значение в один час по умолчанию.

  • Время жизни уведомлений о файлах по умолчанию: время жизни уведомления о загруженном файле до его истечения. По умолчанию задано значение один день.

  • File notification maximum delivery count(Максимальное число доставок уведомления о файле): число попыток доставки уведомления о передаче файла, предпринимаемых Центром Интернета вещей. Установите значение 10 по умолчанию.

  • Длительность блокировки уведомлений файлов: длительность блокировки для очереди уведомлений о файлах. Установите значение 60 секунд по умолчанию.

  • Тип проверки подлинности: тип проверки подлинности для Центра Интернета вещей, используемого в службе хранилища Azure. Этот параметр определяет, как центр Интернета вещей проходит проверку подлинности и авторизуется с помощью службы хранилища Azure. По умолчанию используется проверка подлинности на основе ключей; Однако рекомендуется использовать параметры проверки подлинности управляемого удостоверения, назначаемые системой или назначаемые пользователем. Функция управляемых удостоверений безопасным образом предоставляет службам Azure автоматически управляемые удостоверения в Microsoft Entra ID.

    Примечание.

    Параметр типа проверки подлинности позволяет настроить проверку подлинности в Центре Интернета вещей с помощью учетной записи службы хранилища Azure. Устройства всегда проходят проверку подлинности в службе хранилища Azure, используя URI SAS, полученный из Центра Интернета вещей.

В следующих командах показано, как настроить параметры отправки файлов в Центре Интернета вещей. Эти команды отображаются отдельно для ясности, но, как правило, вы будете выдавать одну команду со всеми необходимыми параметрами для вашего сценария. Включите кавычки, где они отображаются в командной строке. Не включать фигурные скобки. Дополнительные сведения о каждом параметре см. в документации по Azure CLI для команды az iot hub update .

Следующая команда настраивает учетную запись хранилища и контейнер BLOB.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-connectionstring "{your storage account connection string}" \
    --fileupload-storage-container-name "{your container name}" 

Следующая команда устанавливает время действия URI SAS по умолчанию (один час).

az iot hub update --name {your iot hub name} \
    --fileupload-sas-ttl 1 

Следующая команда включает уведомления о файлах и задает свойства уведомления о файле значениями по умолчанию. (Срок действия уведомления о загрузке файла установлен на один час, а длительность блокировки — 60 секунд.)

az iot hub update --name {your iot hub name} \
    --fileupload-notifications true  \
    --fileupload-notification-max-delivery-count 10 \
    --fileupload-notification-ttl 1 \
    --fileupload-notification-lock-duration 60

Следующая команда настраивает проверку подлинности на основе ключей:

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type keyBased

Следующая команда настраивает проверку подлинности с помощью управляемого удостоверения, назначаемого системой Центра Интернета вещей. Прежде чем запустить эту команду, необходимо включить управляемое удостоверение, назначаемое системой для центра Интернета вещей, и предоставить ей правильную роль управления доступом на основе ролей в учетной записи хранения Azure. Чтобы узнать больше, см. поддержку управляемых удостоверений в Центре Интернета вещей.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity [system] 

Следующие команды извлекают управляемые удостоверения, назначенные пользователем, настроенные в Центре Интернета вещей, и настраивают проверку подлинности с помощью одного из них. Прежде чем использовать управляемое удостоверение, назначаемое пользователем для проверки подлинности, его необходимо настроить в Центре Интернета вещей и предоставить соответствующую роль управления доступом на основе ролей в учетной записи хранения Azure. Для получения дополнительной информации и инструкций см. раздел Поддержка управляемых удостоверений в IoT Hub.

Чтобы запросить назначенные пользователем управляемые удостоверения на вашем узле IoT, используйте команду az iot hub identity show.

az iot hub identity show --name {your iot hub name} --query userAssignedIdentities

Команда возвращает коллекцию управляемых удостоверений, назначаемых пользователем, настроенных на вашем IoT-хабе. В следующих выходных данных показана коллекция, содержащая одно управляемое удостоверение, назначаемое пользователем.

{
  "/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}": 
  {
    "clientId": "<client ID GUID>",
    "principalId": "<principal ID GUID>"
  }
}

Следующая команда конфигурирует аутентификацию для использования вышеуказанной пользовательской идентификации.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity  "/subscriptions/{your subscription ID}/resourcegroups/{your resource group}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{your user-assigned managed identity name}"

Параметры центра Интернета вещей можно просмотреть с помощью следующей команды:

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

Чтобы просмотреть только параметры отправки файлов, используйте следующую команду:

az iot hub show --name {your iot hub name}
    --query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'

В большинстве случаев использование именованных параметров в командах Azure CLI проще всего; однако можно также настроить параметры отправки файлов с --set помощью параметра. Следующие команды помогут вам понять, как это сделать.

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

Необходимые компоненты

Вход и настройка учетной записи Azure

Войдите в учетную запись Azure и выберите подписку. Если вы используете Azure Cloud Shell, вы уже войдете в систему; однако вам может потребоваться выбрать подписку Azure, если у вас несколько подписок.

  1. В командной строке PowerShell выполните командлет Connect-AzAccount :

    Connect-AzAccount
    
  2. Если у вас несколько подписок Azure, вход в Azure предоставляет вам доступ ко всем подпискам Azure, связанным с вашими учетными данными. Используйте команду Get-AzSubscription для перечисления подписок Azure, доступных для использования:

    Get-AzSubscription
    

    Используйте следующую команду, чтобы выбрать подписку, которую вы хотите использовать для выполнения команд для управления центром Интернета вещей. Вы можете использовать имя подписки или идентификатор из выходных данных предыдущей команды:

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

    Примечание.

    Команда Select-AzSubscription — это псевдоним команды Select-AzContext , который позволяет использовать имя подписки (имя) или идентификатор подписки (id), возвращаемый командой Get-AzSubscription , а не более сложное имя контекста, необходимое для команды Select-AzContext .

Получение сведений о учетной записи хранения

В следующих шагах предполагается, что вы создали учетную запись хранения с помощью модели развертывания Resource Manager , а не классической модели развертывания.

Чтобы настроить отправку файлов с устройств, требуется строка подключения для учетной записи хранения Azure. Учетная запись хранения должна находиться в той же подписке, что и центр Интернета вещей. Вам также потребуется имя контейнера для блобов в учетной записи хранения. Используйте команду Get-AzStorageAccountKey , чтобы получить ключи учетной записи хранения:

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

Запишите значение ключа учетной записи хранения key1 . Вам потребуется выполнить указанные ниже действия.

Вы можете использовать существующий контейнер BLOB-объектов для отправки файлов или создать новый.

  • Чтобы перечислить существующие контейнеры объектов Blob в вашей учетной записи хранения, используйте команды New-AzStorageContext и Get-AzStorageContainer:

    $ctx = New-AzStorageContext `
        -StorageAccountName {your storage account name} `
        -StorageAccountKey {your storage account key}
    Get-AzStorageContainer -Context $ctx
    
  • Чтобы создать контейнер blob в вашей учетной записи хранения, используйте команды New-AzStorageContext и New-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-хаб с использованием данных вашей учетной записи хранения.

Для конфигурации требуются следующие значения:

  • Контейнер хранения: контейнер для BLOB-объектов в учётной записи Azure в текущей подписке Azure для ассоциации с вашим IoT-хабом. Вы получили необходимые сведения об учетной записи хранения в предыдущем разделе. Центр Интернета вещей автоматически генерирует универсальные коды ресурсов (URI) подписанных URL-адресов с разрешениями на запись в этом контейнере больших двоичных объектов, чтобы устройства могли их использовать во время передач файлов.

  • Получение уведомлений для отправленных файлов: включение или отключение уведомлений о отправке файлов.

  • SAS TTL (Срок жизни SAS). Этот параметр определяет срок жизни универсальных кодов ресурса (URI) SAS, возвращаемых Центром Интернета вещей на устройство. Установите значение в один час по умолчанию.

  • File notification settings default TTL (Стандартный срок жизни уведомления о файле). Это срок жизни уведомления об отправке файла. По умолчанию задано значение один день.

  • File notification maximum delivery count(Максимальное число доставок уведомления о файле): число попыток доставки уведомления о передаче файла, предпринимаемых Центром Интернета вещей. Установите значение 10 по умолчанию.

Используйте команду Set-AzIotHub , чтобы настроить параметры отправки файлов в Центре Интернета вещей:

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

Примечание.

По умолчанию Центр Интернета вещей проходит проверку подлинности в службе хранилища Azure с помощью ключа учетной записи в строке подключения. Аутентификация с использованием управляемых удостоверений, предоставленных системой или назначенных пользователем, также доступна. Функция управляемых удостоверений безопасным образом предоставляет службам Azure автоматически управляемые удостоверения в Microsoft Entra ID. Дополнительные сведения см. в статье о поддержке управляемых удостоверений в IoT Hub. В настоящее время нет параметров в команде Set-AzIotHub , чтобы задать тип проверки подлинности.