The documentation you are viewing is for Dapr v1.7 which is an older version of Dapr. For up-to-date documentation, see the latest version.
Getting started with the Dapr Python gRPC service extension
The Dapr Python SDK provides a built in gRPC server extension module, dapr.ext.grpc
, for creating Dapr services.
安装
You can download and install the Dapr gRPC server extension module with:
pip install dapr-ext-grpc
Note
开发包包含的功能和行为将兼容此前发行的 Dapr 运行时。 在安装 dapr-dev 包之前,请务必卸载以前任意稳定版本的 dapr-ext-fastapi 的 Python SDK 扩展包。
pip3 install dapr-ext-grpc-dev
示例
The App
object can be used to create a server.
Listen for service invocation requests
The InvokeServiceReqest
and InvokeServiceResponse
objects can be used to handle incoming requests.
A simple service that will listen and respond to requests will look like:
from dapr.ext.grpc import App, InvokeServiceRequest, InvokeServiceResponse
app = App()
@app.method(name='my-method')
def mymethod(request: InvokeServiceRequest) -> InvokeServiceResponse:
print(request.metadata, flush=True)
print(request.text(), flush=True)
return InvokeServiceResponse(b'INVOKE_RECEIVED', "text/plain; charset=UTF-8")
app.run(50051)
A full sample can be found here.
Subscribe to a topic
from cloudevents.sdk.event import v1
from dapr.ext.grpc import App
app = App()
@app.subscribe(pubsub_name='pubsub', topic='TOPIC_A')
def mytopic(event: v1.Event) -> None:
print(event.Data(),flush=True)
app.run(50051)
A full sample can be found here.
Setup input binding trigger
from dapr.ext.grpc import App, BindingRequest
app = App()
@app.binding('kafkaBinding')
def binding(request: BindingRequest):
print(request.text(), flush=True)
app.run(50051)
A full sample can be found here.
相关链接
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.