Getting started with the Dapr actor Python SDK

How to get up and running with the Dapr Python SDK

The Dapr actor package allows you to interact with Dapr virtual actors from a Python application.

Pre-requisites

Actor interface

The interface defines the actor contract that is shared between the actor implementation and the clients calling the actor. Because a client may depend on it, it typically makes sense to define it in an assembly that is separate from the actor implementation.

  1. from dapr.actor import ActorInterface, actormethod
  2. class DemoActorInterface(ActorInterface):
  3. @actormethod(name="GetMyData")
  4. async def get_my_data(self) -> object:
  5. ...

Actor services

An actor service hosts the virtual actor. It is implemented a class that derives from the base type Actor and implements the interfaces defined in the actor interface.

Actors can be created using one of the Dapr actor extensions:

Actor client

An actor client contains the implementation of the actor client which calls the actor methods defined in the actor interface.

  1. import asyncio
  2. from dapr.actor import ActorProxy, ActorId
  3. from demo_actor_interface import DemoActorInterface
  4. async def main():
  5. # Create proxy client
  6. proxy = ActorProxy.create('DemoActor', ActorId('1'), DemoActorInterface)
  7. # Call method on client
  8. resp = await proxy.GetMyData()

Sample

Visit this page for a runnable actor sample.