Skip to content

Example of how you can build IoT solutions that have custom device gateways that are using Dapr Actors to represent devices in the field.

License

Notifications You must be signed in to change notification settings

tomkerkhove/iot-with-dapr-actors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Building IoT solutions with Dapr Actors

Example of how you can build IoT solutions that have custom device gateways that are using Dapr Actors to represent devices in the field.

How does it work?

Overview

Try it yourself!

Kubernetes

Prerequisites

Before you can start, you'll need to :

  1. Install Dapr (docs)
  2. Install KEDA (docs)
  3. Update YAML specs under /deploy with your config

Deploying the scenario

You are ready to go, deploy!

  1. Deploy Dapr Components
$ k apply -f .\deploy\dapr-infrastructure.yaml
secret/dapr-infrastructure-secrets created
component.dapr.io/dapr-state-store created
  1. Deploy Device Actor Host
$ k apply -f .\deploy\device-actors.yaml
secret/dapr-sandbox-actors-secrets created
deployment.apps/dapr-sandbox-actors created
  1. Deploy Device API
$ k apply -f .\deploy\device-api.yaml
secret/dapr-sandbox-apis-device-secrets created
deployment.apps/dapr-sandbox-apis-device created
service/dapr-sandbox-apis-device-service created
service/dapr-sandbox-apis-device-load-balancer created
  1. Deploy Twin Change Stream Processor
$ k apply -f .\deploy\twin-changes-stream-processor.yaml
secret/dapr-sandbox-twin-change-secrets unchanged
deployment.apps/twin-changes-stream-processor created
scaledobject.keda.k8s.io/twin-changes-autoscale created
  1. Deploy Device Message Stream Processor
$ k apply -f .\deploy\device-message-stream-processor.yaml
secret/dapr-sandbox-device-telemetry-secrets created
deployment.apps/device-telemetry-stream-processor created
scaledobject.keda.k8s.io/device-telemetry-autoscale created

Locally

  1. Configure dependencies in docker-compose.override.yml
  2. Start containers with Docker Compose:
$ cd src
$ docker-compose up
  1. Explore the API on http://localhost:880/api/docs

Cleanup

Stop containers with Docker Compose:

$ docker-compose down

Testing

Sending device messages

Messages should be sent as following to Azure Event Hubs:

messageType: Telemetry
deviceId: <id>
{
  "content": "Hello Dapr!"
}

About

Example of how you can build IoT solutions that have custom device gateways that are using Dapr Actors to represent devices in the field.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages 4