Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
La configuration des chargements de fichiers dans votre hub IoT permet à vos appareils connectés de charger des fichiers dans un compte de stockage Azure. Cet article explique comment configurer des chargements de fichiers sur votre hub IoT à l’aide du portail Azure, d’Azure CLI et d’Azure PowerShell.
Pour utiliser la fonctionnalité de chargement de fichiers dans IoT Hub, vous devez d’abord associer un compte de stockage Azure et un conteneur de blobs à votre hub IoT. IoT Hub génère automatiquement des URI SAS avec des autorisations d’écriture pour ce conteneur d’objets blob pour les appareils à utiliser lorsqu’ils chargent des fichiers. En plus du compte de stockage et du conteneur blob, vous pouvez définir la durée de vie de l’URI SAS et le type d’authentification que IoT Hub utilise avec le stockage Azure. Vous pouvez également configurer les paramètres des notifications de chargement de fichiers facultatives que IoT Hub peut remettre aux services principaux.
Prérequis
Un compte Azure actif. Si vous ne possédez pas de compte, vous pouvez créer un compte gratuit en quelques minutes.
Un hub IoT dans votre abonnement Azure. Si vous n’avez pas encore de hub, vous pouvez suivre les étapes décrites dans Créer un hub IoT.
Configurer votre hub IoT dans le portail Azure
Dans le portail Azure, accédez à votre hub IoT et sélectionnez Chargement de fichiers pour afficher les propriétés de chargement de fichiers. Puis sélectionnez Conteneur de stockage Azure sous paramètres du Conteneur de stockage.
Sélectionnez un compte de Stockage et un conteneur d’objets blob Azure dans votre abonnement actuel à associer à votre hub IoT. Si nécessaire, vous pouvez créer un compte de Stockage Azure dans le volet Comptes de stockage et un conteneur d’objets blob dans le volet Conteneurs.
Après avoir sélectionné un compte Stockage Azure et un conteneur d’objets blob, configurez le reste des propriétés de chargement de fichiers.
Recevoir des notifications pour les fichiers chargés: activez ou désactivez les notifications de chargement de fichiers.
SAS TTL: ce paramètre est la durée de vie des URI de signature d’accès partagé renvoyés à l’appareil par IoT Hub. Il est défini par défaut sur une heure, mais il peut être personnalisé avec d’autres valeurs à l’aide du curseur.
Durée de vie par défaut des paramètres de notification de fichiers: la durée de vie d’une notification de chargement avant son expiration. Il est défini par défaut sur un jour, mais il peut être personnalisé avec d’autres valeurs à l’aide du curseur.
Nombre maximal de remises de notifications de fichier: le nombre de tentatives de remise d’une notification de chargement de fichier par l’IoT Hub. Il est défini par défaut sur 10, mais il peut être personnalisé avec d’autres valeurs à l’aide du curseur.
Type d’authentification : par défaut, Azure IoT Hub utilise l’authentification basée sur les clés pour la connexion et l’autorisation avec le Stockage Azure. Vous pouvez également configurer des identités managées affectées par l’utilisateur ou affectées par le système pour authentifier Azure IoT Hub avec le Stockage Azure. Les identités gérées fournissent aux services Azure une identité gérée automatiquement dans Microsoft Entra ID de manière sécurisée. Pour savoir comment configurer des identités managées, consultez Prise en charge IoT Hub pour les identités managées. Une fois que vous avez configuré une ou plusieurs identités managées sur votre compte de Stockage et votre hub IoT Azure, vous pouvez en sélectionner une pour l’authentification avec le Stockage Azure à l’aide des boutons Affectée par le système ou Affectée par l’utilisateur buttons.
Remarque
Le paramètre du type d’authentification configure la manière dont votre hub IoT s’authentifie avec votre compte de stockage Azure. Les appareils s’authentifient toujours avec le stockage Azure à l’aide de l’URI SAS qu’ils obtiennent du hub IoT.
Sélectionnez Save (Enregistrer) pour enregistrer vos paramètres. Veillez à vérifier la confirmation pour une opération réussie. Certaines sélections, comme le Type d’authentification, sont uniquement disponibles après la sauvegarde de vos paramètres.
Prérequis
Un compte Azure actif. Si vous ne possédez pas de compte, vous pouvez créer un compte gratuit en quelques minutes.
Un hub IoT dans votre abonnement Azure. Si vous n’avez pas encore de hub, vous pouvez suivre les étapes décrites dans Créer un hub IoT.
Compte Stockage Azure avec conteneur d’objets blob. Si vous n’avez pas de compte de stockage Azure, vous pouvez utiliser Azure CLI pour en créer un. Pour plus d’informations, consultez Créer un compte de stockage.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’Azure Cloud Shell.
Si vous préférez exécuter des commandes de référence CLI localement, installez Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Comment exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser et gérer des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Connectez-vous et définissez votre compte Azure
Vous connecter à votre compte Azure et sélectionner votre abonnement. Si vous utilisez Azure Cloud Shell, vous devez être déjà connecté ; Toutefois, vous devrez peut-être toujours sélectionner votre abonnement Azure si vous avez plusieurs abonnements.
À l’invite de commandes, exécutez la commande de connexion :
az loginSuivez les instructions pour vous authentifier à l’aide du code et vous connecter à votre compte Azure via un navigateur web.
Si vous possédez plusieurs abonnements Azure, la connexion à Azure vous donne accès à tous les abonnements Azure associés à vos informations d’identification. Utilisez la commande pour répertorier les comptes Azure ci-dessous :
az account listUtilisez la commande suivante pour sélectionner l’abonnement que vous souhaitez utiliser pour exécuter les commandes pour créer votre hub IoT. Vous pouvez utiliser le nom de l’abonnement ou l’ID de la sortie de la commande précédente :
az account set --subscription {your subscription name or id}
Configurer l’accès du compte de stockage
Les étapes suivantes supposent que vous avez créé votre compte de stockage à l’aide du modèle de déploiement Resource Manager , et non du modèle de déploiement Classique .
Pour configurer les chargements de fichiers à partir de vos appareils, vous devez accorder à votre hub IoT des autorisations d’accès au compte de stockage Azure. Le compte de stockage doit se trouver dans le même abonnement que votre hub IoT. Vous avez également besoin du nom d’un conteneur d’objets blob dans le compte de stockage.
Vous pouvez utiliser l’authentification basée sur des clés ou basée sur une identité pour fournir des autorisations d’accès. Microsoft recommande l’authentification basée sur l’identité comme option plus sécurisée.
Authentification basée sur une clé
Pour l’authentification basée sur des clés, fournissez la chaîne de connexion de votre compte de stockage. Utilisez la commande az storage account show-connection-string pour récupérer vos clés de compte de stockage.
Notez la valeur de connectionString. La chaîne de connexion est similaire à la sortie suivante :
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your_storage_account_name};AccountKey={your_storage_account_key}"
}
Authentification basée sur l’identité
Vous pouvez utiliser des identités managées affectées par le système ou des identités managées affectées par l’utilisateur pour l’authentification basée sur l’identité. Pour plus d’informations, consultez la prise en charge des identités gérées dans IoT Hub.
Utilisez la commande az role assignment create pour affecter un rôle à votre identité managée. Pour plus d’informations, consultez Affecter un rôle Azure pour accéder aux données de blob.
Configuration de votre IoT Hub
Vous pouvez maintenant configurer votre hub IoT pour permettre de charger des fichiers vers le hub IoT à l’aide des détails de votre compte de stockage.
La configuration nécessite les valeurs suivantes :
Conteneur de stockage : un conteneur d'objets blob situé dans un compte de stockage Azure de votre abonnement Azure actuel, destiné à être associé à votre hub IoT. Vous avez récupéré les informations de compte de stockage nécessaires dans la section précédente. IoT Hub génère automatiquement des URI SAS avec des autorisations d’écriture pour ce conteneur d’objets blob pour les appareils à utiliser lorsqu’ils chargent des fichiers.
Recevoir des notifications pour les fichiers chargés : activer ou désactiver les notifications de chargement de fichiers.
SAS TTL: ce paramètre est la durée de vie des URI de signature d’accès partagé renvoyés à l’appareil par IoT Hub. Défini sur une heure par défaut.
Paramètres par défaut de notification de fichier TTL : la durée de vie (TTL) d'une notification de chargement de fichier avant son expiration. Défini sur un jour par défaut.
Nombre maximal de remises de notifications de fichier: le nombre de tentatives de remise d’une notification de chargement de fichier par l’IoT Hub. Défini sur 10 par défaut.
Durée du verrou de notification de fichier : durée de verrouillage de la file d’attente de notification de fichier. Défini sur 60 secondes par défaut.
Type d’authentification : type d’authentification pour IoT Hub à utiliser avec Stockage Azure. Ce paramètre détermine la façon dont votre hub IoT s’authentifie et autorise auprès du stockage Azure. La valeur par défaut est l’authentification basée sur des clés ; Toutefois, les options d’authentification d’identité managée attribuées par le système ou attribuées par l’utilisateur sont recommandées. Les identités gérées fournissent aux services Azure une identité gérée automatiquement dans Microsoft Entra ID de manière sécurisée.
Remarque
Le paramètre du type d’authentification configure la manière dont votre hub IoT s’authentifie avec votre compte de stockage Azure. Les appareils s’authentifient toujours avec le stockage Azure à l’aide de l’URI SAS qu’ils obtiennent du hub IoT.
Les commandes suivantes montrent comment configurer les paramètres de chargement de fichiers sur votre hub IoT. Ces commandes sont affichées séparément pour plus de clarté, mais, en règle générale, vous émettez une seule commande avec tous les paramètres requis pour votre scénario. Incluez des guillemets là où ils apparaissent dans la ligne de commande. N’incluez pas les accolades. Vous trouverez plus d’informations sur chaque paramètre dans la documentation Azure CLI pour la commande az iot hub update .
La commande suivante configure le compte de stockage et le conteneur 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}"
La commande suivante définit la durée de vie de l’URI SAS sur la valeur par défaut (une heure).
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
La commande suivante active les notifications de fichier et définit les propriétés de notification de fichier sur leurs valeurs par défaut. (L’heure de notification de chargement du fichier est définie sur une heure et la durée du verrouillage est définie sur 60 secondes.)
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
La commande suivante configure l’authentification basée sur des clés :
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
La commande suivante configure l’authentification à l’aide de l’identité managée affectée par le système du hub IoT. Avant de pouvoir exécuter cette commande, vous devez activer l’identité managée affectée par le système pour votre hub IoT et lui accorder le rôle de contrôle d’accès en fonction du rôle approprié sur votre compte de stockage Azure. Pour savoir comment, consultez Support des identités managées par IoT Hub.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
Les commandes suivantes récupèrent les identités managées affectées par l’utilisateur configurées sur votre hub IoT et configurent l’authentification avec l’une d’elles. Avant de pouvoir utiliser une identité managée affectée par l’utilisateur pour s’authentifier, elle doit être configurée sur votre hub IoT et accorder un rôle de contrôle d’accès en fonction du rôle approprié sur votre compte de stockage Azure. Pour plus d’informations et des étapes, consultez la prise en charge d’IoT Hub pour les identités managées.
Pour rechercher des identités managées affectées par l’utilisateur sur votre hub IoT, utilisez la commande az iot hub identity show .
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
La commande retourne une collection des identités managées affectées par l’utilisateur configurées sur votre hub IoT. La sortie suivante montre une collection qui contient une seule identité managée affectée par l’utilisateur.
{
"/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>"
}
}
La commande suivante configure l’authentification pour utiliser l’identité affectée par l’utilisateur ci-dessus.
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}"
Vous pouvez consulter les paramètres sur votre hub IoT à l’aide de la commande suivante :
az iot hub show --name {your iot hub name}
Pour passer en revue uniquement les paramètres de chargement de fichiers, utilisez la commande suivante :
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
Pour la plupart des situations, l’utilisation des paramètres nommés dans les commandes Azure CLI est la plus simple ; Toutefois, vous pouvez également configurer les paramètres de chargement de fichiers avec le --set paramètre. Les commandes suivantes peuvent vous aider à comprendre comment procéder.
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érequis
Un compte Azure actif. Si vous ne possédez pas de compte, vous pouvez créer un compte gratuit en quelques minutes.
Un Azure IoT Hub. Si vous n’avez pas de hub IoT, vous pouvez utiliser l’applet de commandeNew-AzIoTHub pour en créer une ou suivre les étapes décrites dans Créer un hub IoT.
Un compte de stockage Azure. Si vous n’avez pas de compte de stockage Azure, vous pouvez utiliser les applets de commande Azure Storage PowerShell pour en créer un ou utiliser le portail pour créer un compte de stockage.
Utilisez l’environnement PowerShell dans Azure Cloud Shell.
Si vous préférez, installez PowerShell localement.
- Installez le module Azure Az PowerShell. (Le module est installé par défaut dans l’environnement PowerShell Azure Cloud Shell.)
- Connectez-vous à PowerShell à l’aide de la commande Connect-AzAccount . Pour terminer le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour obtenir des options de connexion supplémentaires, consultez Se connecter avec Azure PowerShell.
Connectez-vous et définissez votre compte Azure
Vous connecter à votre compte Azure et sélectionner votre abonnement. Si vous utilisez Azure Cloud Shell, vous devez être déjà connecté ; Toutefois, vous devrez peut-être toujours sélectionner votre abonnement Azure si vous avez plusieurs abonnements.
À l’invite PowerShell, exécutez le cmdlet Connect-AzAccount :
Connect-AzAccountSi vous avez plusieurs abonnements Azure, la connexion à Azure vous accorde l’accès à tous les abonnements Azure associés à vos informations d’identification. Utilisez la commande Get-AzSubscription pour répertorier les abonnements Azure disponibles pour vous permettre d’utiliser :
Get-AzSubscriptionUtilisez la commande suivante pour sélectionner l’abonnement que vous souhaitez utiliser pour exécuter les commandes pour gérer votre hub IoT. Vous pouvez utiliser le nom de l’abonnement ou l’ID de la sortie de la commande précédente :
Select-AzSubscription ` -Name "{your subscription name}"Remarque
La commande Select-AzSubscription est un alias de Select-AzContext qui vous permet d’utiliser le nom d’abonnement (Nom) ou ID d’abonnement (ID) retourné par la commande Get-AzSubscription plutôt que le nom de contexte plus complexe requis pour la commande Select-AzContext .
Récupérer les détails de votre compte de stockage
Les étapes suivantes supposent que vous avez créé votre compte de stockage à l’aide du modèle de déploiement Resource Manager , et non du modèle de déploiement Classique .
Pour configurer les chargements de fichiers à partir de vos appareils, vous avez besoin de la chaîne de connexion pour un compte de stockage Azure. Le compte de stockage doit se trouver dans le même abonnement que votre hub IoT. Vous avez également besoin du nom d’un conteneur d’objets blob dans le compte de stockage. Utilisez la commande Get-AzStorageAccountKey pour récupérer vos clés de compte de stockage :
Get-AzStorageAccountKey `
-Name {your storage account name} `
-ResourceGroupName {your storage account resource group}
Notez la valeur de clé du compte de stockage key1 . Vous en avez besoin dans les étapes suivantes.
Vous pouvez utiliser un conteneur d’objets blob existant pour vos chargements de fichiers ou en créer un :
Pour répertorier les conteneurs d’objets blob existants dans votre compte de stockage, utilisez les commandes New-AzStorageContext et Get-AzStorageContainer :
$ctx = New-AzStorageContext ` -StorageAccountName {your storage account name} ` -StorageAccountKey {your storage account key} Get-AzStorageContainer -Context $ctxPour créer un conteneur BLOB dans votre compte de stockage, utilisez les commandes New-AzStorageContext et 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
Configuration de votre IoT Hub
Vous pouvez maintenant configurer votre hub IoT pour charger des fichiers vers le hub IoT à l’aide des détails de votre compte de stockage.
La configuration nécessite les valeurs suivantes :
Conteneur de stockage : un conteneur d'objets blob situé dans un compte de stockage Azure de votre abonnement Azure actuel, destiné à être associé à votre hub IoT. Vous avez récupéré les informations de compte de stockage nécessaires dans la section précédente. IoT Hub génère automatiquement des URI SAS avec des autorisations d’écriture pour ce conteneur d’objets blob pour les appareils à utiliser lorsqu’ils chargent des fichiers.
Recevoir des notifications pour les fichiers chargés : activer ou désactiver les notifications de chargement de fichiers.
SAS TTL: ce paramètre est la durée de vie des URI de signature d’accès partagé renvoyés à l’appareil par IoT Hub. Défini sur une heure par défaut.
Durée de vie par défaut des paramètres de notification de fichiers : durée de vie d’une notification de chargement avant son expiration. Défini sur un jour par défaut.
Nombre maximal de remises de notifications de fichier: le nombre de tentatives de remise d’une notification de chargement de fichier par l’IoT Hub. Défini sur 10 par défaut.
Utilisez la commande Set-AzIotHub pour configurer les paramètres de chargement de fichiers sur votre 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
Remarque
Par défaut, IoT Hub s’authentifie auprès du stockage Azure à l’aide de la clé de compte dans la chaîne de connexion. L’authentification à l’aide d’identités managées affectées par le système ou attribuées par l’utilisateur est également disponible. Les identités gérées fournissent aux services Azure une identité gérée automatiquement dans Microsoft Entra ID de manière sécurisée. Pour en savoir plus, consultez la prise en charge d’IoT Hub pour les identités managées. Actuellement, il n’existe pas de paramètres sur la commande Set-AzIotHub pour définir le type d’authentification.