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.
Požadavky
Aktivní účet Azure Pokud účet nemáte, můžete si během několika minut vytvořit bezplatný účet.
Centrum IoT ve vašem předplatném Azure Pokud centrum ještě nemáte, můžete postupovat podle kroků v tématu Vytvoření centra IoT.
Účet Azure Storage s kontejnerem objektů blob. 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}
Konfigurace přístupu k úč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 .
Pokud chcete nakonfigurovat nahrávání souborů ze zařízení, musíte službě IoT Hub udělit přístupová oprávnění k účtu 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.
K poskytnutí přístupových oprávnění můžete použít ověřování založené na klíči nebo identitě. Microsoft doporučuje ověřování založené na identitách jako bezpečnější možnost.
Ověřování na základě klíčů
Pro ověřování na základě klíčů zadejte připojovací řetězec pro váš účet úložiště. Pomocí příkazu az storage account show-connection-string načtěte klíče účtu úložiště.
Poznamenejte si hodnotu connectionString
. Připojovací řetězec vypadá 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}"
}
Ověřování na základě identity
Spravované identity přiřazené systémem nebo spravované identity přiřazené uživatelem můžete použít k ověřování na základě identit. Další informace najdete v tématu Podpora služby IoT Hub pro spravované identity.
Pomocí příkazu az role assignment create přiřaďte roli spravované identitě. Další informace najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.
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; Doporučuje se ale možnosti ověřování spravované identity přiřazené systémem nebo přiřazené uživatelem. Spravované identity zabezpečeným způsobem poskytují službám Azure automaticky spravovanou identitu v Microsoft Entra ID.
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. Než budete moct tento příkaz spustit, musíte pro centrum IoT povolit spravovanou identitu přiřazenou systémem a udělit jí správnou roli řízení přístupu na základě role v úč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 řízení přístupu na základě role 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