Compartilhar via


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. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

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.

  1. No prompt do PowerShell, execute o cmdlet Connect-AzAccount:

    Connect-AzAccount
    
  2. 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.

Próximas etapas