docs/daprdocs/content/en/developing-applications/building-blocks/service-invocation/service-invocation-namespac...

1.7 KiB

type title linkTitle weight description
docs Service invocation across namespaces Service invocation namespaces 1000 Call between services deployed to different namespaces

This article describes how you can call between services deployed to different namespaces. By default, you can invoke services within the same namespace by simply referencing the app ID (nodeapp):

localhost:3500/v1.0/invoke/nodeapp/method/neworder

Service invocation also supports calls across namespaces. On all supported hosting platforms, Dapr app IDs conform to a valid FQDN format that includes the target namespace. You can therefore specify both the app ID (nodeapp) in addition to the namespace the app runs in (production). For example to call the neworder method on the nodeapp, in the production namespace would look like this:

localhost:3500/v1.0/invoke/nodeapp.production/method/neworder

When using service invocation to call an application in a namespace you qualify it with the namespace. This is especially useful in cross namespace calls in a Kubernetes cluster. As another example, calling the ping method on myapp which is scoped to the production namespace would look like this:

https://localhost:3500/v1.0/invoke/myapp.production/method/ping

Example 3

Call the same ping method as example 2 using a curl command from an external DNS address (in this case, api.demo.dapr.team) and supply the Dapr API token for authentication:

MacOS/Linux:

curl -i -d '{ "message": "hello" }' \
     -H "Content-type: application/json" \
     -H "dapr-api-token: ${API_TOKEN}" \
     https://api.demo.dapr.team/v1.0/invoke/myapp.production/method/ping