Configurar carregamentos de arquivos do Hub IoT usando o PowerShell

Este artigo mostra como configurar carregamentos de arquivos em seu hub IoT usando o PowerShell.

Para usar a funcionalidade de carregamento de arquivo 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 URIs SAS com permissões de gravação para esse contêiner de blob para os dispositivos usarem quando carregarem arquivos. Além da conta de armazenamento e do contêiner de blob, você pode definir o tempo de vida útil para o URI SAS e definir configurações para as notificações opcionais de carregamento de arquivos que o Hub IoT pode fornecer aos serviços de back-end.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Entre e defina sua conta do Azure

Inicie sessão na sua conta do Azure e selecione a sua subscrição. Se você estiver usando o Azure Cloud Shell, já deve estar conectado; no entanto, você ainda precisará selecionar sua assinatura do Azure se tiver várias assinaturas.

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

    Connect-AzAccount
    
  2. Se tiver várias subscrições do Azure, iniciar sessão no Azure concede-lhe acesso a todas as subscrições do Azure associadas às suas credenciais. Use o comando Get-AzSubscription para listar as assinaturas do Azure disponíveis para uso:

    Get-AzSubscription
    

    Use o comando a seguir para selecionar a assinatura que você deseja usar para executar os comandos para gerenciar seu hub IoT. Pode utilizar o nome ou o ID da subscrição da saída do comando anterior:

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

    Nota

    O comando Select-AzSubscription é um alias do Select-AzContext que permite usar o nome da assinatura (Name) ou a ID da assinatura (Id) retornados pelo comando Get-AzSubscription em vez do nome de contexto mais complexo necessário para o comando Select-AzContext.

Recuperar 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 carregamentos de arquivos de seus dispositivos, você precisa da cadeia de conexão para uma conta de armazenamento do Azure. A conta de armazenamento deve estar na mesma 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 da chave da conta de armazenamento key1 . Você precisa dele nas etapas a seguir.

Você pode usar um contêiner de blob existente para seus uploads de arquivos 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 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 carregar 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 em sua assinatura atual do Azure para associar ao seu hub IoT. Você recuperou as informações necessárias da conta de armazenamento na seção anterior. O Hub IoT gera automaticamente URIs SAS com permissões de gravação para esse contêiner de blob para os dispositivos usarem quando carregarem arquivos.

  • Receber notificações de ficheiros carregados: ative ou desative as notificações de carregamento de ficheiros.

  • TTL SAS: essa configuração é o tempo de vida útil dos URIs SAS retornados ao dispositivo pelo Hub IoT. Defina como uma hora por padrão.

  • Configurações de notificação de arquivo TTL padrão: o tempo de vida útil de uma notificação de upload de arquivo antes de expirar. Definido como um dia por padrão.

  • Contagem máxima de entrega de notificação de arquivo: o número de vezes que o Hub IoT tenta entregar uma notificação de carregamento de arquivo. Definido como 10 por padrão.

Use o comando Set-AzIotHub para definir as configurações de upload de arquivos em 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

Nota

Por padrão, o Hub IoT se autentica com o Armazenamento do 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 geridas proporcionam aos serviços do Azure uma identidade gerida automaticamente no Microsoft Entra ID de forma segura. Para saber mais, consulte Suporte do Hub IoT para identidades gerenciadas. Atualmente, 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óximos passos