From 8302ace93ae33c1172f505122ee687795b87f210 Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 6 Jun 2023 10:22:10 -0700 Subject: [PATCH 01/10] Start of Python QS doc Signed-off-by: Nick Greenfield --- .../integrations/gRPC-integration.md | 258 ------------------ .../quickstarts/workflow-quickstart.md | 250 ++++++++++++++++- .../workflow-trace-spans-zipkin-python.png | Bin 0 -> 185684 bytes 3 files changed, 249 insertions(+), 259 deletions(-) create mode 100644 daprdocs/static/images/workflow-trace-spans-zipkin-python.png diff --git a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md index c7999a63798..e69de29bb2d 100644 --- a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md +++ b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md @@ -1,258 +0,0 @@ ---- -type: docs -title: "How to: Use the gRPC interface in your Dapr application" -linkTitle: "How to: gRPC interface" -weight: 6000 -description: "Use the Dapr gRPC API in your application" -type: docs ---- - -Dapr implements both an HTTP and a gRPC API for local calls. [gRPC](https://grpc.io/) is useful for low-latency, high performance scenarios and has language integration using the proto clients. - -[Find a list of auto-generated clients in the Dapr SDK documentation]({{< ref sdks >}}). - -The Dapr runtime implements a [proto service](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto) that apps can communicate with via gRPC. - -In addition to calling Dapr via gRPC, Dapr supports service-to-service calls with gRPC by acting as a proxy. [Learn more in the gRPC service invocation how-to guide]({{< ref howto-invoke-services-grpc.md >}}). - -This guide demonstrates configuring and invoking Dapr with gRPC using a Go SDK application. - -## Configure Dapr to communicate with an app via gRPC - -{{< tabs "Self-hosted" "Kubernetes">}} - -{{% codetab %}} - -When running in self-hosted mode, use the `--app-protocol` flag to tell Dapr to use gRPC to talk to the app. - -```bash -dapr run --app-protocol grpc --app-port 5005 node app.js -``` - -This tells Dapr to communicate with your app via gRPC over port `5005`. - -{{% /codetab %}} - - -{{% codetab %}} - -On Kubernetes, set the following annotations in your deployment YAML: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: myapp - namespace: default - labels: - app: myapp -spec: - replicas: 1 - selector: - matchLabels: - app: myapp - template: - metadata: - labels: - app: myapp - annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "myapp" - dapr.io/app-protocol: "grpc" - dapr.io/app-port: "5005" -... -``` - -{{% /codetab %}} - -{{< /tabs >}} - -## Invoke Dapr with gRPC - -The following steps show how to create a Dapr client and call the `SaveStateData` operation on it. - -1. Import the package: - - ```go - package main - - import ( - "context" - "log" - "os" - - dapr "github.com/dapr/go-sdk/client" - ) - ``` - -1. Create the client: - - ```go - // just for this demo - ctx := context.Background() - data := []byte("ping") - - // create the client - client, err := dapr.NewClient() - if err != nil { - log.Panic(err) - } - defer client.Close() - ``` - - 3. Invoke the `SaveState` method: - - ```go - // save state with the key key1 - err = client.SaveState(ctx, "statestore", "key1", data) - if err != nil { - log.Panic(err) - } - log.Println("data saved") - ``` - -Now you can explore all the different methods on the Dapr client. - -## Create a gRPC app with Dapr - -The following steps will show how to create an app that exposes a server for with which Dapr can communicate. - -1. Import the package: - - ```go - package main - - import ( - "context" - "fmt" - "log" - "net" - - "github.com/golang/protobuf/ptypes/any" - "github.com/golang/protobuf/ptypes/empty" - - commonv1pb "github.com/dapr/dapr/pkg/proto/common/v1" - pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1" - "google.golang.org/grpc" - ) - ``` - -1. Implement the interface: - - ```go - // server is our user app - type server struct { - pb.UnimplementedAppCallbackServer - } - - // EchoMethod is a simple demo method to invoke - func (s *server) EchoMethod() string { - return "pong" - } - - // This method gets invoked when a remote service has called the app through Dapr - // The payload carries a Method to identify the method, a set of metadata properties and an optional payload - func (s *server) OnInvoke(ctx context.Context, in *commonv1pb.InvokeRequest) (*commonv1pb.InvokeResponse, error) { - var response string - - switch in.Method { - case "EchoMethod": - response = s.EchoMethod() - } - - return &commonv1pb.InvokeResponse{ - ContentType: "text/plain; charset=UTF-8", - Data: &any.Any{Value: []byte(response)}, - }, nil - } - - // Dapr will call this method to get the list of topics the app wants to subscribe to. In this example, we are telling Dapr - // To subscribe to a topic named TopicA - func (s *server) ListTopicSubscriptions(ctx context.Context, in *empty.Empty) (*pb.ListTopicSubscriptionsResponse, error) { - return &pb.ListTopicSubscriptionsResponse{ - Subscriptions: []*pb.TopicSubscription{ - {Topic: "TopicA"}, - }, - }, nil - } - - // Dapr will call this method to get the list of bindings the app will get invoked by. In this example, we are telling Dapr - // To invoke our app with a binding named storage - func (s *server) ListInputBindings(ctx context.Context, in *empty.Empty) (*pb.ListInputBindingsResponse, error) { - return &pb.ListInputBindingsResponse{ - Bindings: []string{"storage"}, - }, nil - } - - // This method gets invoked every time a new event is fired from a registered binding. The message carries the binding name, a payload and optional metadata - func (s *server) OnBindingEvent(ctx context.Context, in *pb.BindingEventRequest) (*pb.BindingEventResponse, error) { - fmt.Println("Invoked from binding") - return &pb.BindingEventResponse{}, nil - } - - // This method is fired whenever a message has been published to a topic that has been subscribed. Dapr sends published messages in a CloudEvents 0.3 envelope. - func (s *server) OnTopicEvent(ctx context.Context, in *pb.TopicEventRequest) (*pb.TopicEventResponse, error) { - fmt.Println("Topic message arrived") - return &pb.TopicEventResponse{}, nil - } - - ``` - -1. Create the server: - - ```go - func main() { - // create listener - lis, err := net.Listen("tcp", ":50001") - if err != nil { - log.Fatalf("failed to listen: %v", err) - } - - // create grpc server - s := grpc.NewServer() - pb.RegisterAppCallbackServer(s, &server{}) - - fmt.Println("Client starting...") - - // and start... - if err := s.Serve(lis); err != nil { - log.Fatalf("failed to serve: %v", err) - } - } - ``` - - This creates a gRPC server for your app on port 50001. - -## Run the application - -{{< tabs "Self-hosted" "Kubernetes">}} - -{{% codetab %}} - -To run locally, use the Dapr CLI: - -```bash -dapr run --app-id goapp --app-port 50001 --app-protocol grpc go run main.go -``` - -{{% /codetab %}} - - -{{% codetab %}} - -On Kubernetes, set the required `dapr.io/app-protocol: "grpc"` and `dapr.io/app-port: "50001` annotations in your pod spec template, as mentioned above. - -{{% /codetab %}} - -{{< /tabs >}} - - -## Other languages - -You can use Dapr with any language supported by Protobuf, and not just with the currently available generated SDKs. - -Using the [protoc](https://developers.google.com/protocol-buffers/docs/downloads) tool, you can generate the Dapr clients for other languages like Ruby, C++, Rust, and others. - - ## Related Topics -- [Service invocation building block]({{< ref service-invocation >}}) -- [Service invocation API specification]({{< ref service_invocation_api.md >}}) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 0ee6fa8091d..4bbac40d3a6 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -28,7 +28,7 @@ In this guide, you'll: Currently, you can experience the Dapr Workflow using the .NET SDK. -{{< tabs ".NET" >}} +{{< tabs ".NET" "Python" >}} {{% codetab %}} @@ -254,8 +254,256 @@ The `Activities` directory holds the four workflow activities used by the workfl - `ProcessPaymentActivity.cs` - `UpdateInventoryActivity.cs` +{{% /codetab %}} + + +{{% codetab %}} + +### Step 1: Pre-requisites + +For this example, you will need: + +- [Dapr CLI and initialized environment](https://docs.dapr.io/getting-started). +- [Python 3.7+ installed](https://www.python.org/downloads/). + +- [Docker Desktop](https://www.docker.com/products/docker-desktop) + + +### Step 2: Set up the environment + +Clone the [sample provided in the Quickstarts repo](https://github.com/dapr/quickstarts/tree/master/workflows). +```bash +git clone https://github.com/dapr/quickstarts.git +``` + +In a new terminal window, navigate to the `order-processor` directory: + +```bash +cd workflows/python/sdk/order-processor +``` + +### Step 3: Run the order processor app + +In the terminal, start the order processor app alongside a Dapr sidecar: + +```bash +pip3 install -r requirements.txt +dapr run --app-id order-processor --components-path ../../../components/ -- python3 app.py +``` +This starts the `order-processor` app with unique workflow ID and runs the workflow activities. + +Expected output: + +``` +== APP == *** Welcome to the Dapr Workflow console app sample! +== APP == *** Using this app, you can place orders that start workflows. +== APP == 2023-06-06 09:35:52.892 durabletask-worker INFO: Starting gRPC worker that connects to 127.0.0.1:65406 +== APP == item: InventoryItem(item_name=Paperclip, per_item_cost=5, quantity=100) +== APP == item: InventoryItem(item_name=Cars, per_item_cost=15000, quantity=100) +== APP == item: InventoryItem(item_name=Computers, per_item_cost=500, quantity=100) +== APP == ==========Begin the purchase of item:========== +== APP == Starting order workflow, purchasing 11 of cars +== APP == 2023-06-06 09:35:52.945 durabletask-worker INFO: Successfully connected to 127.0.0.1:65406. Waiting for work items... +== APP == 2023-06-06 09:35:55.960 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). +== APP == INFO:NotifyActivity:Received order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at $165000 ! +== APP == 2023-06-06 09:35:56.001 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). +== APP == INFO:VerifyInventoryActivity:Verifying inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da of 11 cars +== APP == INFO:VerifyInventoryActivity:There are 100 Cars available for purchase +== APP == 2023-06-06 09:35:56.035 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). +== APP == INFO:RequestApprovalActivity:Requesting approval for payment of 165000 USD for 11 cars +== APP == 2023-06-06 09:35:56.071 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 1 event(s). +== APP == 2023-06-06 09:36:05.969 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da Event raised: manager_approval +== APP == 2023-06-06 09:36:05.969 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). +== APP == INFO:NotifyActivity:Payment for order f4e1926e-3721-478d-be8a-f5bebd1995da has been approved! +== APP == 2023-06-06 09:36:06.000 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). +== APP == INFO:ProcessPaymentActivity:Processing payment: f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at 165000 USD +== APP == INFO:ProcessPaymentActivity:Payment for request ID f4e1926e-3721-478d-be8a-f5bebd1995da processed successfully +== APP == 2023-06-06 09:36:06.035 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). +== APP == INFO:UpdateInventoryActivity:Checking inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars +== APP == INFO:UpdateInventoryActivity:There are now 89 cars left in stock +== APP == 2023-06-06 09:36:06.071 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). +== APP == INFO:NotifyActivity:Order f4e1926e-3721-478d-be8a-f5bebd1995da has completed! +== APP == 2023-06-06 09:36:06.106 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Orchestration completed with status: COMPLETED +== APP == Workflow completed! Result: Completed +== APP == Purchase of item is Completed +``` + +### (Optional) Step 4: View in Zipkin + +If you have Zipkin configured for Dapr locally on your machine, you can view the workflow trace spans in the Zipkin web UI (typically at `http://localhost:9411/zipkin/`). + + + +### What happened? + +When you ran `dapr run --app-id order-processor --components-path ../../../components/ -- python3 app.py`: + +1. A unique order ID for the workflow is generated (in the above example, `f4e1926e-3721-478d-be8a-f5bebd1995da`) and the workflow is scheduled. +1. The `NotifyActivity` workflow activity sends a notification saying an order for 11 cars has been received. +1. The `ReserveInventoryActivity` workflow activity checks the inventory data, determines if you can supply the ordered item, and responds with the number of cars in stock. +1. Your workflow starts and notifies you of its status. +1. The `ProcessPaymentActivity` workflow activity begins processing payment for order `f4e1926e-3721-478d-be8a-f5bebd1995da` and confirms if successful. +1. The `UpdateInventoryActivity` workflow activity updates the inventory with the current available cars after the order has been processed. +1. The `NotifyActivity` workflow activity sends a notification saying that order `f4e1926e-3721-478d-be8a-f5bebd1995da` has completed. +1. The workflow terminates as completed. + +#### `order-processor/app.py` + +In the application's program file: +- The unique workflow order ID is generated +- The workflow is scheduled +- The workflow status is retrieved +- The workflow and the workflow activities it invokes are registered + +```python +class WorkflowConsoleApp: + def main(self): + print("*** Welcome to the Dapr Workflow console app sample!", flush=True) + print("*** Using this app, you can place orders that start workflows.", flush=True) + # Wait for the sidecar to become available + sleep(5) + + # Register workflow and activities + workflowRuntime = WorkflowRuntime(settings.DAPR_RUNTIME_HOST, settings.DAPR_GRPC_PORT) + workflowRuntime.register_workflow(order_processing_workflow) + workflowRuntime.register_activity(notify_activity) + workflowRuntime.register_activity(requst_approval_activity) + workflowRuntime.register_activity(verify_inventory_activity) + workflowRuntime.register_activity(process_payment_activity) + workflowRuntime.register_activity(update_inventory_activity) + workflowRuntime.start() + + # Instantiate Dapr client + daprClient = DaprClient(address=f'{settings.DAPR_RUNTIME_HOST}:{settings.DAPR_GRPC_PORT}') + baseInventory = {} + baseInventory["paperclip"] = InventoryItem("Paperclip", 5, 100) + baseInventory["cars"] = InventoryItem("Cars", 15000, 100) + baseInventory["computers"] = InventoryItem("Computers", 500, 100) + + self.restock_inventory(daprClient, baseInventory) + + print("==========Begin the purchase of item:==========", flush=True) + item_name = default_item_name + order_quantity = 11 + + total_cost = int(order_quantity) * baseInventory[item_name].per_item_cost + order = OrderPayload(item_name=item_name, quantity=int(order_quantity), total_cost=total_cost) + + # Start Workflow + print(f'Starting order workflow, purchasing {order_quantity} of {item_name}', flush=True) + start_resp = daprClient.start_workflow(workflow_component=workflow_component, + workflow_name=workflow_name, + input=order) + _id = start_resp.instance_id + + def prompt_for_approval(daprClient: DaprClient): + daprClient.raise_workflow_event(instance_id=_id, workflow_component=workflow_component, + event_name="manager_approval", event_data={'approval': True}) + + approval_seeked = False + start_time = datetime.now() + while True: + time_delta = datetime.now() - start_time + state = daprClient.get_workflow(instance_id=_id, workflow_component=workflow_component) + if not state: + print("Workflow not found!") # not expected + elif state.runtime_status == "Completed" or\ + state.runtime_status == "Failed" or\ + state.runtime_status == "Terminated": + print(f'Workflow completed! Result: {state.runtime_status}', flush=True) + break + if time_delta.total_seconds() >= 10: + state = daprClient.get_workflow(instance_id=_id, workflow_component=workflow_component) + if total_cost > 50000 and ( + state.runtime_status != "Completed" or + state.runtime_status != "Failed" or + state.runtime_status != "Terminated" + ) and not approval_seeked: + approval_seeked = True + threading.Thread(target=prompt_for_approval(daprClient), daemon=True).start() + + print("Purchase of item is ", state.runtime_status, flush=True) + + def restock_inventory(self, daprClient: DaprClient, baseInventory): + for key, item in baseInventory.items(): + print(f'item: {item}') + item_str = f'{{"name": "{item.item_name}", "quantity": {item.quantity},\ + "per_item_cost": {item.per_item_cost}}}' + daprClient.save_state("statestore-actors", key, item_str) + +if __name__ == '__main__': + app = WorkflowConsoleApp() + app.main() +``` + +#### `order-processor/workflow.py` + +In `workflow.py`, the workflow is defined as a class with all of its associated tasks (determined by workflow activities). + +```python + def order_processing_workflow(ctx: DaprWorkflowContext, order_payload_str: OrderPayload): + """Defines the order processing workflow. + When the order is received, the inventory is checked to see if there is enough inventory to + fulfill the order. If there is enough inventory, the payment is processed and the inventory is + updated. If there is not enough inventory, the order is rejected. + If the total order is greater than $50,000, the order is sent to a manager for approval. + """ + order_id = ctx.instance_id + order_payload=json.loads(order_payload_str) + yield ctx.call_activity(notify_activity, + input=Notification(message=('Received order ' +order_id+ ' for ' + +f'{order_payload["quantity"]}' +' ' +f'{order_payload["item_name"]}' + +' at $'+f'{order_payload["total_cost"]}' +' !'))) + result = yield ctx.call_activity(verify_inventory_activity, + input=InventoryRequest(request_id=order_id, + item_name=order_payload["item_name"], + quantity=order_payload["quantity"])) + if not result.success: + yield ctx.call_activity(notify_activity, + input=Notification(message='Insufficient inventory for ' + +f'{order_payload["item_name"]}'+'!')) + return OrderResult(processed=False) + + if order_payload["total_cost"] > 50000: + yield ctx.call_activity(requst_approval_activity, input=order_payload) + approval_task = ctx.wait_for_external_event("manager_approval") + timeout_event = ctx.create_timer(timedelta(seconds=200)) + winner = yield when_any([approval_task, timeout_event]) + if winner == timeout_event: + yield ctx.call_activity(notify_activity, + input=Notification(message='Payment for order '+order_id + +' has been cancelled due to timeout!')) + return OrderResult(processed=False) + approval_result = yield approval_task + if approval_result["approval"]: + yield ctx.call_activity(notify_activity, input=Notification( + message=f'Payment for order {order_id} has been approved!')) + else: + yield ctx.call_activity(notify_activity, input=Notification( + message=f'Payment for order {order_id} has been rejected!')) + return OrderResult(processed=False) + + yield ctx.call_activity(process_payment_activity, input=PaymentRequest( + request_id=order_id, item_being_purchased=order_payload["item_name"], + amount=order_payload["total_cost"], quantity=order_payload["quantity"])) + + try: + yield ctx.call_activity(update_inventory_activity, + input=PaymentRequest(request_id=order_id, + item_being_purchased=order_payload["item_name"], + amount=order_payload["total_cost"], + quantity=order_payload["quantity"])) + except Exception: + yield ctx.call_activity(notify_activity, + input=Notification(message=f'Order {order_id} Failed!')) + return OrderResult(processed=False) + + yield ctx.call_activity(notify_activity, input=Notification( + message=f'Order {order_id} has completed!')) + return OrderResult(processed=True) +``` {{% /codetab %}} diff --git a/daprdocs/static/images/workflow-trace-spans-zipkin-python.png b/daprdocs/static/images/workflow-trace-spans-zipkin-python.png new file mode 100644 index 0000000000000000000000000000000000000000..87fb35af8d4efb5cda208a417a3a738be246f775 GIT binary patch literal 185684 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 literal 0 HcmV?d00001 From ed91873034e36ec17a69320e3d34f681aa249baa Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 6 Jun 2023 10:39:18 -0700 Subject: [PATCH 02/10] Add back grpc integration doc Signed-off-by: Nick Greenfield --- .../integrations/gRPC-integration.md | 258 ++++++++++++++++++ 1 file changed, 258 insertions(+) diff --git a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md index e69de29bb2d..c7999a63798 100644 --- a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md +++ b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md @@ -0,0 +1,258 @@ +--- +type: docs +title: "How to: Use the gRPC interface in your Dapr application" +linkTitle: "How to: gRPC interface" +weight: 6000 +description: "Use the Dapr gRPC API in your application" +type: docs +--- + +Dapr implements both an HTTP and a gRPC API for local calls. [gRPC](https://grpc.io/) is useful for low-latency, high performance scenarios and has language integration using the proto clients. + +[Find a list of auto-generated clients in the Dapr SDK documentation]({{< ref sdks >}}). + +The Dapr runtime implements a [proto service](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto) that apps can communicate with via gRPC. + +In addition to calling Dapr via gRPC, Dapr supports service-to-service calls with gRPC by acting as a proxy. [Learn more in the gRPC service invocation how-to guide]({{< ref howto-invoke-services-grpc.md >}}). + +This guide demonstrates configuring and invoking Dapr with gRPC using a Go SDK application. + +## Configure Dapr to communicate with an app via gRPC + +{{< tabs "Self-hosted" "Kubernetes">}} + +{{% codetab %}} + +When running in self-hosted mode, use the `--app-protocol` flag to tell Dapr to use gRPC to talk to the app. + +```bash +dapr run --app-protocol grpc --app-port 5005 node app.js +``` + +This tells Dapr to communicate with your app via gRPC over port `5005`. + +{{% /codetab %}} + + +{{% codetab %}} + +On Kubernetes, set the following annotations in your deployment YAML: + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myapp + namespace: default + labels: + app: myapp +spec: + replicas: 1 + selector: + matchLabels: + app: myapp + template: + metadata: + labels: + app: myapp + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "myapp" + dapr.io/app-protocol: "grpc" + dapr.io/app-port: "5005" +... +``` + +{{% /codetab %}} + +{{< /tabs >}} + +## Invoke Dapr with gRPC + +The following steps show how to create a Dapr client and call the `SaveStateData` operation on it. + +1. Import the package: + + ```go + package main + + import ( + "context" + "log" + "os" + + dapr "github.com/dapr/go-sdk/client" + ) + ``` + +1. Create the client: + + ```go + // just for this demo + ctx := context.Background() + data := []byte("ping") + + // create the client + client, err := dapr.NewClient() + if err != nil { + log.Panic(err) + } + defer client.Close() + ``` + + 3. Invoke the `SaveState` method: + + ```go + // save state with the key key1 + err = client.SaveState(ctx, "statestore", "key1", data) + if err != nil { + log.Panic(err) + } + log.Println("data saved") + ``` + +Now you can explore all the different methods on the Dapr client. + +## Create a gRPC app with Dapr + +The following steps will show how to create an app that exposes a server for with which Dapr can communicate. + +1. Import the package: + + ```go + package main + + import ( + "context" + "fmt" + "log" + "net" + + "github.com/golang/protobuf/ptypes/any" + "github.com/golang/protobuf/ptypes/empty" + + commonv1pb "github.com/dapr/dapr/pkg/proto/common/v1" + pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1" + "google.golang.org/grpc" + ) + ``` + +1. Implement the interface: + + ```go + // server is our user app + type server struct { + pb.UnimplementedAppCallbackServer + } + + // EchoMethod is a simple demo method to invoke + func (s *server) EchoMethod() string { + return "pong" + } + + // This method gets invoked when a remote service has called the app through Dapr + // The payload carries a Method to identify the method, a set of metadata properties and an optional payload + func (s *server) OnInvoke(ctx context.Context, in *commonv1pb.InvokeRequest) (*commonv1pb.InvokeResponse, error) { + var response string + + switch in.Method { + case "EchoMethod": + response = s.EchoMethod() + } + + return &commonv1pb.InvokeResponse{ + ContentType: "text/plain; charset=UTF-8", + Data: &any.Any{Value: []byte(response)}, + }, nil + } + + // Dapr will call this method to get the list of topics the app wants to subscribe to. In this example, we are telling Dapr + // To subscribe to a topic named TopicA + func (s *server) ListTopicSubscriptions(ctx context.Context, in *empty.Empty) (*pb.ListTopicSubscriptionsResponse, error) { + return &pb.ListTopicSubscriptionsResponse{ + Subscriptions: []*pb.TopicSubscription{ + {Topic: "TopicA"}, + }, + }, nil + } + + // Dapr will call this method to get the list of bindings the app will get invoked by. In this example, we are telling Dapr + // To invoke our app with a binding named storage + func (s *server) ListInputBindings(ctx context.Context, in *empty.Empty) (*pb.ListInputBindingsResponse, error) { + return &pb.ListInputBindingsResponse{ + Bindings: []string{"storage"}, + }, nil + } + + // This method gets invoked every time a new event is fired from a registered binding. The message carries the binding name, a payload and optional metadata + func (s *server) OnBindingEvent(ctx context.Context, in *pb.BindingEventRequest) (*pb.BindingEventResponse, error) { + fmt.Println("Invoked from binding") + return &pb.BindingEventResponse{}, nil + } + + // This method is fired whenever a message has been published to a topic that has been subscribed. Dapr sends published messages in a CloudEvents 0.3 envelope. + func (s *server) OnTopicEvent(ctx context.Context, in *pb.TopicEventRequest) (*pb.TopicEventResponse, error) { + fmt.Println("Topic message arrived") + return &pb.TopicEventResponse{}, nil + } + + ``` + +1. Create the server: + + ```go + func main() { + // create listener + lis, err := net.Listen("tcp", ":50001") + if err != nil { + log.Fatalf("failed to listen: %v", err) + } + + // create grpc server + s := grpc.NewServer() + pb.RegisterAppCallbackServer(s, &server{}) + + fmt.Println("Client starting...") + + // and start... + if err := s.Serve(lis); err != nil { + log.Fatalf("failed to serve: %v", err) + } + } + ``` + + This creates a gRPC server for your app on port 50001. + +## Run the application + +{{< tabs "Self-hosted" "Kubernetes">}} + +{{% codetab %}} + +To run locally, use the Dapr CLI: + +```bash +dapr run --app-id goapp --app-port 50001 --app-protocol grpc go run main.go +``` + +{{% /codetab %}} + + +{{% codetab %}} + +On Kubernetes, set the required `dapr.io/app-protocol: "grpc"` and `dapr.io/app-port: "50001` annotations in your pod spec template, as mentioned above. + +{{% /codetab %}} + +{{< /tabs >}} + + +## Other languages + +You can use Dapr with any language supported by Protobuf, and not just with the currently available generated SDKs. + +Using the [protoc](https://developers.google.com/protocol-buffers/docs/downloads) tool, you can generate the Dapr clients for other languages like Ruby, C++, Rust, and others. + + ## Related Topics +- [Service invocation building block]({{< ref service-invocation >}}) +- [Service invocation API specification]({{< ref service_invocation_api.md >}}) From 5c4b0ec84c92b20227c55c1cd1cf0abd5f413464 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:13:42 -0700 Subject: [PATCH 03/10] Update daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md Co-authored-by: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../en/getting-started/quickstarts/workflow-quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 4bbac40d3a6..3a8098e60d8 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -289,7 +289,7 @@ In the terminal, start the order processor app alongside a Dapr sidecar: ```bash pip3 install -r requirements.txt -dapr run --app-id order-processor --components-path ../../../components/ -- python3 app.py +dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py ``` This starts the `order-processor` app with unique workflow ID and runs the workflow activities. From 976771049b72dcd8e2f1aa521b5f53335cf28f56 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:13:52 -0700 Subject: [PATCH 04/10] Update daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md Co-authored-by: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../en/getting-started/quickstarts/workflow-quickstart.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 3a8098e60d8..7316a74404a 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -282,7 +282,10 @@ In a new terminal window, navigate to the `order-processor` directory: ```bash cd workflows/python/sdk/order-processor ``` +Install the Dapr Python SDK package: +```bash +pip3 install -r requirements.txt ### Step 3: Run the order processor app In the terminal, start the order processor app alongside a Dapr sidecar: From 71ddca8cb514a215cad9d9953859146043da7a09 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:14:08 -0700 Subject: [PATCH 05/10] Update daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md Co-authored-by: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../en/getting-started/quickstarts/workflow-quickstart.md | 1 - 1 file changed, 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 7316a74404a..93e1e39836a 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -291,7 +291,6 @@ pip3 install -r requirements.txt In the terminal, start the order processor app alongside a Dapr sidecar: ```bash -pip3 install -r requirements.txt dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py ``` From c38f470dfc6ca8f5ed30ddebb2df9a6038054443 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 6 Jun 2023 13:14:22 -0700 Subject: [PATCH 06/10] Update daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md Co-authored-by: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../en/getting-started/quickstarts/workflow-quickstart.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 93e1e39836a..2738e03f1ab 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -294,6 +294,9 @@ In the terminal, start the order processor app alongside a Dapr sidecar: dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py ``` +> **Note:** Since Python3.exe is not defined in Windows, you may need to use `python workflow.py` instead of `python3 workflow.py`. + + This starts the `order-processor` app with unique workflow ID and runs the workflow activities. Expected output: From 45c7c10d828da7b91fd4a90a15b9899f772cfc93 Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 6 Jun 2023 13:21:47 -0700 Subject: [PATCH 07/10] Address PR feedback Signed-off-by: Nick Greenfield --- .../integrations/gRPC-integration.md | 259 +----------------- .../quickstarts/workflow-quickstart.md | 37 +-- 2 files changed, 6 insertions(+), 290 deletions(-) diff --git a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md index c7999a63798..c59d9b6344f 100644 --- a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md +++ b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md @@ -1,258 +1 @@ ---- -type: docs -title: "How to: Use the gRPC interface in your Dapr application" -linkTitle: "How to: gRPC interface" -weight: 6000 -description: "Use the Dapr gRPC API in your application" -type: docs ---- - -Dapr implements both an HTTP and a gRPC API for local calls. [gRPC](https://grpc.io/) is useful for low-latency, high performance scenarios and has language integration using the proto clients. - -[Find a list of auto-generated clients in the Dapr SDK documentation]({{< ref sdks >}}). - -The Dapr runtime implements a [proto service](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto) that apps can communicate with via gRPC. - -In addition to calling Dapr via gRPC, Dapr supports service-to-service calls with gRPC by acting as a proxy. [Learn more in the gRPC service invocation how-to guide]({{< ref howto-invoke-services-grpc.md >}}). - -This guide demonstrates configuring and invoking Dapr with gRPC using a Go SDK application. - -## Configure Dapr to communicate with an app via gRPC - -{{< tabs "Self-hosted" "Kubernetes">}} - -{{% codetab %}} - -When running in self-hosted mode, use the `--app-protocol` flag to tell Dapr to use gRPC to talk to the app. - -```bash -dapr run --app-protocol grpc --app-port 5005 node app.js -``` - -This tells Dapr to communicate with your app via gRPC over port `5005`. - -{{% /codetab %}} - - -{{% codetab %}} - -On Kubernetes, set the following annotations in your deployment YAML: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: myapp - namespace: default - labels: - app: myapp -spec: - replicas: 1 - selector: - matchLabels: - app: myapp - template: - metadata: - labels: - app: myapp - annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "myapp" - dapr.io/app-protocol: "grpc" - dapr.io/app-port: "5005" -... -``` - -{{% /codetab %}} - -{{< /tabs >}} - -## Invoke Dapr with gRPC - -The following steps show how to create a Dapr client and call the `SaveStateData` operation on it. - -1. Import the package: - - ```go - package main - - import ( - "context" - "log" - "os" - - dapr "github.com/dapr/go-sdk/client" - ) - ``` - -1. Create the client: - - ```go - // just for this demo - ctx := context.Background() - data := []byte("ping") - - // create the client - client, err := dapr.NewClient() - if err != nil { - log.Panic(err) - } - defer client.Close() - ``` - - 3. Invoke the `SaveState` method: - - ```go - // save state with the key key1 - err = client.SaveState(ctx, "statestore", "key1", data) - if err != nil { - log.Panic(err) - } - log.Println("data saved") - ``` - -Now you can explore all the different methods on the Dapr client. - -## Create a gRPC app with Dapr - -The following steps will show how to create an app that exposes a server for with which Dapr can communicate. - -1. Import the package: - - ```go - package main - - import ( - "context" - "fmt" - "log" - "net" - - "github.com/golang/protobuf/ptypes/any" - "github.com/golang/protobuf/ptypes/empty" - - commonv1pb "github.com/dapr/dapr/pkg/proto/common/v1" - pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1" - "google.golang.org/grpc" - ) - ``` - -1. Implement the interface: - - ```go - // server is our user app - type server struct { - pb.UnimplementedAppCallbackServer - } - - // EchoMethod is a simple demo method to invoke - func (s *server) EchoMethod() string { - return "pong" - } - - // This method gets invoked when a remote service has called the app through Dapr - // The payload carries a Method to identify the method, a set of metadata properties and an optional payload - func (s *server) OnInvoke(ctx context.Context, in *commonv1pb.InvokeRequest) (*commonv1pb.InvokeResponse, error) { - var response string - - switch in.Method { - case "EchoMethod": - response = s.EchoMethod() - } - - return &commonv1pb.InvokeResponse{ - ContentType: "text/plain; charset=UTF-8", - Data: &any.Any{Value: []byte(response)}, - }, nil - } - - // Dapr will call this method to get the list of topics the app wants to subscribe to. In this example, we are telling Dapr - // To subscribe to a topic named TopicA - func (s *server) ListTopicSubscriptions(ctx context.Context, in *empty.Empty) (*pb.ListTopicSubscriptionsResponse, error) { - return &pb.ListTopicSubscriptionsResponse{ - Subscriptions: []*pb.TopicSubscription{ - {Topic: "TopicA"}, - }, - }, nil - } - - // Dapr will call this method to get the list of bindings the app will get invoked by. In this example, we are telling Dapr - // To invoke our app with a binding named storage - func (s *server) ListInputBindings(ctx context.Context, in *empty.Empty) (*pb.ListInputBindingsResponse, error) { - return &pb.ListInputBindingsResponse{ - Bindings: []string{"storage"}, - }, nil - } - - // This method gets invoked every time a new event is fired from a registered binding. The message carries the binding name, a payload and optional metadata - func (s *server) OnBindingEvent(ctx context.Context, in *pb.BindingEventRequest) (*pb.BindingEventResponse, error) { - fmt.Println("Invoked from binding") - return &pb.BindingEventResponse{}, nil - } - - // This method is fired whenever a message has been published to a topic that has been subscribed. Dapr sends published messages in a CloudEvents 0.3 envelope. - func (s *server) OnTopicEvent(ctx context.Context, in *pb.TopicEventRequest) (*pb.TopicEventResponse, error) { - fmt.Println("Topic message arrived") - return &pb.TopicEventResponse{}, nil - } - - ``` - -1. Create the server: - - ```go - func main() { - // create listener - lis, err := net.Listen("tcp", ":50001") - if err != nil { - log.Fatalf("failed to listen: %v", err) - } - - // create grpc server - s := grpc.NewServer() - pb.RegisterAppCallbackServer(s, &server{}) - - fmt.Println("Client starting...") - - // and start... - if err := s.Serve(lis); err != nil { - log.Fatalf("failed to serve: %v", err) - } - } - ``` - - This creates a gRPC server for your app on port 50001. - -## Run the application - -{{< tabs "Self-hosted" "Kubernetes">}} - -{{% codetab %}} - -To run locally, use the Dapr CLI: - -```bash -dapr run --app-id goapp --app-port 50001 --app-protocol grpc go run main.go -``` - -{{% /codetab %}} - - -{{% codetab %}} - -On Kubernetes, set the required `dapr.io/app-protocol: "grpc"` and `dapr.io/app-port: "50001` annotations in your pod spec template, as mentioned above. - -{{% /codetab %}} - -{{< /tabs >}} - - -## Other languages - -You can use Dapr with any language supported by Protobuf, and not just with the currently available generated SDKs. - -Using the [protoc](https://developers.google.com/protocol-buffers/docs/downloads) tool, you can generate the Dapr clients for other languages like Ruby, C++, Rust, and others. - - ## Related Topics -- [Service invocation building block]({{< ref service-invocation >}}) -- [Service invocation API specification]({{< ref service_invocation_api.md >}}) +d \ No newline at end of file diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 2738e03f1ab..0cb7186e07c 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -282,10 +282,13 @@ In a new terminal window, navigate to the `order-processor` directory: ```bash cd workflows/python/sdk/order-processor ``` + Install the Dapr Python SDK package: ```bash pip3 install -r requirements.txt +``` + ### Step 3: Run the order processor app In the terminal, start the order processor app alongside a Dapr sidecar: @@ -296,39 +299,23 @@ dapr run --app-id order-processor --resources-path ../../../components/ -- pytho > **Note:** Since Python3.exe is not defined in Windows, you may need to use `python workflow.py` instead of `python3 workflow.py`. - This starts the `order-processor` app with unique workflow ID and runs the workflow activities. Expected output: -``` -== APP == *** Welcome to the Dapr Workflow console app sample! -== APP == *** Using this app, you can place orders that start workflows. -== APP == 2023-06-06 09:35:52.892 durabletask-worker INFO: Starting gRPC worker that connects to 127.0.0.1:65406 -== APP == item: InventoryItem(item_name=Paperclip, per_item_cost=5, quantity=100) -== APP == item: InventoryItem(item_name=Cars, per_item_cost=15000, quantity=100) -== APP == item: InventoryItem(item_name=Computers, per_item_cost=500, quantity=100) -== APP == ==========Begin the purchase of item:========== +```bash == APP == Starting order workflow, purchasing 11 of cars == APP == 2023-06-06 09:35:52.945 durabletask-worker INFO: Successfully connected to 127.0.0.1:65406. Waiting for work items... -== APP == 2023-06-06 09:35:55.960 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). == APP == INFO:NotifyActivity:Received order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at $165000 ! -== APP == 2023-06-06 09:35:56.001 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). == APP == INFO:VerifyInventoryActivity:Verifying inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da of 11 cars == APP == INFO:VerifyInventoryActivity:There are 100 Cars available for purchase -== APP == 2023-06-06 09:35:56.035 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 0 event(s). == APP == INFO:RequestApprovalActivity:Requesting approval for payment of 165000 USD for 11 cars -== APP == 2023-06-06 09:35:56.071 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 1 task(s) and 1 event(s). == APP == 2023-06-06 09:36:05.969 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da Event raised: manager_approval -== APP == 2023-06-06 09:36:05.969 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). == APP == INFO:NotifyActivity:Payment for order f4e1926e-3721-478d-be8a-f5bebd1995da has been approved! -== APP == 2023-06-06 09:36:06.000 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). == APP == INFO:ProcessPaymentActivity:Processing payment: f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at 165000 USD == APP == INFO:ProcessPaymentActivity:Payment for request ID f4e1926e-3721-478d-be8a-f5bebd1995da processed successfully -== APP == 2023-06-06 09:36:06.035 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). == APP == INFO:UpdateInventoryActivity:Checking inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars == APP == INFO:UpdateInventoryActivity:There are now 89 cars left in stock -== APP == 2023-06-06 09:36:06.071 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Waiting for 2 task(s) and 0 event(s). == APP == INFO:NotifyActivity:Order f4e1926e-3721-478d-be8a-f5bebd1995da has completed! == APP == 2023-06-06 09:36:06.106 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Orchestration completed with status: COMPLETED == APP == Workflow completed! Result: Completed @@ -343,7 +330,7 @@ If you have Zipkin configured for Dapr locally on your machine, you can view the ### What happened? -When you ran `dapr run --app-id order-processor --components-path ../../../components/ -- python3 app.py`: +When you ran `dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py`: 1. A unique order ID for the workflow is generated (in the above example, `f4e1926e-3721-478d-be8a-f5bebd1995da`) and the workflow is scheduled. 1. The `NotifyActivity` workflow activity sends a notification saying an order for 11 cars has been received. @@ -365,11 +352,6 @@ In the application's program file: ```python class WorkflowConsoleApp: def main(self): - print("*** Welcome to the Dapr Workflow console app sample!", flush=True) - print("*** Using this app, you can place orders that start workflows.", flush=True) - # Wait for the sidecar to become available - sleep(5) - # Register workflow and activities workflowRuntime = WorkflowRuntime(settings.DAPR_RUNTIME_HOST, settings.DAPR_GRPC_PORT) workflowRuntime.register_workflow(order_processing_workflow) @@ -380,15 +362,6 @@ class WorkflowConsoleApp: workflowRuntime.register_activity(update_inventory_activity) workflowRuntime.start() - # Instantiate Dapr client - daprClient = DaprClient(address=f'{settings.DAPR_RUNTIME_HOST}:{settings.DAPR_GRPC_PORT}') - baseInventory = {} - baseInventory["paperclip"] = InventoryItem("Paperclip", 5, 100) - baseInventory["cars"] = InventoryItem("Cars", 15000, 100) - baseInventory["computers"] = InventoryItem("Computers", 500, 100) - - self.restock_inventory(daprClient, baseInventory) - print("==========Begin the purchase of item:==========", flush=True) item_name = default_item_name order_quantity = 11 From 54d83f26b640b96dd1f1f1564ec1e56932355806 Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 6 Jun 2023 14:22:17 -0700 Subject: [PATCH 08/10] revert removal of integration file Signed-off-by: Nick Greenfield --- .../integrations/gRPC-integration.md | 259 +++++++++++++++++- 1 file changed, 258 insertions(+), 1 deletion(-) diff --git a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md index c59d9b6344f..c7999a63798 100644 --- a/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md +++ b/daprdocs/content/en/developing-applications/integrations/gRPC-integration.md @@ -1 +1,258 @@ -d \ No newline at end of file +--- +type: docs +title: "How to: Use the gRPC interface in your Dapr application" +linkTitle: "How to: gRPC interface" +weight: 6000 +description: "Use the Dapr gRPC API in your application" +type: docs +--- + +Dapr implements both an HTTP and a gRPC API for local calls. [gRPC](https://grpc.io/) is useful for low-latency, high performance scenarios and has language integration using the proto clients. + +[Find a list of auto-generated clients in the Dapr SDK documentation]({{< ref sdks >}}). + +The Dapr runtime implements a [proto service](https://github.com/dapr/dapr/blob/master/dapr/proto/runtime/v1/dapr.proto) that apps can communicate with via gRPC. + +In addition to calling Dapr via gRPC, Dapr supports service-to-service calls with gRPC by acting as a proxy. [Learn more in the gRPC service invocation how-to guide]({{< ref howto-invoke-services-grpc.md >}}). + +This guide demonstrates configuring and invoking Dapr with gRPC using a Go SDK application. + +## Configure Dapr to communicate with an app via gRPC + +{{< tabs "Self-hosted" "Kubernetes">}} + +{{% codetab %}} + +When running in self-hosted mode, use the `--app-protocol` flag to tell Dapr to use gRPC to talk to the app. + +```bash +dapr run --app-protocol grpc --app-port 5005 node app.js +``` + +This tells Dapr to communicate with your app via gRPC over port `5005`. + +{{% /codetab %}} + + +{{% codetab %}} + +On Kubernetes, set the following annotations in your deployment YAML: + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myapp + namespace: default + labels: + app: myapp +spec: + replicas: 1 + selector: + matchLabels: + app: myapp + template: + metadata: + labels: + app: myapp + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "myapp" + dapr.io/app-protocol: "grpc" + dapr.io/app-port: "5005" +... +``` + +{{% /codetab %}} + +{{< /tabs >}} + +## Invoke Dapr with gRPC + +The following steps show how to create a Dapr client and call the `SaveStateData` operation on it. + +1. Import the package: + + ```go + package main + + import ( + "context" + "log" + "os" + + dapr "github.com/dapr/go-sdk/client" + ) + ``` + +1. Create the client: + + ```go + // just for this demo + ctx := context.Background() + data := []byte("ping") + + // create the client + client, err := dapr.NewClient() + if err != nil { + log.Panic(err) + } + defer client.Close() + ``` + + 3. Invoke the `SaveState` method: + + ```go + // save state with the key key1 + err = client.SaveState(ctx, "statestore", "key1", data) + if err != nil { + log.Panic(err) + } + log.Println("data saved") + ``` + +Now you can explore all the different methods on the Dapr client. + +## Create a gRPC app with Dapr + +The following steps will show how to create an app that exposes a server for with which Dapr can communicate. + +1. Import the package: + + ```go + package main + + import ( + "context" + "fmt" + "log" + "net" + + "github.com/golang/protobuf/ptypes/any" + "github.com/golang/protobuf/ptypes/empty" + + commonv1pb "github.com/dapr/dapr/pkg/proto/common/v1" + pb "github.com/dapr/go-sdk/dapr/proto/runtime/v1" + "google.golang.org/grpc" + ) + ``` + +1. Implement the interface: + + ```go + // server is our user app + type server struct { + pb.UnimplementedAppCallbackServer + } + + // EchoMethod is a simple demo method to invoke + func (s *server) EchoMethod() string { + return "pong" + } + + // This method gets invoked when a remote service has called the app through Dapr + // The payload carries a Method to identify the method, a set of metadata properties and an optional payload + func (s *server) OnInvoke(ctx context.Context, in *commonv1pb.InvokeRequest) (*commonv1pb.InvokeResponse, error) { + var response string + + switch in.Method { + case "EchoMethod": + response = s.EchoMethod() + } + + return &commonv1pb.InvokeResponse{ + ContentType: "text/plain; charset=UTF-8", + Data: &any.Any{Value: []byte(response)}, + }, nil + } + + // Dapr will call this method to get the list of topics the app wants to subscribe to. In this example, we are telling Dapr + // To subscribe to a topic named TopicA + func (s *server) ListTopicSubscriptions(ctx context.Context, in *empty.Empty) (*pb.ListTopicSubscriptionsResponse, error) { + return &pb.ListTopicSubscriptionsResponse{ + Subscriptions: []*pb.TopicSubscription{ + {Topic: "TopicA"}, + }, + }, nil + } + + // Dapr will call this method to get the list of bindings the app will get invoked by. In this example, we are telling Dapr + // To invoke our app with a binding named storage + func (s *server) ListInputBindings(ctx context.Context, in *empty.Empty) (*pb.ListInputBindingsResponse, error) { + return &pb.ListInputBindingsResponse{ + Bindings: []string{"storage"}, + }, nil + } + + // This method gets invoked every time a new event is fired from a registered binding. The message carries the binding name, a payload and optional metadata + func (s *server) OnBindingEvent(ctx context.Context, in *pb.BindingEventRequest) (*pb.BindingEventResponse, error) { + fmt.Println("Invoked from binding") + return &pb.BindingEventResponse{}, nil + } + + // This method is fired whenever a message has been published to a topic that has been subscribed. Dapr sends published messages in a CloudEvents 0.3 envelope. + func (s *server) OnTopicEvent(ctx context.Context, in *pb.TopicEventRequest) (*pb.TopicEventResponse, error) { + fmt.Println("Topic message arrived") + return &pb.TopicEventResponse{}, nil + } + + ``` + +1. Create the server: + + ```go + func main() { + // create listener + lis, err := net.Listen("tcp", ":50001") + if err != nil { + log.Fatalf("failed to listen: %v", err) + } + + // create grpc server + s := grpc.NewServer() + pb.RegisterAppCallbackServer(s, &server{}) + + fmt.Println("Client starting...") + + // and start... + if err := s.Serve(lis); err != nil { + log.Fatalf("failed to serve: %v", err) + } + } + ``` + + This creates a gRPC server for your app on port 50001. + +## Run the application + +{{< tabs "Self-hosted" "Kubernetes">}} + +{{% codetab %}} + +To run locally, use the Dapr CLI: + +```bash +dapr run --app-id goapp --app-port 50001 --app-protocol grpc go run main.go +``` + +{{% /codetab %}} + + +{{% codetab %}} + +On Kubernetes, set the required `dapr.io/app-protocol: "grpc"` and `dapr.io/app-port: "50001` annotations in your pod spec template, as mentioned above. + +{{% /codetab %}} + +{{< /tabs >}} + + +## Other languages + +You can use Dapr with any language supported by Protobuf, and not just with the currently available generated SDKs. + +Using the [protoc](https://developers.google.com/protocol-buffers/docs/downloads) tool, you can generate the Dapr clients for other languages like Ruby, C++, Rust, and others. + + ## Related Topics +- [Service invocation building block]({{< ref service-invocation >}}) +- [Service invocation API specification]({{< ref service_invocation_api.md >}}) From f779b2d0faab63d94881a5bb2d7d3e58a368ebe1 Mon Sep 17 00:00:00 2001 From: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Date: Tue, 6 Jun 2023 14:44:43 -0700 Subject: [PATCH 09/10] Update daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md Co-authored-by: Hannah Hunter <94493363+hhunter-ms@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> --- .../en/getting-started/quickstarts/workflow-quickstart.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 0cb7186e07c..1f8e7055e7f 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -297,7 +297,7 @@ In the terminal, start the order processor app alongside a Dapr sidecar: dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py ``` -> **Note:** Since Python3.exe is not defined in Windows, you may need to use `python workflow.py` instead of `python3 workflow.py`. +> **Note:** Since Python3.exe is not defined in Windows, you may need to use `python app.py` instead of `python3 app.py`. This starts the `order-processor` app with unique workflow ID and runs the workflow activities. From a22fdb590de26b410ad17e547c9b301fd19cbaf3 Mon Sep 17 00:00:00 2001 From: Nick Greenfield Date: Tue, 6 Jun 2023 14:55:42 -0700 Subject: [PATCH 10/10] update purchase quantity to 10 cars to be consistent with .net Signed-off-by: Nick Greenfield --- .../quickstarts/workflow-quickstart.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md index 1f8e7055e7f..a5fab6c7421 100644 --- a/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/workflow-quickstart.md @@ -304,18 +304,18 @@ This starts the `order-processor` app with unique workflow ID and runs the workf Expected output: ```bash -== APP == Starting order workflow, purchasing 11 of cars +== APP == Starting order workflow, purchasing 10 of cars == APP == 2023-06-06 09:35:52.945 durabletask-worker INFO: Successfully connected to 127.0.0.1:65406. Waiting for work items... -== APP == INFO:NotifyActivity:Received order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at $165000 ! -== APP == INFO:VerifyInventoryActivity:Verifying inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da of 11 cars +== APP == INFO:NotifyActivity:Received order f4e1926e-3721-478d-be8a-f5bebd1995da for 10 cars at $165000 ! +== APP == INFO:VerifyInventoryActivity:Verifying inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da of 10 cars == APP == INFO:VerifyInventoryActivity:There are 100 Cars available for purchase -== APP == INFO:RequestApprovalActivity:Requesting approval for payment of 165000 USD for 11 cars +== APP == INFO:RequestApprovalActivity:Requesting approval for payment of 165000 USD for 10 cars == APP == 2023-06-06 09:36:05.969 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da Event raised: manager_approval == APP == INFO:NotifyActivity:Payment for order f4e1926e-3721-478d-be8a-f5bebd1995da has been approved! -== APP == INFO:ProcessPaymentActivity:Processing payment: f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars at 165000 USD +== APP == INFO:ProcessPaymentActivity:Processing payment: f4e1926e-3721-478d-be8a-f5bebd1995da for 10 cars at 165000 USD == APP == INFO:ProcessPaymentActivity:Payment for request ID f4e1926e-3721-478d-be8a-f5bebd1995da processed successfully -== APP == INFO:UpdateInventoryActivity:Checking inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da for 11 cars -== APP == INFO:UpdateInventoryActivity:There are now 89 cars left in stock +== APP == INFO:UpdateInventoryActivity:Checking inventory for order f4e1926e-3721-478d-be8a-f5bebd1995da for 10 cars +== APP == INFO:UpdateInventoryActivity:There are now 90 cars left in stock == APP == INFO:NotifyActivity:Order f4e1926e-3721-478d-be8a-f5bebd1995da has completed! == APP == 2023-06-06 09:36:06.106 durabletask-worker INFO: f4e1926e-3721-478d-be8a-f5bebd1995da: Orchestration completed with status: COMPLETED == APP == Workflow completed! Result: Completed @@ -333,7 +333,7 @@ If you have Zipkin configured for Dapr locally on your machine, you can view the When you ran `dapr run --app-id order-processor --resources-path ../../../components/ -- python3 app.py`: 1. A unique order ID for the workflow is generated (in the above example, `f4e1926e-3721-478d-be8a-f5bebd1995da`) and the workflow is scheduled. -1. The `NotifyActivity` workflow activity sends a notification saying an order for 11 cars has been received. +1. The `NotifyActivity` workflow activity sends a notification saying an order for 10 cars has been received. 1. The `ReserveInventoryActivity` workflow activity checks the inventory data, determines if you can supply the ordered item, and responds with the number of cars in stock. 1. Your workflow starts and notifies you of its status. 1. The `ProcessPaymentActivity` workflow activity begins processing payment for order `f4e1926e-3721-478d-be8a-f5bebd1995da` and confirms if successful. @@ -364,7 +364,7 @@ class WorkflowConsoleApp: print("==========Begin the purchase of item:==========", flush=True) item_name = default_item_name - order_quantity = 11 + order_quantity = 10 total_cost = int(order_quantity) * baseInventory[item_name].per_item_cost order = OrderPayload(item_name=item_name, quantity=int(order_quantity), total_cost=total_cost)