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?
Try it yourself!
Kubernetes
Prerequisites
Before you can start, you'll need to :
Deploying the scenario
You are ready to go, deploy!
- Deploy Dapr Components
$ k apply -f .\deploy\dapr-infrastructure.yaml
secret/dapr-infrastructure-secrets created
component.dapr.io/dapr-state-store created
- Deploy Device Actor Host
$ k apply -f .\deploy\device-actors.yaml
secret/dapr-sandbox-actors-secrets created
deployment.apps/dapr-sandbox-actors created
- 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
- 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
- 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
- Configure dependencies in
docker-compose.override.yml
- Start containers with Docker Compose:
$ cd src
$ docker-compose up
- 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!"
}