IoT Hub-fájlfeltöltések konfigurálása az Azure CLI használatával

Ez a cikk bemutatja, hogyan konfigurálhatja a fájlfeltöltéseket az IoT Hubon az Azure CLI használatával.

Az IoT Hub fájlfeltöltési funkciójának használatához először egy Azure-tárfiókot és blobtárolót kell társítania az IoT Hubhoz. Az IoT Hub automatikusan létrehozza a blobtároló írási engedélyekkel rendelkező SAS-URI-jait a fájlok feltöltésekor használni kívánt eszközök számára. A tárfiók és a blobtároló mellett beállíthatja az SAS URI élettartamát és az IoT Hub által az Azure Storage-ban használt hitelesítés típusát. Az IoT Hub által a háttérszolgáltatásoknak kézbesíthető opcionális fájlfeltöltési értesítések beállításait is konfigurálhatja.

Előfeltételek

Megjegyzés:

Ez a cikk az Azure IoT-bővítmény legújabb, úgynevezett azure-iotverzióját használja. Az örökölt verzió neve azure-cli-iot-ext. Egyszerre csak egy verziót kell telepítenie. A parancs segítségével az extension list ellenőrizheti a jelenleg telepített bővítményeket.

A bővítmény régi verziójának eltávolítására használható az extension remove --name azure-cli-iot-ext .

A bővítmény új verziójának hozzáadására használható az extension add --name azure-iot .

A telepített bővítmények megtekintéséhez használja a parancsot az extension list.

Jelentkezzen be és állítsa be az Azure-fiókját

Jelentkezzen be Azure-fiókjába, és válassza ki előfizetését. Ha Azure Cloud Shellt használ, akkor már be kell jelentkeznie; Azonban előfordulhat, hogy több előfizetés esetén is ki kell választania az Azure-előfizetést.

  1. A parancssorban futtassa a login parancsot:

    az login
    

    Kövesse az utasításokat a kóddal történő hitelesítéshez, és jelentkezzen be az Azure-fiókjába webböngészőből.

  2. Ha több Azure-előfizetéssel rendelkezik, az Azure-ba történő bejelentkezéssel hozzáfér a hitelesítő adatokhoz tartozó összes Azure-fiókhoz. Az alábbi paranccsal jelenítheti meg az elérhető Azure-fiókokat:

    az account list
    

    Az alábbi paranccsal válassza ki azt az előfizetést, amellyel futtatni szeretné a parancsokat az IoT Hub létrehozásához. Használhatja az előző parancs kimenetéből származó előfizetésnevet vagy -azonosítót:

    az account set --subscription {your subscription name or id}
    

A tárfiók adatainak lekérése

Az alábbi lépések feltételezik, hogy a tárfiókot a Resource Manager üzemi modellel hozta létre, nem pedig a klasszikus üzemi modellel.

Az eszközökről származó fájlfeltöltések konfigurálásához szüksége van egy Azure Storage-fiók kapcsolati sztring. A tárfióknak ugyanabban az előfizetésben kell lennie, mint az IoT Hubnak. Szüksége van egy blobtároló nevére is a tárfiókban. A tárfiókkulcsok lekéréséhez használja az alábbi parancsot:

az storage account show-connection-string --name {your storage account name} \
  --resource-group {your storage account resource group}

A kapcsolati sztring a következő kimenethez hasonló lesz:

{
  "connectionString": "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName={your storage account name};AccountKey={your storage account key}"
}

Jegyezze fel a connectionString értékét. Az alábbi lépésekben szüksége lesz rá.

Használhat egy meglévő blobtárolót a fájlfeltöltésekhez, vagy létrehozhat egy újat:

  • A tárfiók meglévő blobtárolóinak listázásához használja a következő parancsot:

    az storage container list --connection-string "{your storage account connection string}"
    
  • Ha blobtárolót szeretne létrehozni a tárfiókban, használja a következő parancsot:

    az storage container create --name {container name} \
      --connection-string "{your storage account connection string}"
    

Az IoT Hub konfigurálása

Most már konfigurálhatja az IoT Hubot úgy, hogy lehetővé tegye a fájlok feltöltését az IoT Hubra a tárfiók adataival.

A konfigurációhoz a következő értékek szükségesek:

  • Tároló: Egy blobtároló egy Azure-tárfiókban az aktuális Azure-előfizetésben, amely az IoT Hubhoz társítható. Az előző szakaszban lekérte a szükséges tárfiókadatokat. Az IoT Hub automatikusan létrehozza a blobtároló írási engedélyekkel rendelkező SAS-URI-jait a fájlok feltöltésekor használni kívánt eszközök számára.

  • Értesítések fogadása a feltöltött fájlokról: Fájlfeltöltési értesítések engedélyezése vagy letiltása.

  • SAS TTL: Ez a beállítás az IoT Hub által az eszközre visszaadott SAS URI-k élettartamát jelenti. Alapértelmezés szerint egy órára van állítva.

  • Fájlértesítési beállítások alapértelmezett TTL: A fájlfeltöltési értesítés élettartamáról szóló értesítés lejárata előtt. Alapértelmezés szerint egy napra van állítva.

  • Fájlértesítés maximális kézbesítési száma: Az IoT Hub hányszor kísérel meg fájlfeltöltési értesítést kézbesíteni. Alapértelmezés szerint 10 értékre van állítva.

  • Fájlértesítés zárolásának időtartama: A fájlértesítési üzenetsor zárolási időtartama. Alapértelmezés szerint 60 másodperc.

  • Hitelesítési típus: Az Azure Storage-hoz használandó IoT Hub hitelesítési típusa. Ez a beállítás határozza meg, hogy az IoT Hub hogyan hitelesíti és engedélyezi az Azure Storage-t. Az alapértelmezett érték a kulcsalapú hitelesítés; azonban a rendszer által hozzárendelt és a felhasználó által hozzárendelt felügyelt identitások is használhatók. A felügyelt identitások biztonságos módon biztosítják az Azure-szolgáltatásokat egy automatikusan felügyelt identitással a Microsoft Entra-azonosítóban. Ha tudni szeretné, hogyan konfigurálhat felügyelt identitásokat az IoT Hubon és az Azure Storage-fiókban, tekintse meg az IoT Hub felügyelt identitások támogatását. Miután konfigurálta, beállíthatja az egyik felügyelt identitást az Azure Storage-beli hitelesítéshez.

    Megjegyzés:

    A hitelesítési típusbeállítás konfigurálja, hogy az IoT Hub hogyan hitelesít az Azure Storage-fiókkal. Az eszközök mindig az IoT Hubról kapott SAS URI használatával hitelesítik az Azure Storage-t.

Az alábbi parancsok bemutatják, hogyan konfigurálhatja a fájlfeltöltési beállításokat az IoT Hubon. Ezek a parancsok külön jelennek meg az egyértelműség kedvéért, de általában egyetlen parancsot adna ki a forgatókönyvhöz szükséges összes paraméterrel. Idézőjelek belefoglalása a parancssorba. Ne vegye bele a kapcsos zárójeleket. Az egyes paraméterekről az az iot hub frissítési parancsának Azure CLI-dokumentációjában olvashat bővebben.

Az alábbi parancs konfigurálja a tárfiókot és a blobtárolót.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-connectionstring "{your storage account connection string}" \
    --fileupload-storage-container-name "{your container name}" 

Az alábbi parancs az SAS URI-időt az alapértelmezett (egy óra) értékre állítja.

az iot hub update --name {your iot hub name} \
    --fileupload-sas-ttl 1 

Az alábbi parancs engedélyezi a fájlértesítéseket, és beállítja a fájlértesítési tulajdonságokat az alapértelmezett értékekre. (A fájlfeltöltési értesítés élettartamának beállítása egy óra, a zárolás időtartama pedig 60 másodperc.)

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

A következő parancs a kulcsalapú hitelesítést konfigurálja:

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type keyBased

Az alábbi parancs az IoT Hub rendszer által hozzárendelt felügyelt identitásával konfigurálja a hitelesítést. A parancs futtatása előtt engedélyeznie kell a rendszer által hozzárendelt felügyelt identitást az IoT Hubhoz, és meg kell adnia neki a megfelelő RBAC-szerepkört az Azure Storage-fiókjában. További információ a felügyelt identitások IoT Hub-támogatásáról.

az iot hub update --name {your iot hub name} \
    --fileupload-storage-auth-type identityBased \
    --fileupload-storage-identity [system] 

Az alábbi parancsok lekérik az IoT Hubon konfigurált, felhasználó által hozzárendelt felügyelt identitásokat, és az egyikkel konfigurálják a hitelesítést. Ahhoz, hogy a hitelesítéshez felhasználó által hozzárendelt felügyelt identitást használjon, konfigurálnia kell azt az IoT Hubon, és megfelelő RBAC-szerepkört kell biztosítani az Azure Storage-fiókjában. További részletekért és lépésekért tekintse meg a felügyelt identitások IoT Hub-támogatását.

Ha felhasználó által hozzárendelt felügyelt identitásokat szeretne lekérdezni az IoT Hubon, használja az az iot hub identity show parancsot.

az iot hub identity show --name {your iot hub name} --query userAssignedIdentities

A parancs visszaadja az IoT Hubon konfigurált, felhasználó által hozzárendelt felügyelt identitások gyűjteményét. Az alábbi kimenet egy olyan gyűjteményt jelenít meg, amely egyetlen felhasználó által hozzárendelt felügyelt identitást tartalmaz.

{
  "/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>"
  }
}

Az alábbi parancs a hitelesítést úgy konfigurálja, hogy a felhasználó által hozzárendelt identitást használja.

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}"

Az IoT Hub beállításait az alábbi paranccsal tekintheti át:

az iot hub show --name {your iot hub name}

Ha csak a fájlfeltöltési beállításokat szeretné áttekinteni, használja a következő parancsot:

az iot hub show --name {your iot hub name}
    --query '[properties.storageEndpoints, properties.enableFileUploadNotifications, properties.messagingEndpoints.fileNotifications]'

A legtöbb esetben a nevesített paraméterek használata az Azure CLI-parancsokban a legegyszerűbb; a paraméterrel azonban fájlfeltöltési --set beállításokat is konfigurálhat. Az alábbi parancsok segítenek megérteni, hogyan.

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

Következő lépések