Настройка отправки файлов в Центре Интернета вещей с помощью PowerShell
В этой статье говорится о том, как настроить отправку файлов в Центре Интернета вещей с помощью PowerShell.
Чтобы использовать функцию передачи файлов в Центре Интернета вещей, сначала необходимо связать учетную запись хранения Azure и контейнер BLOB-объектов с Центром Интернета вещей. Центр Интернета вещей автоматически генерирует универсальные коды ресурсов (URI) подписанных URL-адресов с разрешениями на запись в этом контейнере больших двоичных объектов, чтобы устройства могли их использовать во время передач файлов. Помимо учетной записи хранения и контейнера больших двоичных объектов можно задать срок жизни для URI SAS и настроить параметры для необязательных уведомлений об отправке файлов, которые Центр Интернета вещей может передавать в серверные службы.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Необходимые компоненты
Активная учетная запись Azure. Если у вас нет учетной записи, можно создать бесплатную учетную запись всего за несколько минут.
Центр интернета вещей Azure. Если у вас нет центра Интернета вещей, можно использовать командлет New-AzIoTHub, чтобы создать его или выполнить действия, описанные в статье "Создание центра Интернета вещей".
Учетная запись хранения Azure. Создать учетную запись хранения Azure (если у вас ее еще нет) можно с помощью командлетов PowerShell службы хранилища Azure или на портале
Используйте среду PowerShell в Azure Cloud Shell.
Если вы предпочитаете, установите PowerShell локально.
- Установите модуль Azure Az PowerShell. (Этот модуль устанавливается по умолчанию в среде Azure Cloud Shell PowerShell.)
- Войдите в PowerShell с помощью команды Connect-AzAccount. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о дополнительных возможностях, доступных при входе, см. в статье Вход с помощью Azure PowerShell.
Выполнение входа и установка учетной записи Azure
Войдите в учетную запись Azure и выберите подписку. Если вы используете Azure Cloud Shell, вы уже должны войти в эту среду, однако вам все равно может понадобиться выбрать подписку Azure, если у вас их несколько.
В командной строке PowerShell выполните командлет Connect-AzAccount:
Connect-AzAccount
Если у вас есть несколько подписок Azure, то при входе в Azure вы получите доступ ко всем подпискам Azure, связанным с вашими учетными данными. Используйте команду Get-AzSubscription, чтобы просмотреть доступные для использования подписки Azure:
Get-AzSubscription
Чтобы выбрать подписку, с помощью которой будут выполняться команды для управления Центром Интернета вещей, используйте следующую команду. Вы можете использовать имя подписки или идентификатор из выходных данных предыдущей команды:
Select-AzSubscription ` -Name "{your subscription name}"
Примечание.
Команда Select-AzSubscription является псевдонимом команды Select-AzContext, которая позволяет использовать имя подписки (Name) или ID подписки (Id), возвращаемое командой Get-AzSubscription, вместо более сложного имени контекста, требуемого для команды Select-AzContext.
Получение сведений об учетной записи хранения
В следующих шагах предполагается, что для создания учетной записи хранения вы использовали модель развертывания с помощью Resource Manager, а не классическую модель развертывания.
Для настройки отправки файлов с ваших устройств необходима строка подключения учетной записи хранения Azure. Эта учетная запись хранения должна относиться к той же подписке, что и Центр Интернета вещей. Кроме того, вам понадобится имя контейнера BLOB-объектов в учетной записи хранения. Получите ключи учетной записи хранения с помощью команды 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
Настройка Центра Интернета вещей
Теперь с помощью данных учетной записи хранения можно настроить Центр Интернета вещей для отправки файлов в Центр Интернета вещей.
Для настройки потребуются следующие значения:
Контейнер хранилища. Контейнер BLOB-объектов в учетной записи хранения Azure в текущей подписке Azure, который нужно связать с Центром Интернета вещей. Необходимые сведения об учетной записи хранения вы получили в предыдущем разделе. Центр Интернета вещей автоматически генерирует универсальные коды ресурсов (URI) подписанных URL-адресов с разрешениями на запись в этом контейнере больших двоичных объектов, чтобы устройства могли их использовать во время передач файлов.
Receive notifications for uploaded files (Получать уведомления об отправленных файлах). Включите или отключите уведомления об отправке файлов.
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. Дополнительные сведения см. в статье Поддержка управляемых удостоверений для Центра Интернета вещей. В настоящее время в команде Set-AzIotHub отсутствуют параметры для выбора типа проверки подлинности. Вместо этого можно использовать портал Azure или Azure CLI.