Szybki start: tworzenie zadania usługi Stream Analytics przy użyciu programu Azure PowerShell
Moduł Azure PowerShell umożliwia tworzenie zasobów platformy Azure i zarządzanie nimi za pomocą poleceń cmdlet programu PowerShell lub skryptów. W tym przewodniku Szybki start pokazano, jak za pomocą modułu Azure PowerShell wdrożyć i uruchomić zadanie usługi Azure Stream Analytics.
Przykładowe zadanie odczytuje dane przesyłane strumieniowo z urządzenia usługi IoT Hub. Dane wejściowe są generowane przez symulator online urządzenia Raspberry Pi. Zadanie usługi Stream Analytics przekształca dane przy użyciu języka zapytań usługi Stream Analytics w celu filtrowania komunikatów o temperaturze większej niż 27°. Następnie zapisuje wynikowe zdarzenia wyjściowe w pliku w magazynie obiektów blob.
Zanim rozpoczniesz
- Jeśli nie masz subskrypcji platformy Azure, utwórz bezpłatne konto.
- Dla tego przewodnika Szybki start jest wymagany moduł Azure PowerShell. Uruchom polecenie
Get-Module -ListAvailable Az
, aby znaleźć wersję zainstalowaną na komputerze lokalnym. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie modułu Azure PowerShell. - Niektóre akcje usługi IoT Hub nie są obsługiwane przez program Azure PowerShell i muszą zostać ukończone przy użyciu interfejsu wiersza polecenia platformy Azure w wersji 2.0.70 lub nowszej oraz rozszerzenia IoT dla interfejsu wiersza polecenia platformy Azure. Zainstaluj interfejs wiersza polecenia platformy Azure i użyj polecenia
az extension add --name azure-iot
, aby zainstalować rozszerzenie IoT.
Logowanie się do platformy Azure
Zaloguj się do subskrypcji platformy Azure za pomocą polecenia Connect-AzAccount
i wprowadź swoje poświadczenia platformy Azure w podręcznym oknie przeglądarki:
# Connect to your Azure account
Connect-AzAccount
Jeśli masz więcej niż jedną subskrypcję, wybierz subskrypcję, z której chcesz korzystać na potrzeby tego przewodnika Szybki start, uruchamiając następujące polecenia cmdlet. Pamiętaj, aby zastąpić ciąg <your subscription name>
nazwą swojej subskrypcji:
# List all available subscriptions.
Get-AzSubscription
# Select the Azure subscription you want to use to create the resource group and resources.
Get-AzSubscription -SubscriptionName "<your subscription name>" | Select-AzSubscription
Tworzenie grupy zasobów
Utwórz grupę zasobów platformy Azure za pomocą polecenia New-AzResourceGroup. Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.
$resourceGroup = "StreamAnalyticsRG"
$location = "WestUS2"
New-AzResourceGroup `
-Name $resourceGroup `
-Location $location
Przygotowywanie danych wejściowych
Przed zdefiniowaniem zadania usługi Stream Analytics przygotuj dane, które będą konfigurowane jako dane wejściowe zadania.
Poniższy blok kodu interfejsu wiersza polecenia platformy Azure zawiera wiele poleceń w celu przygotowania danych wejściowych wymaganych przez zadanie. Zapoznaj się z poniższymi sekcjami, aby zrozumieć kod.
W oknie programu PowerShell uruchom
az login
polecenie , aby zalogować się do konta platformy Azure.Po pomyślnym zalogowaniu interfejs wiersza polecenia platformy Azure zwraca listę subskrypcji. Skopiuj subskrypcję używaną w tym przewodniku Szybki start i uruchom
az account set
polecenie , aby wybrać tę subskrypcję. Wybierz tę samą subskrypcję, którą wybrano w poprzedniej sekcji za pomocą programu PowerShell. Pamiętaj, aby zastąpić ciąg<your subscription name>
nazwą swojej subskrypcji.az login az account set --subscription "<your subscription>"
Utwórz centrum IoT Hub przy użyciu
az iot hub create
polecenia . W tym przykładzie tworzone jest centrum IoT Hub o nazwie MyASAIoTHub. Ponieważ nazwy centrów IoT Hub są unikatowe, musisz utworzyć własną nazwę centrum IoT Hub. 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ę.az iot hub create --name "MyASAIoTHub" --resource-group $resourceGroup --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. Potrzebujesz go podczas dodawania usługi IoT Hub jako danych wejściowych do zadania usługi Stream Analytics.
az iot hub connection-string show --resource-group $resourceGroup --hub-name "MyASAIoTHub"
Dodaj urządzenie do usługi IoT Hub przy użyciu
az iot hub device-identity create
polecenia . W tym przykładzie zostanie utworzone urządzenie o nazwie MyASAIoTDevice.az iot hub device-identity create --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice"
Pobierz urządzenie parametry połączenia przy użyciu
az iot hub device-identity connection-string show
polecenia . 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 --resource-group $resourceGroup --hub-name "MyASAIoTHub" --device-id "MyASAIoTDevice" --output table
Przykładowe dane wyjściowe:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Tworzenie magazynu obiektów blob
Poniższy blok kodu programu Azure PowerShell zawiera polecenia służące do utworzenia magazynu obiektów blob, który będzie używany do przechowywania danych wyjściowych zadania. Przejrzyj sekcje, aby zapoznać się z kodem.
Utwórz standardowe konto magazynu ogólnego przeznaczenia za pomocą polecenia cmdlet New-AzStorageAccount. W tym przykładzie tworzone jest konto magazynu o nazwie myasaquickstartstorage z magazynem lokalnie nadmiarowym (LRS, locally redundant storage) i szyfrowaniem obiektów blob (domyślnie włączone).
Pobierz kontekst konta magazynu
$storageAccount.Context
, który definiuje konto magazynu do użycia. Podczas pracy z kontami magazynu możesz odwoływać się do kontekstu, zamiast wielokrotnie podawać poświadczenia.Użyj polecenia New-AzStorageContainer, aby utworzyć nowy kontener magazynu.
Skopiuj klucz magazynu z danych wyjściowych kodu i zapisz go, ponieważ będzie później używany do tworzenia danych wyjściowych zadania przesyłania strumieniowego.
$storageAccountName = "myasaquickstartstorage" $storageAccount = New-AzStorageAccount ` -ResourceGroupName $resourceGroup ` -Name $storageAccountName ` -Location $location ` -SkuName Standard_LRS ` -Kind Storage $ctx = $storageAccount.Context $containerName = "container1" New-AzStorageContainer ` -Name $containerName ` -Context $ctx $storageAccountKey = (Get-AzStorageAccountKey ` -ResourceGroupName $resourceGroup ` -Name $storageAccountName).Value[0] Write-Host "The <storage account key> placeholder needs to be replaced in your output json files with this key value:" Write-Host $storageAccountKey -ForegroundColor Cyan
Tworzenie zadania usługi Stream Analytics
Utwórz zadanie usługi Stream Analytics za pomocą polecenia cmdlet New-AzStreamAnalyticsJob. To polecenie cmdlet przyjmuje nazwę zadania, nazwę grupy zasobów, lokalizację i nazwę jednostki SKU jako parametry. Nazwa zadania może być dowolną przyjazną nazwą, która identyfikuje zadanie. Może ona zawierać wyłącznie znaki alfanumeryczne, łączniki i podkreślenia oraz musi składać się z od 3 do 63 znaków.
New-AzStreamAnalyticsJob
Uruchom polecenie cmdlet .
$jobName = "MyStreamingJob"
New-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-Location centralus `
-SkuName Standard
Konfigurowanie danych wejściowych zadania
Dodaj dane wejściowe do zadania za pomocą polecenia cmdlet New-AzStreamAnalyticsInput. To polecenie cmdlet przyjmuje jako parametry nazwę zadania, nazwę danych wejściowych zadania, nazwę grupy zasobów i definicję danych wejściowych zadania. Definicja danych wejściowych zadania to plik JSON, który zawiera właściwości wymagane do skonfigurowania danych wejściowych zadania. W tym przykładzie utworzysz magazyn obiektów blob jako dane wejściowe.
Na maszynie lokalnej utwórz plik o nazwie JobInputDefinition.json
i dodaj do niego następujące dane JSON.
Ważne
- Zastąp
accesspolicykey
element fragmentemSharedAccessKey
usługi IoT Hub parametry połączenia zapisanym w poprzedniej sekcji. - Jeśli użyto innej nazwy centrum IoT, zaktualizuj wartość .
iotHubNamespace
{
"properties": {
"type": "Stream",
"datasource": {
"type": "Microsoft.Devices/IotHubs",
"properties": {
"iotHubNamespace": "MyASAIoTHub",
"sharedAccessPolicyName": "iothubowner",
"sharedAccessPolicyKey": "accesspolicykey",
"endpoint": "messages/events",
"consumerGroupName": "$Default"
}
},
"compression": {
"type": "None"
},
"serialization": {
"type": "Json",
"properties": {
"encoding": "UTF8"
}
}
},
"name": "IoTHubInput",
"type": "Microsoft.StreamAnalytics/streamingjobs/inputs"
}
Ustaw zmienną $jobInputDefinitionFile
programu PowerShell na ścieżkę, w której zapisano plik JSON definicji danych wejściowych zadania.
$jobInputDefinitionFile = "C:\JobInputDefinition.json"
Następnie uruchom New-AzStreamAnalyticsInput
polecenie cmdlet , aby utworzyć dane wejściowe usługi Azure IoT Hub dla zadania usługi Stream Analytics.
$jobInputName = "IoTHubInput"
New-AzStreamAnalyticsInput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobInputDefinitionFile `
-Name $jobInputName
Konfigurowanie danych wyjściowych zadania
Dodaj dane wyjściowe do zadania za pomocą polecenia cmdlet New-AzStreamAnalyticsOutput. To polecenie cmdlet przyjmuje jako parametry nazwę zadania, nazwę danych wyjściowych zadania, nazwę grupy zasobów i definicję danych wyjściowych zadania. Definicja danych wyjściowych zadania to plik JSON, który zawiera właściwości wymagane do skonfigurowania danych wyjściowych zadania. W tym przykładzie jako dane wyjściowe używany jest magazyn obiektów blob.
Na maszynie lokalnej utwórz plik o nazwie JobOutputDefinition.json
i dodaj do niego następujące dane JSON.
Ważne
Zastąp wartość parametru accountKey
kluczem dostępu konta magazynu, który jest wartością przechowywaną w $storageAccountKey
wartości.
{
"properties": {
"datasource": {
"type": "Microsoft.Storage/Blob",
"properties": {
"storageAccounts": [
{
"accountName": "asaquickstartstorage",
"accountKey": "<storage account key>"
}
],
"container": "container1",
"pathPattern": "output/",
"dateFormat": "yyyy/MM/dd",
"timeFormat": "HH"
}
},
"serialization": {
"type": "Json",
"properties": {
"encoding": "UTF8",
"format": "LineSeparated"
}
}
},
"name": "BlobOutput",
"type": "Microsoft.StreamAnalytics/streamingjobs/outputs"
}
Ustaw zmienną $jobOutputDefinitionFile
programu PowerShell na ścieżkę, w której zapisano plik JSON definicji danych wyjściowych zadania.
$jobOutputDefinitionFile = "C:\JobOutputDefinition.json"
Następnie uruchom New-AzStreamAnalyticsOutput
polecenie cmdlet , aby utworzyć dane wyjściowe usługi Azure Blob Storage dla zadania usługi Stream Analytics.
$jobOutputName = "BlobOutput"
New-AzStreamAnalyticsOutput `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-File $jobOutputDefinitionFile `
-Name $jobOutputName
Definiowanie zapytania przekształcenia
Dodaj przekształcenie zadania przy użyciu polecenia cmdlet New-AzStreamAnalyticsTransformation. To polecenie cmdlet przyjmuje jako parametry nazwę zadania, nazwę przekształcenia zadania, nazwę grupy zasobów i definicję przekształcenia zadania. Na maszynie lokalnej utwórz plik o nazwie JobTransformationDefinition.json
i dodaj do niego następujące dane JSON. Plik JSON zawiera parametr zapytania, który definiuje zapytanie przekształcenia:
{
"name":"MyTransformation",
"type":"Microsoft.StreamAnalytics/streamingjobs/transformations",
"properties":{
"streamingUnits":1,
"script":null,
"query":"SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27"
}
}
Następnie uruchom polecenie cmdlet New-AzStreamAnalyticsTransformation
.
$jobTransformationName = "MyJobTransformation"
$jobTransformationDefinitionFile = "C:\JobTransformationDefinition.json"
New-AzStreamAnalyticsTransformation `
-ResourceGroupName $resourceGroup `
-JobName $jobName `
-Query "SELECT * INTO BlobOutput FROM IoTHubInput WHERE Temperature > 27" `
-StreamingUnit 1 `
-Name $jobTransformationName
Uruchamianie symulatora IoT
Otwórz symulator Raspberry Pi Azure IoT Online Simulator.
Zastąp symbol zastępczy w wierszu 15 całymi parametrami połączenia urządzenia usługi Azure IoT Hub, które zostały zapisane w poprzedniej sekcji.
Kliknij 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 Start-AzStreamAnalyticsJob. 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
. Aby dowiedzieć się więcej na temat znaczenia poszczególnych wartości, zobacz sekcję parametrów w dokumentacji programu PowerShell.
Po uruchomieniu poniższego polecenia cmdlet zwróci ono wartość True
jako dane wyjściowe, jeśli zadanie zostało uruchomione. W kontenerze magazynu zostanie utworzony folder wyjściowy z przekształconymi danymi.
Start-AzStreamAnalyticsJob `
-ResourceGroupName $resourceGroup `
-Name $jobName `
-OutputStartMode 'JobStartTime'
Czyszczenie zasobów
Gdy grupa zasobów, zadanie przesyłania strumieniowego i wszystkie pokrewne zasoby nie będą już potrzebne, usuń je. Usunięcie zadania pozwala uniknąć opłat za jednostki przesyłania strumieniowego zużywane przez zadanie. Jeśli planujesz użyć zadania w przyszłości, możesz pominąć jego usuwanie i na razie je zatrzymać. Jeśli nie planujesz używania tego zadania w przyszłości, usuń wszystkie zasoby utworzone w ramach tego przewodnika Szybki start, uruchamiając następujące polecenie cmdlet:
Remove-AzResourceGroup `
-Name $resourceGroup
Następne kroki
W tym przewodniku Szybki start proste zadanie usługi Stream Analytics zostało wdrożone przy użyciu programu PowerShell. 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: