Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Configurar o carregamento de ficheiros no seu hub IoT permite que os seus dispositivos conectados carreguem ficheiros para uma conta de armazenamento Azure. Este artigo mostra-lhe como configurar o carregamento de ficheiros no seu hub IoT usando o portal Azure, Azure CLI e Azure 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 o tipo de autenticação que o Hub IoT usa com o armazenamento do Azure. Você também pode definir configurações para as notificações de carregamento de arquivo opcionais que o Hub IoT pode fornecer aos serviços de back-end.
Pré-requisitos
Uma conta ativa do Azure. Se não tiver uma conta, pode criar uma conta gratuita em apenas alguns minutos.
Um hub IoT em sua assinatura do Azure. Se você ainda não tiver um hub, siga as etapas em Criar um hub IoT.
Configure o seu hub IoT no portal Azure
No portal do Azure, navegue até seu hub IoT e selecione Carregamento de arquivo para exibir as propriedades de carregamento de arquivo. Em seguida, selecione Contêiner de Armazenamento do Azure em Configurações de contêiner de armazenamento.
Selecione uma conta de Armazenamento do Azure e um contêiner de blob em sua assinatura atual para associar ao seu hub IoT. Se necessário, você pode criar uma conta de Armazenamento do Azure no painel Contas de armazenamento e criar um contêiner de blob no painel Contêineres.
Depois de selecionar uma conta de Armazenamento do Azure e um contêiner de blob, configure o restante das propriedades de carregamento de arquivo.
Receber notificações de ficheiros carregados: ative ou desative as notificações de carregamento de ficheiros através do botão de alternância.
TTL SAS: essa configuração é o tempo de vida útil dos URIs SAS retornados ao dispositivo pelo Hub IoT. Definido como uma hora por padrão, mas pode ser personalizado para outros valores usando o controle deslizante.
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, mas pode ser personalizado para outros valores usando o controle deslizante.
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, mas pode ser personalizado para outros valores usando o controle deslizante.
Tipo de autenticação: por padrão, o Hub IoT do Azure usa a autenticação baseada em chave para se conectar e autorizar com o Armazenamento do Azure. Você também pode configurar identidades gerenciadas atribuídas pelo usuário ou pelo sistema para autenticar o Hub IoT do Azure com o Armazenamento do Azure. As identidades geridas proporcionam aos serviços do Azure uma identidade gerida automaticamente no Microsoft Entra ID de forma segura. Para saber como configurar identidades gerenciadas, consulte Suporte do Hub IoT para identidades gerenciadas. Depois de configurar uma ou mais identidades gerenciadas em sua conta de Armazenamento do Azure e hub IoT, você pode selecionar uma para autenticação com o armazenamento do Azure com os botões Atribuído pelo Sistema ou Atribuído pelo Usuário.
Nota
A configuração de tipo de autenticação define como seu hub IoT é autenticado com sua conta de Armazenamento do Azure. Os dispositivos sempre se autenticam no Armazenamento do Azure usando o URI SAS que obtêm do hub IoT.
Selecione Guardar para guardar as definições. Certifique-se de verificar a confirmação para a conclusão bem-sucedida. Algumas seleções, como Tipo de autenticação, são validadas somente depois que você salva as configurações.
Pré-requisitos
Uma conta ativa do Azure. Se não tiver uma conta, pode criar uma conta gratuita em apenas alguns minutos.
Um hub IoT em sua assinatura do Azure. Se você ainda não tiver um hub, siga as etapas em Criar um hub IoT.
Uma conta Azure Storage com um contentor de blobs. Se não tiver uma conta Azure Storage, pode usar a CLI Azure para criar uma. Para obter mais informações, veja Criar uma conta de armazenamento.
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Inicie sessão e defina a sua conta Azure
Inicie sessão na sua conta do Azure e selecione a sua subscrição. Se estiveres a usar Azure Cloud Shell, já deves estar com a sessão iniciada; no entanto, ainda podes precisar de selecionar a tua subscrição do Azure se tiveres várias subscrições.
No prompt de comandos, execute o comando de login:
az loginSiga as instruções para se autenticar com o código e inicie sessão na sua conta do Azure através de um browser.
Se tiver várias subscrições do Azure, iniciar sessão no Azure dá-lhe acesso a todas as contas do Azure associadas às suas credenciais. Utilize o comando para listar as contas do Azure disponíveis e que pode utilizar:
az account listUse o comando seguinte para selecionar a subscrição que pretende usar para executar os comandos que criam o seu hub IoT. Pode utilizar o nome ou o ID da subscrição da saída do comando anterior:
az account set --subscription {your subscription name or id}
Configurar o acesso à conta de armazenamento
Os passos seguintes assumem que criou a sua conta de armazenamento usando o modelo de implementação Resource Manager e não o Classic.
Para configurar o carregamento de ficheiros a partir dos seus dispositivos, precisa de dar permissões de acesso ao seu hub IoT à conta Azure Storage. A conta de armazenamento deve estar na mesma subscrição do seu hub IoT. Também precisa do nome de um contentor de blob na conta de armazenamento.
Pode usar autenticação baseada em chave ou em identidade para fornecer permissões de acesso. A Microsoft recomenda a autenticação baseada em identidade como uma opção mais segura.
Autenticação baseada em chave
Para autenticação baseada em chaves, forneça a cadeia de ligação para a sua conta de armazenamento. Use o comando az storage account show-connection-string para recuperar as chaves da sua conta de armazenamento.
Anote o valor connectionString. A cadeia de ligação assemelha-se à seguinte saída:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}
Autenticação baseada em identidade
Pode usar identidades geridas atribuídas pelo sistema ou identidades geridas atribuídas pelo utilizador para autenticação baseada em identidade. Para mais informações, consulte o suporte IoT Hub para identidades geridas.
Usa o comando az role assignment create para atribuir uma função à sua identidade gerida. Para obter mais informações, veja Atribuir uma função do Azure para acesso aos dados de blobs.
Configurar seu hub IoT
Agora pode configurar o seu hub IoT para permitir o upload de ficheiros para o hub IoT usando os dados da sua conta de armazenamento.
A configuração requer os seguintes valores:
Contentor de armazenamento: Um contentor blob numa conta de armazenamento Azure na sua assinatura atual Azure para associar ao seu hub IoT. Obteve 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 para 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. Definido para uma hora por padrão.
TTL predefinido das definições de notificação de ficheiro: O tempo de vida útil de uma notificação de carregamento de ficheiro antes de expirar. Definido para 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 para 10 por padrão.
Duração do bloqueio de notificação de ficheiro: A duração do bloqueio da fila de notificações de ficheiros. Definido para 60 segundos por defeito.
Tipo de autenticação: O tipo de autenticação para o IoT Hub a usar com o Azure Storage. Esta configuração determina como o seu hub IoT se autentica e autoriza com o Azure Storage. O padrão é a autenticação baseada em chaves; no entanto, recomendam-se as opções de autenticação de identidade gerida atribuídas pelo sistema ou pelo utilizador. As identidades geridas proporcionam aos serviços do Azure uma identidade gerida automaticamente no Microsoft Entra ID de forma segura.
Nota
A configuração de tipo de autenticação define como seu hub IoT é autenticado com sua conta de Armazenamento do Azure. Os dispositivos sempre se autenticam no Armazenamento do Azure usando o URI SAS que obtêm do hub IoT.
Os comandos seguintes mostram como configurar as definições de upload de ficheiros no seu hub IoT. Estes comandos são mostrados separadamente para maior clareza, mas, normalmente, seria emitido um único comando com todos os parâmetros necessários para o seu cenário. Inclua aspas onde aparecem na linha de comandos. Não inclua as chaves. Mais detalhes sobre cada parâmetro podem ser encontrados na documentação do Azure CLI para o comando az iot hub update .
O comando seguinte configura a conta de armazenamento e o contentor do 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}"
O comando seguinte define o tempo de vida do URI SAS para o padrão de uma hora.
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
O comando seguinte ativa notificações de ficheiros e define as propriedades das notificações para os seus valores predefinidos. (O tempo de vida (TTL) da notificação de upload do ficheiro está definido para uma hora e o tempo de duração do bloqueio está definido para 60 segundos.)
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
O seguinte comando configura a autenticação baseada em chaves:
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
O comando seguinte configura a autenticação usando a identidade gerida atribuída ao sistema do hub IoT. Antes de poder executar este comando, precisa de ativar a identidade gerida atribuída pelo sistema para o seu hub IoT e conceder-lhe o papel correto de controlo de acesso baseado em função na sua conta Azure Storage. Para saber como, consulte o suporte IoT Hub para identidades geridas.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
Os comandos seguintes recuperam as identidades geridas atribuídas pelo utilizador configuradas no seu hub IoT e configuram a autenticação com uma delas. Antes de poder usar uma identidade gerida atribuída pelo utilizador para autenticação, esta deve estar configurada no seu hub IoT e receber um papel de controlo de acesso baseado em funções apropriado na sua conta Azure Storage. Para mais detalhes e etapas, consulte o suporte IoT Hub para identidades geridas.
Para obter informações sobre as identidades geridas atribuídas pelo utilizador no seu hub IoT, use o comando az iot hub identity show.
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
O comando devolve uma coleção das identidades geridas atribuídas pelo utilizador configuradas no seu hub IoT. A saída seguinte mostra uma coleção que contém uma única identidade gerida atribuída pelo utilizador.
{
"/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>"
}
}
O comando seguinte configura a autenticação para usar a identidade atribuída pelo utilizador acima.
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}"
Pode rever as definições do seu hub IoT usando o seguinte comando:
az iot hub show --name {your iot hub name}
Para rever apenas as definições de carregamento do ficheiro, use o seguinte comando:
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
Para a maioria das situações, usar os parâmetros nomeados nos comandos do Azure CLI é o mais fácil; No entanto, também pode configurar as definições de upload de ficheiros com o --set parâmetro. Os seguintes comandos podem ajudá-lo a perceber como.
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
Pré-requisitos
Uma conta ativa do Azure. Se não tiver uma conta, pode criar uma conta gratuita em apenas alguns minutos.
Um hub IoT do Azure. Se não tiver um hub IoT, pode usar o New-AzIoTHub cmdlet para criar um ou seguir os passos em Criar um hub IoT.
Uma conta de armazenamento do Azure. Se não tiver uma conta de armazenamento Azure, pode usar os cmdlets PowerShell do Azure Storage para criar uma ou usar o portal para criar uma conta de armazenamento.
Use o ambiente do PowerShell no Azure Cloud Shell.
Se preferires, instala o PowerShell localmente.
- Instale o módulo Azure Az PowerShell. (O módulo é instalado automaticamente no ambiente Azure Cloud Shell PowerShell.)
- Inicie sessão no PowerShell usando o comando Connect-AzAccount . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para opções adicionais de iniciação de sessão, consulte Iniciar sessão com Azure PowerShell.
Inicie sessão e defina a sua conta Azure
Inicie sessão na sua conta do Azure e selecione a sua subscrição. Se estiveres a usar Azure Cloud Shell, já deves estar com a sessão iniciada; no entanto, ainda podes precisar de selecionar a tua subscrição do Azure se tiveres várias subscrições.
No prompt PowerShell, execute o cmdlet Connect-AzAccount :
Connect-AzAccountSe tiver várias subscrições Azure, iniciar sessão no Azure dá-lhe acesso a todas as subscrições Azure associadas às suas credenciais. Use o comando Get-AzSubscription para listar as subscrições Azure disponíveis para usar:
Get-AzSubscriptionUse o comando seguinte para selecionar a subscrição que pretende usar para executar os comandos que gerem o 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 subscrição (Name) ou o ID da subscrição (Id) devolvido pelo comando Get-AzSubscription , em vez do nome de contexto mais complexo exigido para o comando Select-AzContext .
Recupere os detalhes da sua conta de armazenamento
Os passos seguintes assumem que criou a sua conta de armazenamento usando o modelo de implementação Resource Manager e não o Classic.
Para configurar o carregamento de ficheiros a partir dos seus dispositivos, precisa da string de ligação para uma conta de armazenamento Azure. A conta de armazenamento deve estar na mesma subscrição do seu hub IoT. Também precisa do nome de um contentor de blob na conta de armazenamento. Use o comando Get-AzStorageAccountKey para recuperar as suas chaves de 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 . Precisa dela nos passos seguintes.
Pode usar um contentor de blob existente para os seus carregamentos de ficheiros ou criar um novo:
Para listar os contentores de blob existentes na 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 $ctxPara criar um contentor de blob na 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 pode configurar o seu hub IoT para carregar ficheiros no hub usando os detalhes da sua conta de armazenamento.
A configuração requer os seguintes valores:
Contentor de armazenamento: Um contentor blob numa conta de armazenamento Azure na sua assinatura atual Azure para associar ao seu hub IoT. Obteve 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 para 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. Definido para 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 para 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 para 10 por padrão.
Use o comando Set-AzIotHub para configurar as definições de upload de ficheiros 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
Nota
Por padrão, o IoT Hub autentica-se com o Azure Storage usando a chave da conta na string de conexão. A autenticação utilizando identidades geridas atribuídas pelo sistema ou pelo utilizador 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 o suporte IoT Hub para identidades geridas. Atualmente, não existem parâmetros no comando Set-AzIotHub para definir o tipo de autenticação.