Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете Azure CLI для определения задания Stream Analytics, которое фильтрует сообщения от датчиков с показателем температуры больше 27. Задание Stream Analytics считывает данные из IoT-хаба, преобразует данные и записывает выходные данные в контейнер в объектном хранилище BLOB. Входные данные, используемые в этом кратком руководстве, создаются онлайн-симулятором Raspberry Pi.
Перед тем как начать
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Предпосылки
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см. в статье "Начало работы с Azure Cloud Shell".
Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, подумайте о запуске Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, войдите в Azure CLI с помощью команды az login . Чтобы завершить процесс аутентификации, следуйте шагам, отображаемым в вашем терминале. Сведения о других параметрах входа см. в статье "Проверка подлинности в Azure с помощью Azure CLI".
Когда вас попросят, установите расширение Azure CLI при первом использовании. Дополнительные сведения о расширениях см. в статье Использование расширений и управление ими с помощью Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Создайте группу ресурсов. Все ресурсы Azure должны быть развернуты в группе ресурсов. Группы ресурсов позволяют организовать соответствующие ресурсы Azure и управлять ими.
В этом кратком руководстве создайте группу ресурсов с именем streamanalyticsrg в регионе eastus с помощью следующей команды az group create.
az group create --name streamanalyticsrg --location eastus
Подготовка входных данных
Перед определением задания Stream Analytics подготовьте данные, используемые для входных данных задания. Следующие команды Azure CLI подготавливают входные данные, необходимые для задания.
Создайте Центр Интернета вещей с помощью команды az iot hub create . Этот пример создает Центр Интернета вещей с именем MyASAIoTHub. Так как имена Центра Интернета вещей должны быть глобально уникальными, может потребоваться изменить имя, если оно уже принято. Установите номер SKU на F1, чтобы использовать бесплатный уровень, если он доступен в вашей подписке. В противном случае выберите следующий самый низкий уровень.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1После создания Центра Интернета вещей получите Центр Интернета вещей строка подключения с помощью команды az iot hub connection-string show. Скопируйте весь строка подключения и сохраните его. Он используется при добавлении Центра Интернета вещей в качестве входных данных в задание Stream Analytics.
az iot hub connection-string show --hub-name $iotHubNameДобавьте устройство в Центр Интернета вещей с помощью команды az iothub device-identity create . В этом примере создается устройство с именем MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"Получите строку подключения устройства с помощью команды az iot hub device-identity connection-string show. Скопируйте всю строку подключения и сохраните ее для использования при создании симулятора Raspberry Pi.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output tableПример выходных данных.
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Создайте учетную запись для хранения BLOB-объектов
Следующие команды Azure CLI создают учетную запись хранения BLOB, которая используется для результатов задания.
Создайте учетную запись хранения общего назначения с помощью команды az storage account create . Учетная запись хранения универсального назначения может использоваться для всех четырех служб: объектов данных, файлов, таблиц и очередей.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blobПолучите ключ для учетной записи хранения, выполнив команду az storage account key list .
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $keyЭто важно
Запишите ключ доступа для учетной записи хранения Azure. Этот ключ будет использоваться далее в этом кратком руководстве.
Создайте контейнер с именем
stateдля хранения BLOB-объектов с помощью команды az storage container create . Ключ учетной записи хранения используется для авторизации операции для создания контейнера. Дополнительные сведения об авторизации операций с данными с помощью Azure CLI см. в статье "Авторизация доступа к данным blob или очереди с помощью Azure CLI".az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Создайте задание для Stream Analytics
Создайте задание Stream Analytics с помощью команды az stream-analytics job create .
az stream-analytics job create \
--job-name "streamanalyticsjob" \
--resource-group "streamanalyticsrg" \
--location "eastus" \
--output-error-policy "Drop" \
--out-of-order-policy "Drop" \
--order-max-delay 5 \
--arrival-max-delay 16 \
--data-locale "en-US"
Настройка входных данных для задания
Добавьте входные данные в задание с помощью командлета az stream-analytics input . Этот командлет принимает имя задания, имя входных данных задания, имя группы ресурсов и входные свойства в формате JSON в качестве параметров. В этом примере вы создадите Центр Интернета вещей как источник ввода.
Это важно
- Замените
IOT HUB ACCESS KEYзначением ключа общего доступа в строке подключения Центра IOT, сохраненной. Например, если строка подключения IoT-хаба:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, значение общего ключа доступа:xxxxxxxxxxxxxx=. При замене значения убедитесь, что вы не удаляете символ\(escape) для"(двойных кавычек). - Обновите значение
iotHubNamespaceв следующей команде, если вы использовали имя, отличное отMyASAIoTHub. Запуститеecho $iotHubName, чтобы просмотреть имя Центра Интернета вещей.
az stream-analytics input create \
--properties "{\"type\":\"Stream\",\"datasource\":{\"type\":\"Microsoft.Devices/IotHubs\",\"properties\":{\"consumerGroupName\":\"\$Default\",\"endpoint\":\"messages/events\",\"iotHubNamespace\":\"MyASAIoTHub\",\"sharedAccessPolicyKey\":\"IOT HUB ACCESS KEY\",\"sharedAccessPolicyName\":\"iothubowner\"}},\"serialization\":{\"type\":\"Json\",\"encoding\":\"UTF8\"}}" \
--input-name "asaiotinput" \
--job-name "streamanalyticsjob" \
--resource-group "streamanalyticsrg"
Настройка выходных данных для задания
Добавьте результат в ваше задание при помощи командлета az stream-analytics output create. Этот командлет принимает имя задания, выходное имя задания, имя группы ресурсов, источник данных в формате JSON и тип сериализации в качестве параметров.
Это важно
Замените STORAGEACCOUNTNAME> именем учетной записи хранения Azure и STORAGEACCESSKEY> ключом доступа для учетной записи хранения. Если вы не запишите эти значения, выполните следующие команды, чтобы получить их: echo $storageAccountName и echo $key. При замене значений убедитесь, что символ не удаляется \ (escape) для " (двойные кавычки).
az stream-analytics output create \
--job-name streamanalyticsjob \
--datasource "{\"type\":\"Microsoft.Storage/Blob\",\"properties\":{\"container\":\"state\",\"dateFormat\":\"yyyy/MM/dd\",\"pathPattern\":\"{date}/{time}\",\"storageAccounts\":[{\"accountKey\":\"STORAGEACCESSKEY\",\"accountName\":\"STORAGEACCOUNTNAME\"}],\"timeFormat\":\"HH\"}}" \
--serialization "{\"type\":\"Json\",\"properties\":{\"format\":\"Array\",\"encoding\":\"UTF8\"}}" \
--output-name asabloboutput \
--resource-group streamanalyticsrg
Определение запроса преобразования
Добавьте преобразование в свою работу с помощью командлета az stream-analytics transformation create.
az stream-analytics transformation create \
--resource-group streamanalyticsrg \
--job-name streamanalyticsjob \
--name Transformation \
--streaming-units "6" \
--saql "SELECT * INTO asabloboutput FROM asaiotinput WHERE Temperature > 27"
Запуск IoT-симулятора
Откройте онлайн-симулятор Raspberry Pi для Интернета вещей Azure.
Замените заполнитель в строке 15 всей строкой подключения к устройству Центра Интернета вещей Azure (а не строкой подключения Центра Интернета вещей), сохраненной в начале краткого руководства.
Выберите Выполнить. В выходных данных должны присутствовать показания датчика и сообщения, отправляемые в Центр Интернета вещей.
Запуск задания Stream Analytics и просмотр выходных данных
Запустите задание с помощью командлета az stream-analytics job start. Этот командлет принимает имя задания, имя группы ресурсов, режим начала вывода задания и время запуска в качестве параметров.
OutputStartMode принимает значения JobStartTime, CustomTime или LastOutputEventTime.
После запуска следующего командлета, если задание запустится, будет возвращено значение True в качестве выходных данных.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Дайте ему несколько минут, а затем убедитесь, что выходной файл был создан в контейнере state BLOB.
Скачайте и откройте файл, чтобы просмотреть несколько записей, аналогичных следующим:
{
"messageId": 229,
"deviceId": "Raspberry Pi Web Client",
"temperature": 31.85214010589595,
"humidity": 60.278830289656284,
"EventProcessedUtcTime": "2023-02-28T22:06:33.5567789Z",
"PartitionId": 3,
"EventEnqueuedUtcTime": "2023-02-28T22:05:49.6520000Z",
"IoTHub": {
"MessageId": null,
"CorrelationId": null,
"ConnectionDeviceId": "MyASAIoTDevice",
"ConnectionDeviceGenerationId": "638132150746523845",
"EnqueuedTime": "2023-02-28T22:05:49.6520000Z",
"StreamId": null
}
}
Очистите ресурсы
Удалите группу ресурсов, которая будет удалять все ресурсы в группе ресурсов, включая задание Stream Analytics, Центр Интернета вещей и учетную запись хранения Azure.
az group delete \
--name streamanalyticsrg \
--no-wait
Дальнейшие шаги
В этом кратком руководстве вы развернули простое задание Stream Analytics с помощью Azure CLI. Вы также можете развертывать задания Stream Analytics, используя портал Azure и Visual Studio.
Дополнительные сведения о настройке других источников входных данных и обнаружении в режиме реального времени см. в следующей статье: