Skip to main content

Azure Stream Analytics

Uses an Azure Stream Analytics job to transform data in an Event Hub.

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set classic-azure-ts-stream-analytics
cd pulumi-examples/classic-azure-ts-stream-analytics

An example Pulumi program that deploys an Azure Stream Analytics job to transform data in an Event Hub.

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Node.js

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Log in to the Azure CLI (you will be prompted to do this during deployment if you forget this step):

    Terminal window
    az login
  3. Configure the Azure location and subscription to deploy the example to:

    Terminal window
    pulumi config set azure:location <location>
    pulumi config set azure:subscriptionId <YOUR_SUBSCRIPTION_ID>
  4. Install dependencies:

    Terminal window
    npm install
  5. Deploy the stack:

    Terminal window
    pulumi up
    Previewing update (dev):
    ...
    Updating (dev):
    ...
    Resources:
    + 15 created
    Update duration: 2m43s
  6. Use the following sample messages for testing:

    // Inputs (1 line - 1 event):
    {"Make":"Kia","Sales":2,"Time":"2019-06-26T10:22:36Z"}
    {"Make":"Kia","Sales":1,"Time":"2019-06-26T10:22:37Z"}
    {"Make":"Honda","Sales":1,"Time":"2019-06-26T10:22:38Z"}
    // Output:
    [{"Make":"Kia","Sales":3};{"Make":"Honda","Sales":1}]

    You can send a message with a curl command:

    Terminal window
    curl -X POST '$(pulumi stack output inputEndpoint)' -H 'Authorization: $(pulumi stack output sasToken)' -H 'Content-Type: application/atom+xml;type=entry;charset=utf-8' -d '{"Make":"Kia","Sales":2,"Time":"2019-06-26T10:22:36Z"}'
  7. Start the Stream Analytics job. The job will start emitting messages to the output Event Hub once per minute. The Azure Function analytics-output will start printing those events into the console (you’d have to open the function console in the Azure portal to see them).

Cleaning up#

Once you are done, you can destroy all of the resources, and the stack:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.