Configurar uploads de arquivo do Hub IoT usando o PowerShell
Este artigo mostra como configurar carregamentos de arquivo no Hub IoT usando o PowerShell.
Para usar a funcionalidade de upload de arquivos no Hub IoT, você deve primeiro associar uma conta de Armazenamento do Azure e um contêiner de blob ao seu Hub IoT. O Hub IoT gera automaticamente os URIs de SAS com permissões de gravação para esse contêiner de blob para dispositivos a serem usados ao carregar arquivos. Além da conta de armazenamento e do contêiner de blobs, você pode definir a vida útil para o URI de SAS e definir as configurações para as notificações de upload de arquivo opcionais que o Hub IoT pode entregar aos serviços de back-end.
Observação
Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.
Pré-requisitos
Uma conta ativa do Azure. Se você não tem uma conta, pode criar uma conta gratuita em apenas alguns minutos.
Um Hub IoT do Azure. Se você não tiver um hub IoT, poderá usar o cmdlet New-AzIoTHub para criar um ou siga as etapas em Criar um hub IoT.
Uma conta de armazenamento do Azure. Se você não tiver uma conta de armazenamento do Azure, você pode usar o cmdlets do PowerShell do armazenamento do Azure para criar uma ou usar o portal para criar uma conta de armazenamento
Use o ambiente do PowerShell no Azure Cloud Shell.
Se preferir, instale o PowerShell localmente.
- Instale o módulo Az PowerShell do Azure. (O módulo é instalado por padrão no ambiente de PowerShell do Azure Cloud Shell.)
- Entre no PowerShell usando o comando Connect-AzAccount. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para mais opções de entrada, confira Entrar com o Azure PowerShell.
Entre e configure sua conta do Azure
Entre na sua conta do Azure e selecione sua assinatura. Se estiver usando Azure Cloud Shell, você já deve estar conectado; no entanto, ainda pode precisar escolher sua assinatura do Azure se tiver várias assinaturas.
No prompt do PowerShell, execute o cmdlet Connect-AzAccount:
Connect-AzAccount
Caso tenha várias assinaturas do Azure, entrar no Azure concede a você acesso a todas as assinaturas do Azure associadas às suas credenciais. Use o comando Get-AzSubscription para listar as assinaturas do Azure disponíveis para você:
Get-AzSubscription
Use o comando a seguir para selecionar a assinatura que você deseja usar para executar os comandos para gerenciar seu hub IoT. Você pode usar a ID ou nome da assinatura da saída do comando anterior:
Select-AzSubscription ` -Name "{your subscription name}"
Observação
O comando Select-AzSubscription é um alias do Select-AzContext que permite que você use o nome da assinatura (Nome) ou a ID da assinatura (ID) retornado pelo comando Get-AzSubscription em vez do nome de contexto mais complexo necessário para o comando Select-AzContext.
Recupere os detalhes da sua conta de armazenamento
As etapas a seguir pressupõem que você criou sua conta de armazenamento usando o modelo de implantação do Resource Manager e não o modelo de implantação Clássico.
Para configurar os uploads de arquivos dos seus dispositivos, você precisa da cadeia de conexão de uma conta de armazenamento do Azure. A conta de armazenamento deve estar nas mesmas região e assinatura que seu Hub IoT. Você também precisa do nome de um contêiner de blob na conta de armazenamento. Use o comando Get-AzStorageAccountKey para recuperar as chaves da conta de armazenamento:
Get-AzStorageAccountKey `
-Name {your storage account name} `
-ResourceGroupName {your storage account resource group}
Anote o valor de chave de conta de armazenamento key1. Ele é necessário nas etapas a seguir.
Você pode usar um contêiner de blob existente para os uploads de arquivo ou criar um novo:
Para listar os contêineres de blob existentes em sua conta de armazenamento, use os comandos New-AzStorageContext e Get-AzStorageContainer:
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} Get-AzStorageContainer -Context $ctx
Para criar um contêiner de blob existentes em sua conta de armazenamento, use os comandos New-AzStorageContext e 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
Configurar seu Hub IoT
Agora você pode configurar seu hub IoT para fazer upload de arquivos para o hub IoT usando os detalhes da sua conta de armazenamento.
A configuração requer os seguintes valores:
Contêiner de armazenamento: um contêiner de blob em uma conta de armazenamento do Azure na assinatura atual do Azure para associar ao Hub IoT. Você recuperou as informações da conta de armazenamento necessárias na seção anterior. O Hub IoT gera automaticamente os URIs de SAS com permissões de gravação para esse contêiner de blob para dispositivos a serem usados ao carregar arquivos.
Receber notificações para os arquivos carregados: habilitar ou desabilitar notificações de upload de arquivo.
TTL de SAS: essa configuração é o tempo de vida dos URIs de SAS retornados para o dispositivo pelo Hub IoT. Defina como uma hora por padrão.
TTL de configurações de notificação de arquivo padrão: o tempo de vida de uma notificação de upload de arquivo antes de sua expiração. Defina como um dia por padrão.
Contagem de entrega máxima de notificação de arquivo: o número de vezes que o Hub IoT tenta entregar uma notificação de carregamento de arquivo. Defina como 10 por padrão.
Use o comando Set-AzIotHub para definir as configurações de upload de arquivo no seu hub 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
Observação
Por padrão, o Hub IoT é autenticado com o Armazenamento do Microsoft Azure usando a chave de conta na cadeia de conexão. A autenticação usando identidades gerenciadas atribuídas pelo sistema ou pelo usuário também está disponível. As identidades gerenciadas fornecem aos serviços do Azure uma identidade gerenciada automaticamente no Microsoft Entra ID de forma segura. Para saber como, confira Suporte do Hub IoT a identidades gerenciadas. No momento, não há parâmetros no comando Set-AzIotHub para definir o tipo de autenticação. Em vez disso, você pode usar o portal do Azure ou a CLI do Azure.