Example of how you can build IoT solutions that have custom device gateways that are using Dapr Actors to represent devices in the field.
Before you can start, you'll need to :
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
- 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
Stop containers with Docker Compose:
$ docker-compose down
Messages should be sent as following to Azure Event Hubs:
messageType: Telemetry
deviceId: <id>
{
"content": "Hello Dapr!"
}