Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart gebruikt u Azure CLI om een Stream Analytics-taak te definiëren waarmee realtime sensorberichten worden gefilterd met een temperatuur die groter is dan 27. De Stream Analytics-taak leest gegevens uit IoT Hub, transformeert de gegevens en schrijft de uitvoergegevens naar een container in een blobopslag. De invoergegevens in deze quickstart worden gegenereerd via een Raspberry Pi Online Simulator.
Voordat u begint
Als u geen Azure-account hebt, maak dan een gratis account aan voordat u begint.
Vereiste voorwaarden
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Aan de slag met Azure Cloud Shell voor meer informatie.
Als je de voorkeur geeft aan het lokaal uitvoeren van CLI-referentiecommando's, installeer dan de Azure CLI. Als je op Windows of macOS werkt, overweeg dan om Azure CLI in een Docker-container te draaien. Voor meer informatie, zie Hoe u de Azure CLI in een Docker-container kunt uitvoeren.
Als u een lokale installatie gebruikt, meldt u zich aan bij Azure CLI met de opdracht az login. Om het authenticatieproces te voltooien, volgt u de stappen die op uw terminal worden weergegeven. Zie Verifiëren bij Azure met behulp van Azure CLI voor andere aanmeldingsopties.
Wanneer u daarom wordt gevraagd, installeer de Azure CLI-extensie bij het eerste gebruik. Zie Extensies gebruiken en beheren met de Azure CLIvoor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en de afhankelijke bibliotheken te vinden. Voer az upgrade uit om naar de nieuwste versie te upgraden.
Maak een resourcegroep. Alle Azure-resources moeten worden geïmplementeerd in een resourcegroep. Met resourcegroepen kunt u gerelateerde Azure-resources ordenen en beheren.
Voor deze quickstart maakt u een resourcegroep met de naam streamanalyticsrg in de locatie eastus met de volgende opdracht: az group create.
az group create --name streamanalyticsrg --location eastus
De invoergegevens voorbereiden
Voordat u de Stream Analytics-taak definieert, moet u de gegevens voorbereiden die worden gebruikt voor de invoer van de taak. Met de volgende Azure CLI-opdrachten worden de invoergegevens voorbereid die vereist zijn voor de taak.
Maak een IoT Hub met behulp van de opdracht az iot hub create . In dit voorbeeld wordt een IoT Hub met de naam MyASAIoTHub gemaakt. Omdat IoT Hub-namen globaal uniek moeten zijn, moet u mogelijk de naam wijzigen als deze al wordt gebruikt. Stel de SKU in op F1 om de gratis laag te gebruiken als deze beschikbaar is voor uw abonnement. Als dat niet het geval is, kiest u de eerstvolgende lagere categorie.
iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1Zodra de IoT-hub is gemaakt, haalt u de IoT Hub-verbindingsreeks op met behulp van de opdracht az iot hub connection-string show. Kopieer de hele verbindingsreeks en sla deze op. U gebruikt deze functie tijdens het toevoegen van de IoT Hub als invoer aan uw Stream Analytics-taak.
az iot hub connection-string show --hub-name $iotHubNameVoeg een apparaat toe aan IoT Hub met behulp van de opdracht az iothub device-identity create . In dit voorbeeld maakt u een apparaat met de naam MyASAIoTDevice.
az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"Haal de apparaatverbindingsreeks op met behulp van de opdracht az iot hub device-identity connection-string show . Kopieer de volledige verbindingsreeks en bewaar deze totdat u de Raspberry Pi-simulator gaat maken.
az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output tableVoorbeeld van uitvoer:
HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Een Blob Storage-account maken
Met de volgende Azure CLI-opdrachten maakt u een Blob Storage-account dat wordt gebruikt voor taakuitvoer.
Maak een opslagaccount voor algemeen gebruik met de opdracht az storage account create . Het opslagaccount voor algemeen gebruik kan worden gebruikt voor alle vier de services: blobs, bestanden, tabellen en wachtrijen.
storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blobHaal de sleutel voor uw opslagaccount op door de opdracht az storage account keys list uit te voeren.
key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $keyBelangrijk
Noteer de toegangssleutel voor het Azure-opslagaccount. U gebruikt deze sleutel verderop in deze quickstart.
Maak een container met de naam
statevoor het opslaan van blobs met de opdracht az storage container create . U gebruikt de sleutel van het opslagaccount om de bewerking te autoriseren voor het maken van de container. Zie Toegang tot blob- of wachtrijgegevens autoriseren met Azure CLI voor meer informatie over het autoriseren van gegevensbewerkingen met Azure CLI.az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Een Stream Analytics-taak maken
Voer de opdracht az stream-analytics job create uit om een Stream Analytics-taak te maken.
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"
Invoer voor de taak configureren
Voeg een invoer toe aan uw taak met behulp van de cmdlet az stream-analytics input . Deze cmdlet gebruikt de taaknaam, taakinvoernaam, resourcegroepnaam en de invoereigenschappen in JSON-indeling als parameters. In dit voorbeeld maakt u een IoT Hub als invoer.
Belangrijk
- Vervang
IOT HUB ACCESS KEYdoor de waarde van de gedeelde toegangssleutel in de IOT Hub-verbindingsreeks die u hebt opgeslagen. Als de IOT Hub-verbindingsreeks bijvoorbeeld is:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=, isxxxxxxxxxxxxxx=de waarde voor de gedeelde toegangssleutel . Zorg er tijdens het vervangen van de waarde voor dat u het teken\(escape) voor"(dubbele aanhalingstekens) niet verwijdert. - Werk de waarde van
iotHubNamespacein het volgende commando bij als u een andere naam danMyASAIoTHubgebruikt hebt. Voer deze opdracht uitecho $iotHubNameom de naam van uw IoT Hub weer te geven.
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"
Uitvoer voor de taak configureren
Voeg een uitvoer toe aan uw taak met behulp van de cmdlet az stream-analytics output create . Deze cmdlet gebruikt de taaknaam, taakuitvoernaam, resourcegroepnaam, gegevensbron in JSON-indeling en serialisatietype als parameters.
Belangrijk
Vervang STORAGEACCOUNTNAME> door de naam van uw Azure Storage-account en STORAGEACCESSKEY> door de toegangssleutel voor uw opslagaccount. Als u deze waarden niet hebt genoteerd, voert u de volgende opdrachten uit om ze op te halen: echo $storageAccountName en echo $key. Zorg ervoor dat u bij het vervangen van de waarden het \ (escape) teken voor " (dubbele aanhalingstekens) niet verwijdert.
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
De transformatiequery definiëren
Voeg een transformatie toe aan uw taak met behulp van de 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"
De IoT-simulator uitvoeren
Vervang de tijdelijke aanduiding in regel 15 door de volledige Azure IoT Hub-apparaten verbindingsreeks (niet de IoT Hub verbindingsreeks) die u aan het begin van de quickstart hebt opgeslagen.
Selecteer Voeruit. De uitvoer geeft de sensorgegevens en berichten weer die worden verzonden naar de IoT-hub.
Stream Analytics-taak starten en uitvoer controleren
Start de taak met behulp van de cmdlet az stream-analytics job start . Deze cmdlet gebruikt de taaknaam, resourcegroepnaam, uitvoerstartmodus en begintijd als parameters.
OutputStartMode accepteert waarden van JobStartTime, CustomTime of LastOutputEventTime.
Nadat u de volgende cmdlet hebt uitgevoerd, retourneert deze True als uitvoer als de taak wordt gestart.
az stream-analytics job start \
--resource-group streamanalyticsrg \
--name streamanalyticsjob \
--output-start-mode JobStartTime
Geef het een paar minuten en controleer vervolgens of er een uitvoerbestand is gemaakt in de state blobcontainer.
Download en open het bestand om verschillende vermeldingen te zien die vergelijkbaar zijn met de volgende:
{
"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
}
}
De hulpbronnen opschonen
Verwijder de resourcegroep, waarmee alle resources in de resourcegroep worden verwijderd, waaronder de Stream Analytics-taak, IoT Hub en het Azure Storage-account.
az group delete \
--name streamanalyticsrg \
--no-wait
Volgende stappen
In deze quickstart hebt u een eenvoudige Stream Analytics-taak geïmplementeerd met behulp van Azure CLI. U kunt Stream Analytics-taken ook implementeren met behulp van de Azure-portal en Visual Studio.
Voor informatie over het configureren van andere invoerbronnen en het uitvoeren van detectie in realtime gaat u door naar het volgende artikel: