Szybki start: tworzenie zadania usługi Azure Stream Analytics przy użyciu interfejsu wiersza polecenia platformy Azure
W tym przewodniku Szybki start użyjesz interfejsu wiersza polecenia platformy Azure do zdefiniowania zadania usługi Stream Analytics, które filtruje komunikaty czujników w czasie rzeczywistym z odczytem temperatury większym niż 27. Zadanie usługi Stream Analytics odczytuje dane z usługi IoT Hub, przekształca dane i zapisuje dane wyjściowe w kontenerze w magazynie obiektów blob. Dane wejściowe używane w tym przewodniku Szybki start są generowany przez symulator online Raspberry Pi.
Zanim rozpoczniesz
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Utwórz grupę zasobów. Wszystkie zasoby platformy Azure należy wdrożyć w grupie zasobów. Grupy zasobów umożliwiają organizowanie powiązanych zasobów platformy Azure i zarządzanie nimi.
W tym przewodniku Szybki start utwórz grupę zasobów o nazwie streamanalyticsrg w lokalizacji eastus za pomocą następującego polecenia az group create:
az group create --name streamanalyticsrg --location eastus
Przygotowywanie danych wejściowych
Przed zdefiniowaniem zadania usługi Stream Analytics przygotuj dane używane do danych wejściowych zadania. Następujące polecenia interfejsu wiersza polecenia platformy Azure przygotowują dane wejściowe wymagane przez zadanie.
Utwórz centrum IoT Hub za pomocą polecenia az iot hub create. W tym przykładzie tworzone jest centrum IoT Hub o nazwie MyASAIoTHub. Ponieważ nazwy usługi IoT Hub muszą być globalnie unikatowe, może być konieczne zmianę nazwy, jeśli została już zajęta. Ustaw jednostkę SKU na F1, aby używać warstwy Bezpłatna, jeśli jest dostępna w ramach subskrypcji. W przeciwnym razie wybierz kolejną najniższą warstwę.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1
Po utworzeniu centrum IoT hub pobierz usługę IoT Hub parametry połączenia za pomocą polecenia az iot hub connection-string show. Skopiuj cały parametry połączenia i zapisz go. Jest on używany podczas dodawania usługi IoT Hub jako danych wejściowych do zadania usługi Stream Analytics.
az iot hub connection-string show --hub-name $iotHubName
Dodaj urządzenie do centrum IoT Hub za pomocą polecenia az iothub device-identity create. W tym przykładzie zostanie utworzone urządzenie o nazwie MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
Pobierz urządzenie parametry połączenia za pomocą polecenia az iot hub device-identity connection-string show. Skopiuj całe parametry połączenia i zapisz je, ponieważ będą używane podczas tworzenia symulatora urządzenia Raspberry Pi.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table
Przykładowe dane wyjściowe:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Tworzenie konta usługi Blob Storage
Następujące polecenia interfejsu wiersza polecenia platformy Azure tworzą konto magazynu obiektów blob, które jest używane na potrzeby danych wyjściowych zadania.
Do utworzenia konta magazynu (ogólnego przeznaczenia) służy polecenie az storage account create. Konta magazynu można używać z wszystkimi czterema usługami: obiektami blob, plikami, tabelami i kolejkami.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
Pobierz klucz dla konta magazynu, uruchamiając polecenie az storage account keys list .
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $key
Ważne
Zanotuj klucz dostępu dla konta usługi Azure Storage. Użyjesz tego klucza w dalszej części tego przewodnika Szybki start.
Utwórz kontener o nazwie
state
do przechowywania obiektów blob za pomocą polecenia az storage container create . Klucz konta magazynu służy do autoryzowania operacji tworzenia kontenera. Aby uzyskać więcej informacji na temat autoryzowania operacji danych za pomocą interfejsu wiersza polecenia platformy Azure, zobacz Autoryzowanie dostępu do danych obiektów blob lub kolejek za pomocą interfejsu wiersza polecenia platformy Azure.az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Tworzenie zadania usługi Stream Analytics
Utwórz zadanie usługi Stream Analytics za pomocą polecenia 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"
Konfigurowanie danych wejściowych zadania
Dodaj dane wejściowe do zadania przy użyciu polecenia cmdlet az stream-analytics input . To polecenie cmdlet przyjmuje nazwę zadania, nazwę danych wejściowych zadania, nazwę grupy zasobów i właściwości wejściowe w formacie JSON jako parametry. W tym przykładzie utworzysz centrum IoT Hub jako dane wejściowe.
Ważne
- Zastąp
IOT HUB ACCESS KEY
wartość kluczem dostępu współdzielonego w zapisanym parametry połączenia centrum IOT Hub. Jeśli na przykład parametry połączenia usługi IOT Hub to:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=
, wartość klucza dostępu współdzielonego toxxxxxxxxxxxxxx=
. Podczas zastępowania wartości upewnij się, że nie usuwasz\
znaku (ucieczka) dla"
elementu (cudzysłowy podwójne). - Zaktualizuj wartość
iotHubNamespace
w poniższym poleceniu, jeśli użyto nazwy innej niżMyASAIoTHub
. Uruchom polecenieecho $iotHubName
, aby wyświetlić nazwę centrum IoT Hub.
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"
Konfigurowanie danych wyjściowych zadania
Dodaj dane wyjściowe do zadania przy użyciu polecenia cmdlet az stream-analytics output create . To polecenie cmdlet przyjmuje nazwę zadania, nazwę danych wyjściowych zadania, nazwę grupy zasobów, źródło danych w formacie JSON i typ serializacji jako parametry.
Ważne
Zastąp STORAGEACCOUNTNAME>
ciąg nazwą konta usługi Azure Storage i STORAGEACCESSKEY>
kluczem dostępu dla konta magazynu. Jeśli nie zanotujesz tych wartości, uruchom następujące polecenia, aby je pobrać: echo $storageAccountName
i echo $key
. Podczas zastępowania wartości upewnij się, że nie usuwasz \
(ucieczki) znaku "
(cudzysłowów podwójnych).
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
Definiowanie zapytania przekształcenia
Dodaj przekształcenie zadania przy użyciu polecenia cmdlet 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"
Uruchamianie symulatora IoT
Otwórz symulator Raspberry Pi Azure IoT Online Simulator.
Zastąp symbol zastępczy w wierszu 15 całym parametry połączenia urządzenia usługi Azure IoT Hub (a nie parametry połączenia usługi IoT Hub) zapisanym na początku przewodnika Szybki start.
Wybierz Uruchom. Dane wyjściowe powinny pokazywać dane z czujników i komunikaty, które są wysyłane do usługi IoT Hub.
Uruchamianie zadania usługi Stream Analytics i sprawdzanie danych wyjściowych
Uruchom zadanie przy użyciu polecenia cmdlet az stream-analytics job start . To polecenie cmdlet przyjmuje jako parametry nazwę zadania, nazwę grupy zasobów, tryb uruchamiania danych wyjściowych i czas rozpoczęcia. Parametr OutputStartMode
przyjmuje wartość JobStartTime
, CustomTime
lub LastOutputEventTime
.
Po uruchomieniu poniższego polecenia cmdlet zwróci ono wartość True
jako dane wyjściowe, jeśli zadanie zostało uruchomione.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Nadaj mu kilka minut, a następnie sprawdź, czy plik wyjściowy został utworzony w kontenerze state
obiektów blob.
Pobierz i otwórz plik, aby wyświetlić kilka wpisów podobnych do następujących:
{
"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
}
}
Czyszczenie zasobów
Usuń grupę zasobów, która spowoduje usunięcie wszystkich zasobów w grupie zasobów, w tym zadania usługi Stream Analytics, usługi IoT Hub i konta usługi Azure Storage.
az group delete \
--name streamanalyticsrg \
--no-wait
Następne kroki
W tym przewodniku Szybki start wdrożono proste zadanie usługi Stream Analytics przy użyciu interfejsu wiersza polecenia platformy Azure. Możesz też wdrażać zadania usługi Stream Analytics przy użyciu witryny Azure Portal i programu Visual Studio.
Aby dowiedzieć się więcej o konfigurowaniu innych źródeł danych wejściowych i wykonywaniu wykrywania w czasie rzeczywistym, zapoznaj się z następującym artykułem: