Azure IoT Hubのメッセージルーティング


アーキテクチャ

事前準備

上記の赤色については別の投稿を参照してください。
Raspberry Pi(Python)からAzure IoT Hubへテレメトリーを送信する

Azure IoT Hubのメッセージルーティング

情報定義

resourceGroupName={ResourceGroupName}
iotHubName={IoTHubName}
ioteviceName={IoTDeviceName}
storageAccountName={StorageAccountName}
containerName={ContainerName}
endpointName={EndpointName}
endpointType={EndpointType}
routeName={RouteName}

情報取得

subscriptionID=$(az account show --query id)

Storage Account作成

az storage account create \
 --name $storageAccountName \
 --resource-group $resourceGroup \
 --location $location \
 --sku Standard_LRS

Storage Accountキー取得

storageAccountKey=$(az storage account keys list \
 --resource-group $resourceGroup \
 --account-name $storageAccountName \
 --query "[0].value" | tr -d '"')

Storage Accountコンテナー作成

az storage container create --name $containerName \
 --account-name $storageAccountName \
 --account-key $storageAccountKey \
 --public-access off

Storage Accountの接続情報取得

storageConnectionString=$(az storage account show-connection-string \
 --name $storageAccountName \
 --query connectionString \
 -o tsv)

IoT Hubのエンドポイント作成

az iot hub routing-endpoint create \
 --connection-string $storageConnectionString \
 --endpoint-name $endpointName \
 --endpoint-resource-group $resourceGroup \
 --endpoint-subscription-id $subscriptionID \
 --endpoint-type $endpointType \
 --hub-name $iotHubName \
 --container $containerName \
 --resource-group $resourceGroup \
 --encoding json

IoT Hubのメッセージルーティング作成

az iot hub route create \
 --name $routeName \
 --hub-name $iotHubName \
 --source devicemessages \
 --resource-group $resourceGroup \
 --endpoint-name $endpointName \
 --enabled

https://docs.microsoft.com/en-us/azure/iot-hub/tutorial-routing