Konfigurace nahrávání souborů IoT Hubu pomocí Azure CLI
V tomto článku se dozvíte, jak nakonfigurovat nahrávání souborů do centra IoT pomocí Azure CLI.
Pokud chcete použít funkci nahrávání souborů ve službě IoT Hub, musíte nejprve přidružit účet úložiště Azure a kontejner objektů blob ke službě IoT Hub. IoT Hub automaticky vygeneruje identifikátory URI SAS s oprávněními k zápisu do tohoto kontejneru objektů blob, aby zařízení používala při nahrávání souborů. Kromě účtu úložiště a kontejneru objektů blob můžete nastavit identifikátor URI SAS a typ ověřování, který IoT Hub používá s úložištěm Azure. Můžete také nakonfigurovat nastavení pro volitelná oznámení o nahrávání souborů, která ioT Hub dokáže doručovat do back-endových služeb.
Předpoklady
Aktivní účet Azure Pokud účet nemáte, můžete si během několika minut vytvořit bezplatný účet.
Centrum Azure IoT. Pokud nemáte centrum IoT, můžete pomocí příkazu vytvořit centrum IoT nebo vytvořit centrum IoT pomocí portálu.
az iot hub create
Účet služby Azure Storage. Pokud účet Azure Storage nemáte, můžete ho vytvořit pomocí Azure CLI. Další informace najdete v článku o vytvoření účtu úložiště.
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Poznámka:
Tento článek používá nejnovější verzi rozšíření Azure IoT, která se nazývá azure-iot
. Starší verze se nazývá azure-cli-iot-ext
. Najednou byste měli mít nainstalovanou jenom jednu verzi. Pomocí příkazu az extension list
můžete ověřit aktuálně nainstalovaná rozšíření.
Slouží az extension remove --name azure-cli-iot-ext
k odebrání starší verze rozšíření.
Slouží az extension add --name azure-iot
k přidání nové verze rozšíření.
Pokud chcete zjistit, jaká rozšíření jste nainstalovali, použijte az extension list
.
Přihlášení a nastavení účtu Azure
Přihlaste se ke svému účtu Azure a vyberte své předplatné. Pokud používáte Azure Cloud Shell, měli byste být už přihlášení; Přesto ale možná budete muset vybrat své předplatné Azure, pokud máte více předplatných.
Na příkazovém řádku spusťte příkaz pro přihlášení:
az login
Postupujte podle pokynů pro ověření pomocí kódu a přihlaste se ke svému účtu Azure ve webovém prohlížeči.
Pokud máte více předplatných Azure, přihlášením k Azure získáte přístup ke všem účtům Azure přidruženým k vašim přihlašovacím údajům. Pomocí následujícího příkazu zobrazte výpis účtů Azure, které můžete použít:
az account list
Pomocí následujícího příkazu vyberte předplatné, které chcete použít ke spuštění příkazů pro vytvoření centra IoT. Můžete použít název nebo ID předplatného z výstupu předchozího příkazu:
az account set --subscription {your subscription name or id}
Načtení podrobností o účtu úložiště
Následující kroky předpokládají, že jste účet úložiště vytvořili pomocí modelu nasazení Resource Manager , nikoli modelu nasazení Classic .
Ke konfiguraci nahrávání souborů ze zařízení potřebujete připojovací řetězec pro účet Azure Storage. Účet úložiště musí být ve stejném předplatném jako vaše centrum IoT. V účtu úložiště také potřebujete název kontejneru objektů blob. Pomocí následujícího příkazu načtěte klíče účtu úložiště:
az storage account show-connection-string --name {your storage account name} \
--resource-group {your storage account resource group}
Připojovací řetězec bude vypadat podobně jako v následujícím výstupu:
{
"connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your storage account name};AccountKey={your storage account key}"
}
Poznamenejte si hodnotu connectionString
. Potřebujete ho v následujících krocích.
Pro nahrání souboru můžete použít existující kontejner objektů blob nebo vytvořit nový:
Pokud chcete vypsat existující kontejnery objektů blob v účtu úložiště, použijte následující příkaz:
az storage container list --connection-string "{your storage account connection string}"
Pokud chcete ve svém účtu úložiště vytvořit kontejner objektů blob, použijte následující příkaz:
az storage container create --name {container name} \ --connection-string "{your storage account connection string}"
Konfigurace centra IoT
Teď můžete službu IoT Hub nakonfigurovat tak, aby umožňovala nahrávat soubory do centra IoT pomocí podrobností o účtu úložiště.
Konfigurace vyžaduje následující hodnoty:
Kontejner úložiště: Kontejner objektů blob v účtu úložiště Azure v aktuálním předplatném Azure, který se přidruží k centru IoT. V předchozí části jste načetli potřebné informace o účtu úložiště. IoT Hub automaticky vygeneruje identifikátory URI SAS s oprávněními k zápisu do tohoto kontejneru objektů blob, aby zařízení používala při nahrávání souborů.
Příjem oznámení o nahraných souborech: Povolí nebo zakáže oznámení o nahrávání souborů.
Hodnota TTL SAS: Toto nastavení je hodnota URI SAS vrácená do zařízení službou IoT Hub. Ve výchozím nastavení je nastavená na jednu hodinu.
Výchozí hodnota TTL pro nastavení oznámení o souboru: Doba trvání oznámení o nahrání souboru před vypršením jeho platnosti. Ve výchozím nastavení je nastavená na jeden den.
Maximální počet doručení oznámení o souboru: Kolikrát se IoT Hub pokusí doručit oznámení o nahrání souboru. Ve výchozím nastavení je nastavená hodnota 10.
Doba trvání uzamčení oznámení souboru: Doba trvání uzamčení fronty oznámení souboru. Ve výchozím nastavení je nastavená na 60 sekund.
Typ ověřování: Typ ověřování pro IoT Hub, který se má použít se službou Azure Storage. Toto nastavení určuje, jak se vaše centrum IoT ověřuje a autorizuje ve službě Azure Storage. Výchozí hodnota je ověřování založené na klíčích; Spravované identity přiřazené systémem a přiřazené uživatelem se ale dají použít také. Spravované identity poskytují službám Azure zabezpečeně spravovanou identitu v Microsoft Entra ID. Informace o konfiguraci spravovaných identit ve službě IoT Hub a účtu Azure Storage najdete v tématu Podpora spravovaných identit ve službě IoT Hub. Po nakonfigurování můžete jednu ze spravovaných identit nastavit tak, aby se používala k ověřování s úložištěm Azure.
Poznámka:
Nastavení typu ověřování konfiguruje, jak se vaše centrum IoT ověřuje pomocí účtu služby Azure Storage. Zařízení se vždy ověřují pomocí identifikátoru URI SAS, který získávají z centra IoT.
Následující příkazy ukazují, jak nakonfigurovat nastavení nahrávání souborů ve službě IoT Hub. Tyto příkazy se zobrazují samostatně pro přehlednost, ale obvykle byste vydali jeden příkaz se všemi požadovanými parametry pro váš scénář. Zahrnout uvozovky, kde se zobrazují na příkazovém řádku. Nezahrnujte složené závorky. Další podrobnosti o jednotlivých parametrech najdete v dokumentaci k Azure CLI pro příkaz az iot hub update .
Následující příkaz nakonfiguruje účet úložiště a kontejner objektů 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}"
Následující příkaz nastaví dobu živého identifikátoru URI SAS na výchozí (jednu hodinu).
az iot hub update --name {your iot hub name} \
--fileupload-sas-ttl 1
Následující příkaz povolí oznámení souborů a nastaví vlastnosti oznámení souboru na výchozí hodnoty. (Doba nahrávání souboru do živého vysílání je nastavená na jednu hodinu a doba trvání uzamčení je nastavená na 60 sekund.)
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
Následující příkaz konfiguruje ověřování založené na klíčích:
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type keyBased
Následující příkaz nakonfiguruje ověřování pomocí spravované identity přiřazené systémem ve službě IoT Hub. Před spuštěním tohoto příkazu musíte pro centrum IoT povolit spravovanou identitu přiřazenou systémem a udělit jí správnou roli RBAC ve vašem účtu Azure Storage. Další informace najdete v tématu Podpora služby IoT Hub pro spravované identity.
az iot hub update --name {your iot hub name} \
--fileupload-storage-auth-type identityBased \
--fileupload-storage-identity [system]
Následující příkazy načtou spravované identity přiřazené uživatelem nakonfigurované ve službě IoT Hub a nakonfigurují ověřování s jedním z nich. Abyste mohli použít spravovanou identitu přiřazenou uživatelem k ověření, musíte ji nakonfigurovat ve službě IoT Hub a udělit odpovídající roli RBAC ve vašem účtu Azure Storage. Další podrobnosti a kroky najdete v tématu Podpora služby IoT Hub pro spravované identity.
K dotazování na spravované identity přiřazené uživatelem ve službě IoT Hub použijte příkaz az iot hub identity show .
az iot hub identity show --name {your iot hub name} --query userAssignedIdentities
Příkaz vrátí kolekci spravovaných identit přiřazených uživatelem nakonfigurovanými ve službě IoT Hub. Následující výstup ukazuje kolekci, která obsahuje jednu spravovanou identitu přiřazenou uživatelem.
{
"/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>"
}
}
Následující příkaz nakonfiguruje ověřování tak, aby používal výše přiřazenou identitu přiřazenou uživatelem.
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}"
Nastavení ve službě IoT Hub můžete zkontrolovat pomocí následujícího příkazu:
az iot hub show --name {your iot hub name}
Pokud chcete zkontrolovat pouze nastavení nahrávání souborů, použijte následující příkaz:
az iot hub show --name {your iot hub name}
--query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'
Ve většině situací je použití pojmenovaných parametrů v příkazech Azure CLI nejjednodušší; Můžete ale také nakonfigurovat nastavení nahrávání souborů pomocí parametru --set
. Následující příkazy vám můžou pomoct pochopit, jak na to.
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