Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten använder du Azure CLI för att definiera ett Stream Analytics-jobb som filtrerar sensormeddelanden i realtid med en temperatur som är större än 27. Stream Analytics-jobbet läser data från IoT Hub, transformerar data och skriver utdata till en container i en bloblagring. De indata som används i den här snabbstarten genereras av en Raspberry Pi-onlinesimulator.
Innan du börjar
Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.
Förutsättningar
- Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Kom igång med Azure Cloud Shell. 
- Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör på Windows eller macOS, överväg att köra Azure CLI i en Docker-container. För mer information, se Hur man kör Azure CLI i en Docker-container. - Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Autentisera till Azure med Azure CLI. 
- När du blir uppmanad, installera Azure CLI-tillägget vid första användning. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI. 
- Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade. 
 
- Skapa en resursgrupp. Alla Azure-resurser måste distribueras till en resursgrupp. Resursgrupper gör det enkelt att se och hantera relaterade Azure-resurser. - I den här snabbstarten skapar du en resursgrupp med namnet streamanalyticsrg på platsen eastus med följande kommando az group create : - az group create --name streamanalyticsrg --location eastus
Förbereda indata
Innan du definierar Stream Analytics-jobbet förbereder du datamängden som används för analysjobbets indata. Följande Azure CLI-kommandon förbereder de indata som krävs av jobbet.
- Skapa en IoT Hub med kommandot az iot hub create . I det här exemplet skapas en IoT-hubb som heter MyASAIoTHub. Eftersom IoT Hub-namn måste vara globalt unika kan du behöva ändra namnet om det redan har tagits. Ange SKU till F1 för att använda den kostnadsfria nivån om den är tillgänglig med din prenumeration. Annars väljer du nästa lägsta nivå. - iotHubName=MyASAIoTHub az iot hub create --name $iotHubName --resource-group streamanalyticsrg --sku S1- När IoT-hubben har skapats hämtar du IoT Hub-anslutningssträng med kommandot az iot hub connection-string show. Kopiera hela anslutningssträng och spara den. Du använder den när du lägger till IoT Hub som indata till ditt Stream Analytics-jobb. - az iot hub connection-string show --hub-name $iotHubName
- Lägg till en enhet i IoT Hub med kommandot az iothub device-identity create . I det här exemplet skapas en enhet med namnet MyASAIoTDevice. - az iot hub device-identity create --hub-name $iotHubName --device-id "MyASAIoTDevice"
- Hämta enhetsanslutningssträngen med kommandot az iot hub device-identity connection-string show . Kopiera hela anslutningssträngen och spara den för användning när du skapar Raspberry Pi-simulatorn. - az iot hub device-identity connection-string show --hub-name $iotHubName --device-id "MyASAIoTDevice" --output table- Utdataexempel: - HostName=MyASAIoTHub.azure-devices.net;DeviceId=MyASAIoTDevice;SharedAccessKey=a2mnUsg52+NIgYudxYYUNXI67r0JmNubmfVafojG8=
Skapa ett bloblagringskonto
Följande Azure CLI-kommandon skapar ett bloblagringskonto som används för jobbutdata.
- Skapa ett allmänt lagringskonto med kommandot az storage account create . Det allmänna lagringskontot kan användas för alla fyra tjänsterna: blobar, filer, tabeller och köer. - storageAccountName="asatutorialstorage$RANDOM" az storage account create \ --name $storageAccountName \ --resource-group streamanalyticsrg \ --location eastus \ --sku Standard_ZRS \ --encryption-services blob
- Hämta nyckeln för ditt lagringskonto genom att köra kommandot az storage account keys list . - key=$(az storage account keys list -g streamanalyticsrg -n $storageAccountName --query "[0].value" -o tsv) echo $key- Viktigt! - Anteckna åtkomstnyckeln för Azure Storage-kontot. Du kommer att använda den här nyckeln senare i den här snabbstarten. 
- Skapa en container med namnet - stateför lagring av blobar med kommandot az storage container create . Du använder lagringskontonyckeln för att auktorisera åtgärden för att skapa containern. Mer information om hur du auktoriserar dataåtgärder med Azure CLI finns i Auktorisera åtkomst till blob- eller ködata med Azure CLI.- az storage container create \ --account-name $storageAccountName \ --name state \ --account-key $key \ --auth-mode key
Skapa ett Stream Analytics-jobb
Skapa ett Stream Analytics-jobb med kommandot 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"
Konfigurera indata för jobbet
Lägg till indata i jobbet med hjälp av cmdleten az stream-analytics input . Den här cmdleten tar jobbnamnet, jobbets indatanamn, resursgruppens namn och indataegenskaperna i JSON-format som parametrar. I det här exemplet skapar du en IoT Hub för att fungera som en datakälla.
Viktigt!
- Ersätt IOT HUB ACCESS KEYmed värdet för delad åtkomstnyckel i IOT Hub-anslutningssträngen som du sparade. Om IOT Hub-anslutningssträngen till exempel är:HostName=MyASAIoTHub.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=xxxxxxxxxxxxxx=ärxxxxxxxxxxxxxx=värdet för delad åtkomstnyckel . När du ersätter värdet kontrollerar du att du inte tar bort\(escape)-tecknet för"(dubbla citattecken).
- Uppdatera värdet iotHubNamespaceför i följande kommando om du använde ett annat namn änMyASAIoTHub. Körecho $iotHubNameför att se namnet på din 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"
Konfigurera utdata för jobbet
Lägg till utdata i jobbet med hjälp av cmdleten az stream-analytics output create . Den här cmdleten tar jobbnamnet, jobbutdatanamnet, resursgruppens namn, datakällan i JSON-format och serialiseringstypen som parametrar.
Viktigt!
Ersätt STORAGEACCOUNTNAME> med namnet på ditt Azure Storage-konto och STORAGEACCESSKEY> med åtkomstnyckeln för ditt lagringskonto. Om du inte har antecknat dessa värden kör du följande kommandon för att hämta dem: echo $storageAccountName och echo $key. När du ersätter värdena kontrollerar du att du inte tar bort \ (escape)-tecknet för " (dubbla citattecken).
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
Definiera transformationsfrågan
Lägg till en transformation till ditt jobb med hjälp av cmdleten 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"
Köra IoT-simulatorn
- Ersätt platshållaren på rad 15 med hela anslutningssträngen för Azure IoT Hub-enheten (inte IoT Hub-anslutningssträngen) som du sparade i början av snabbstarten. 
- Välj Kör. Utdata bör visas de sensordata och meddelanden som skickas till din IoT-hubb.   
Starta Stream Analytics-jobbet och kontrollera utdata
Starta jobbet med hjälp av cmdleten az stream-analytics job start . Den här cmdleten tar jobbnamnet, resursgruppens namn, startläget för utdata och starttiden som parametrar. 
              OutputStartMode godkänner värden för JobStartTime, CustomTime eller LastOutputEventTime.
När du har kört följande cmdlet returnerar den True som utdata om jobbet startar.
az stream-analytics job start \
    --resource-group streamanalyticsrg \
    --name streamanalyticsjob \
    --output-start-mode JobStartTime
Ge den några minuter och kontrollera sedan att en utdatafil har skapats i blobcontainern state .
              
               
              
              
            
Ladda ned och öppna filen för att se flera poster som liknar följande:
{
    "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
    }
}
Rensa resurser
Ta bort resursgruppen, som tar bort alla resurser i resursgruppen, inklusive Stream Analytics-jobb, IoT Hub och Azure Storage-konto.
az group delete \
    --name streamanalyticsrg \
    --no-wait
Nästa steg
I den här snabbstarten distribuerade du ett enkelt Stream Analytics-jobb med hjälp av Azure CLI. Du kan även distribuera Stream Analytics-jobb med Azure-portalen och Visual Studio.
Om du vill se hur du konfigurerar andra indatakällor och utför realtidsidentifiering fortsätter du till följande artikel:
