mirror of https://github.com/dapr/docs.git
Upmerge to 1.9 (#2793)
* feature/helmchart: supported private helm chart repo to install dapr cluster Signed-off-by: 1046102779 <seachen@tencent.com> * Updates wasm middleware documentation with compilation instructions These changes are coupled with https://github.com/dapr/components-contrib/pull/1833 Signed-off-by: Adrian Cole <adrian@tetrate.io> * Update daprdocs/content/en/reference/components-reference/supported-middleware/middleware-wasm.md Co-authored-by: Mark Fussell <markfussell@gmail.com> Signed-off-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com> * feedback Signed-off-by: Adrian Cole <adrian@tetrate.io> * permute Signed-off-by: Adrian Cole <adrian@tetrate.io> * feature/helmchart: supported private helm chart repo to install dapr cluster Signed-off-by: 1046102779 <seachen@tencent.com> * add note to aws sns/sqs component doc; quick edit Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * change data to value Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * feature/helmchart: supported private helm chart repo to install dapr cluster Signed-off-by: 1046102779 <seachen@tencent.com> * Patch 3 (#2691) * Update release version from 1.8.2 to 1.8.3 Signed-off-by: nyemade-uversky <55847877+nyemade-uversky@users.noreply.github.com> * Update shortcode from 1.8.2 to 1.8.3 Signed-off-by: nyemade-uversky <55847877+nyemade-uversky@users.noreply.github.com> * fix: typo Signed-off-by: 1046102779 <seachen@tencent.com> * feature: add a private helm repo for dapr Signed-off-by: 1046102779 <seachen@tencent.com> * Update install-dapr-cli.md Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> * Update daprdocs/content/en/operations/hosting/kubernetes/kubernetes-deploy.md Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Signed-off-by: yellow chicks <seachen@tencent.com> * Fix pubsub quickstart component name to match QS source code Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> * add output of success Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * remove word Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * add sentence Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * redis 6 update (#2718) Signed-off-by: yaron2 <schneider.yaron@live.com> Signed-off-by: yaron2 <schneider.yaron@live.com> * Update Dapr version to 1.8.4 (#2714) * Update Dapr version to 1.8.4 Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> * Update CLI version to 1.8.1 Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> * Fixed an issue with code highlighting Signed-off-by: Lorenzo Montanari <l0ll098@users.noreply.github.com> * Fix links to broken middleware components Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> * RethinkDB has no transactions, etags Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> * fix a typo (#2748) Signed-off-by: Loong <loong.dai@intel.com> Signed-off-by: Loong <loong.dai@intel.com> * fix typo (#2751) Signed-off-by: RcXu <honeyxhl@163.com> Signed-off-by: RcXu <honeyxhl@163.com> Co-authored-by: Mark Fussell <markfussell@gmail.com> * Update component status in v1.7 Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> * Mark components as stable in v1.8 Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> * Correct state azure stablestorage status in v1.7 Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> * Update setup-sqlserver.md Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> * fix some typos (#2765) Signed-off-by: Loong <loong.dai@intel.com> Signed-off-by: Loong <loong.dai@intel.com> * Typo fix installtion > installation (#2726) Signed-off-by: Greg. A. <gautric@users.noreply.github.com> Signed-off-by: Greg. A. <gautric@users.noreply.github.com> Co-authored-by: Mark Fussell <markfussell@gmail.com> * Add a new version of the Dapr Diagrams deck (#2773) Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> * Fix typos in MongoDB state configuration file example (#2775) Closes https://github.com/dapr/docs/issues/2774 Signed-off-by: Yash Nisar <yashnisar@microsoft.com> Signed-off-by: Yash Nisar <yashnisar@microsoft.com> * update service invo row item Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * update az cli commands Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * remove unnecessary flags Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * ignore links Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> * Fix broken link Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> * Fix broken link Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> * remove ignore links Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> Signed-off-by: 1046102779 <seachen@tencent.com> Signed-off-by: Adrian Cole <adrian@tetrate.io> Signed-off-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com> Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com> Signed-off-by: nyemade-uversky <55847877+nyemade-uversky@users.noreply.github.com> Signed-off-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Signed-off-by: yellow chicks <seachen@tencent.com> Signed-off-by: Nick Greenfield <nigreenf@microsoft.com> Signed-off-by: yaron2 <schneider.yaron@live.com> Signed-off-by: Lorenzo Montanari <l0ll098@users.noreply.github.com> Signed-off-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> Signed-off-by: Loong <loong.dai@intel.com> Signed-off-by: RcXu <honeyxhl@163.com> Signed-off-by: Greg. A. <gautric@users.noreply.github.com> Signed-off-by: Yash Nisar <yashnisar@microsoft.com> Co-authored-by: 1046102779 <seachen@tencent.com> Co-authored-by: Adrian Cole <adrian@tetrate.io> Co-authored-by: Crypt Keeper <64215+codefromthecrypt@users.noreply.github.com> Co-authored-by: Mark Fussell <markfussell@gmail.com> Co-authored-by: greenie-msft <56556602+greenie-msft@users.noreply.github.com> Co-authored-by: nyemade-uversky <55847877+nyemade-uversky@users.noreply.github.com> Co-authored-by: Yaron Schneider <schneider.yaron@live.com> Co-authored-by: Nick Greenfield <nigreenf@microsoft.com> Co-authored-by: Lorenzo Montanari <l0ll098@users.noreply.github.com> Co-authored-by: Bernd Verst <4535280+berndverst@users.noreply.github.com> Co-authored-by: Loong Dai <loong.dai@intel.com> Co-authored-by: Mr.Black <honeyxhl@163.com> Co-authored-by: Greg. A <gautric@users.noreply.github.com> Co-authored-by: Yash Nisar <yashnisar@microsoft.com>
This commit is contained in:
parent
a6301852bb
commit
a35f0dcdb8
|
@ -43,7 +43,7 @@ Each of these building block APIs is independent, meaning that you can use one,
|
|||
| [**Observability**]({{<ref "observability-concept.md">}}) | Dapr emits metrics, logs, and traces to debug and monitor both Dapr and user applications. Dapr supports distributed tracing to easily diagnose and serve inter-service calls in production using the W3C Trace Context standard and Open Telemetry to send to different monitoring tools.
|
||||
| [**Secrets**]({{<ref "secrets-overview.md">}}) | The secrets management API integrates with public cloud and local secret stores to retrieve the secrets for use in application code.
|
||||
| [**Configuration**]({{<ref "configuration-api-overview.md">}}) | The configuration API enables you to retrieve and subscribe to application configuration items from configuration stores.
|
||||
| [**Distributed lock**]({{<ref "distributed-lock-api-overview.md">}}) | The distributed lock API enables your application to aquire a lock for any resource that gives it exclusive access until either the lock is released by the application, or a lease timeout occurs.
|
||||
| [**Distributed lock**]({{<ref "distributed-lock-api-overview.md">}}) | The distributed lock API enables your application to acquire a lock for any resource that gives it exclusive access until either the lock is released by the application, or a lease timeout occurs.
|
||||
|
||||
## Sidecar architecture
|
||||
|
||||
|
@ -53,7 +53,7 @@ Dapr exposes its HTTP and gRPC APIs as a sidecar architecture, either as a conta
|
|||
|
||||
## Hosting environments
|
||||
|
||||
Dapr can be hosted in multiple environments, including self-hosted on a Windows/Linux/macOS machines for local developement and on Kubernetes or clusters of physical or virtual machines in production.
|
||||
Dapr can be hosted in multiple environments, including self-hosted on a Windows/Linux/macOS machines for local development and on Kubernetes or clusters of physical or virtual machines in production.
|
||||
|
||||
### Self-hosted local development
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ Supported formats:
|
|||
* [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) format. Example: `PT2H30M`
|
||||
|
||||
---
|
||||
The actor runtime validates correctess of the scheduling configuration and returns error on invalid input.
|
||||
The actor runtime validates correctness of the scheduling configuration and returns error on invalid input.
|
||||
|
||||
When you specify both the number of repetitions in `period` as well as `ttl`, the timer/reminder will be stopped when either condition is met.
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ Create a configuration item in a supported configuration store. This can be a si
|
|||
### Run Redis with Docker
|
||||
|
||||
```
|
||||
docker run --name my-redis -p 6379:6379 -d redis
|
||||
docker run --name my-redis -p 6379:6379 -d redis:6
|
||||
```
|
||||
|
||||
### Save an item
|
||||
|
|
|
@ -94,5 +94,5 @@ when you rotate a key, data encrypted with the old key is not automatically re-e
|
|||
## Related links
|
||||
|
||||
- [Security overview]({{< ref "security-concept.md" >}})
|
||||
- [State store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/Readme.md#implementing-state-query-api)
|
||||
- [State store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/README.md#implementing-state-query-api)
|
||||
- [State store components]({{< ref "supported-state-stores.md" >}})
|
||||
|
|
|
@ -510,5 +510,5 @@ You can find additional information in the [related links]({{< ref "#related-lin
|
|||
|
||||
- Refer to the [query API reference]({{< ref "state_api.md#state-query" >}}).
|
||||
- See the [state store components that implement query support]({{< ref supported-state-stores.md >}}).
|
||||
- View the [state store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/Readme.md#implementing-state-query-api).
|
||||
- View the [state store query API implementation guide](https://github.com/dapr/components-contrib/blob/master/state/README.md#implementing-state-query-api).
|
||||
- See how to [query Redis state store]({{< ref "setup-redis.md#querying-json-objects" >}}).
|
||||
|
|
|
@ -108,11 +108,7 @@ First, create the Azure AD application with:
|
|||
APP_NAME="dapr-application"
|
||||
|
||||
# Create the app
|
||||
APP_ID=$(az ad app create \
|
||||
--display-name "${APP_NAME}" \
|
||||
--available-to-other-tenants false \
|
||||
--oauth2-allow-implicit-flow false \
|
||||
| jq -r .appId)
|
||||
APP_ID=$(az ad app create --display-name "${APP_NAME}" | jq -r .appId)
|
||||
```
|
||||
|
||||
{{< tabs "Client secret" "Certificate">}}
|
||||
|
@ -124,16 +120,14 @@ To create a **client secret**, then run this command. This will generate a rando
|
|||
```sh
|
||||
az ad app credential reset \
|
||||
--id "${APP_ID}" \
|
||||
--years 2 \
|
||||
--password $(openssl rand -base64 30)
|
||||
--years 2
|
||||
```
|
||||
|
||||
The ouput of the command above will be similar to this:
|
||||
The output of the command above will be similar to this:
|
||||
|
||||
```json
|
||||
{
|
||||
"appId": "c7dd251f-811f-4ba2-a905-acd4d3f8f08b",
|
||||
"name": "c7dd251f-811f-4ba2-a905-acd4d3f8f08b",
|
||||
"password": "Ecy3XG7zVZK3/vl/a2NSB+a1zXLa8RnMum/IgD0E",
|
||||
"tenant": "cd4b2887-304c-47e1-b4d5-65447fdd542b"
|
||||
}
|
||||
|
@ -164,7 +158,6 @@ The output of the command above should look like:
|
|||
{
|
||||
"appId": "c7dd251f-811f-4ba2-a905-acd4d3f8f08b",
|
||||
"fileWithCertAndPrivateKey": "/Users/alessandro/tmpgtdgibk4.pem",
|
||||
"name": "c7dd251f-811f-4ba2-a905-acd4d3f8f08b",
|
||||
"password": null,
|
||||
"tenant": "cd4b2887-304c-47e1-b4d5-65447fdd542b"
|
||||
}
|
||||
|
@ -190,7 +183,7 @@ Once you have created an Azure AD application, create a Service Principal for th
|
|||
```sh
|
||||
SERVICE_PRINCIPAL_ID=$(az ad sp create \
|
||||
--id "${APP_ID}" \
|
||||
| jq -r .objectId)
|
||||
| jq -r .id)
|
||||
echo "Service Principal ID: ${SERVICE_PRINCIPAL_ID}"
|
||||
```
|
||||
|
||||
|
|
|
@ -86,4 +86,24 @@ Once the k8-extension finishes provisioning, you can confirm that the Dapr contr
|
|||
kubectl get pods -n dapr-system
|
||||
```
|
||||
|
||||
In the example output below, note how the Dapr control plane is installed with high availability mode, enabled by default.
|
||||
|
||||
```
|
||||
~ kubectl get pods -n dapr-system
|
||||
NAME READY STATUS RESTARTS AGE
|
||||
dapr-dashboard-5f49d48796-rnt5t 1/1 Running 0 1h
|
||||
dapr-operator-98579b8b4-fpz7k 1/1 Running 0 1h
|
||||
dapr-operator-98579b8b4-nn5vm 1/1 Running 0 1h
|
||||
dapr-operator-98579b8b4-pplqr 1/1 Running 0 1h
|
||||
dapr-placement-server-0 1/1 Running 0 1h
|
||||
dapr-placement-server-1 1/1 Running 0 1h
|
||||
dapr-placement-server-2 1/1 Running 0 1h
|
||||
dapr-sentry-775bccdddb-htcl7 1/1 Running 0 1h
|
||||
dapr-sentry-775bccdddb-vtfxj 1/1 Running 0 1h
|
||||
dapr-sentry-775bccdddb-w4l8x 1/1 Running 0 1h
|
||||
dapr-sidecar-injector-9555889bc-klb9g 1/1 Running 0 1h
|
||||
dapr-sidecar-injector-9555889bc-rpjwl 1/1 Running 0 1h
|
||||
dapr-sidecar-injector-9555889bc-rqjgt 1/1 Running 0 1h
|
||||
```
|
||||
|
||||
For further information such as configuration options and targeting specific versions of Dapr, see the official [AKS Dapr Extension Docs](https://docs.microsoft.com/azure/aks/dapr).
|
|
@ -56,7 +56,7 @@ func (m *customMiddleware) GetHandler(metadata Metadata) (func(fasthttp.RequestH
|
|||
var err error
|
||||
return func(h fasthttp.RequestHandler) fasthttp.RequestHandler {
|
||||
return func(ctx *fasthttp.RequestCtx) {
|
||||
// inboud logic
|
||||
// inbound logic
|
||||
h(ctx) // call the downstream handler
|
||||
// outbound logic
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O
|
|||
|
||||
#### Install from Command Prompt
|
||||
|
||||
Install the latest windows Dapr cli to `C:\dapr` and add this directory to the User PATH environment variable:
|
||||
Install the latest windows Dapr cli to `$Env:SystemDrive\dapr` and add this directory to the User PATH environment variable:
|
||||
|
||||
```powershell
|
||||
powershell -Command "iwr -useb https://raw.githubusercontent.com/dapr/cli/master/install/install.ps1 | iex"
|
||||
|
|
|
@ -23,7 +23,7 @@ Hit the ground running with our Dapr quickstarts, complete with code samples aim
|
|||
| Quickstarts | Description |
|
||||
| ----------- | ----------- |
|
||||
| [Publish and Subscribe]({{< ref pubsub-quickstart.md >}}) | Asynchronous communication between two services using messaging. |
|
||||
| [Service Invocation]({{< ref serviceinvocation-quickstart.md >}}) | Asynchronous communication between two services using HTTP. |
|
||||
| [Service Invocation]({{< ref serviceinvocation-quickstart.md >}}) | Synchronous communication between two services using HTTP or gRPC. |
|
||||
| [State Management]({{< ref statemanagement-quickstart.md >}}) | Store a service's data as key/value pairs in supported state stores. |
|
||||
| [Bindings]({{< ref bindings-quickstart.md >}}) | Work with external systems using input bindings to respond to events and output bindings to call operations. |
|
||||
| [Secrets Management]({{< ref secrets-quickstart.md >}}) | Securely fetch secrets. |
|
||||
|
|
|
@ -61,14 +61,14 @@ dapr run --app-id order-processor --components-path ../../../components/ --app-p
|
|||
|
||||
> **Note**: Since Python3.exe is not defined in Windows, you may need to use `python app.py` instead of `python3 app.py`.
|
||||
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
|
||||
```py
|
||||
# Register Dapr pub/sub subscriptions
|
||||
@app.route('/dapr/subscribe', methods=['GET'])
|
||||
def subscribe():
|
||||
subscriptions = [{
|
||||
'pubsubname': 'order_pub_sub',
|
||||
'pubsubname': 'orderpubsub',
|
||||
'topic': 'orders',
|
||||
'route': 'orders'
|
||||
}]
|
||||
|
@ -110,13 +110,13 @@ dapr run --app-id checkout --components-path ../../../components/ -- python3 app
|
|||
|
||||
> **Note**: Since Python3.exe is not defined in Windows, you may need to use `python app.py` instead of `python3 app.py`.
|
||||
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```python
|
||||
with DaprClient() as client:
|
||||
# Publish an event/message using Dapr PubSub
|
||||
result = client.publish_event(
|
||||
pubsub_name='order_pub_sub',
|
||||
pubsub_name='orderpubsub',
|
||||
topic_name='orders',
|
||||
data=json.dumps(order),
|
||||
data_content_type='application/json',
|
||||
|
@ -172,7 +172,7 @@ The Redis `pubsub.yaml` file included for this Quickstart contains the following
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: order_pub_sub
|
||||
name: orderpubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
|
@ -238,10 +238,10 @@ Run the `order-processor` subscriber service alongside a Dapr sidecar.
|
|||
dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --components-path ../../../components -- npm run start
|
||||
```
|
||||
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
|
||||
```js
|
||||
server.pubsub.subscribe("order_pub_sub", "orders", (data) => console.log("Subscriber received: " + JSON.stringify(data)));
|
||||
server.pubsub.subscribe("orderpubsub", "orders", (data) => console.log("Subscriber received: " + JSON.stringify(data)));
|
||||
```
|
||||
|
||||
### Step 4: Publish a topic
|
||||
|
@ -270,7 +270,7 @@ Run the `checkout` publisher service alongside a Dapr sidecar.
|
|||
dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 --components-path ../../../components -- npm run start
|
||||
```
|
||||
|
||||
In the `checkout` publisher service, we're publishing the orderId message to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
In the `checkout` publisher service, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```js
|
||||
const client = new DaprClient(DAPR_HOST, DAPR_HTTP_PORT);
|
||||
|
@ -330,7 +330,7 @@ The Redis `pubsub.yaml` file included for this Quickstart contains the following
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: order_pub_sub
|
||||
name: orderpubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
|
@ -392,11 +392,11 @@ Run the `order-processor` subscriber service alongside a Dapr sidecar.
|
|||
dapr run --app-id order-processor --components-path ../../../components --app-port 7001 -- dotnet run
|
||||
```
|
||||
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
|
||||
```cs
|
||||
// Dapr subscription in [Topic] routes orders topic to this route
|
||||
app.MapPost("/orders", [Topic("order_pub_sub", "orders")] (Order order) => {
|
||||
app.MapPost("/orders", [Topic("orderpubsub", "orders")] (Order order) => {
|
||||
Console.WriteLine("Subscriber received : " + order);
|
||||
return Results.Ok(order);
|
||||
});
|
||||
|
@ -426,11 +426,11 @@ Run the `checkout` publisher service alongside a Dapr sidecar.
|
|||
dapr run --app-id checkout --components-path ../../../components -- dotnet run
|
||||
```
|
||||
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```cs
|
||||
using var client = new DaprClientBuilder().Build();
|
||||
await client.PublishEventAsync("order_pub_sub", "orders", order);
|
||||
await client.PublishEventAsync("orderpubsub", "orders", order);
|
||||
Console.WriteLine("Published data: " + order);
|
||||
```
|
||||
|
||||
|
@ -483,7 +483,7 @@ The Redis `pubsub.yaml` file included for this Quickstart contains the following
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: order_pub_sub
|
||||
name: orderpubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
|
@ -547,10 +547,10 @@ Run the `order-processor` subscriber service alongside a Dapr sidecar.
|
|||
dapr run --app-port 8080 --app-id order-processor --components-path ../../../components -- java -jar target/OrderProcessingService-0.0.1-SNAPSHOT.jar
|
||||
```
|
||||
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
|
||||
```java
|
||||
@Topic(name = "orders", pubsubName = "order_pub_sub")
|
||||
@Topic(name = "orders", pubsubName = "orderpubsub")
|
||||
@PostMapping(path = "/orders", consumes = MediaType.ALL_VALUE)
|
||||
public Mono<ResponseEntity> getCheckout(@RequestBody(required = false) CloudEvent<Order> cloudEvent) {
|
||||
return Mono.fromSupplier(() -> {
|
||||
|
@ -585,7 +585,7 @@ Run the `checkout` publisher service alongside a Dapr sidecar.
|
|||
dapr run --app-id checkout --components-path ../../../components -- java -jar target/CheckoutService-0.0.1-SNAPSHOT.jar
|
||||
```
|
||||
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```java
|
||||
DaprClient client = new DaprClientBuilder().build();
|
||||
|
@ -645,7 +645,7 @@ The Redis `pubsub.yaml` file included for this Quickstart contains the following
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: order_pub_sub
|
||||
name: orderpubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
|
@ -709,7 +709,7 @@ Run the `order-processor` subscriber service alongside a Dapr sidecar.
|
|||
dapr run --app-port 6001 --app-id order-processor --app-protocol http --dapr-http-port 3501 --components-path ../../../components -- go run app.go
|
||||
```
|
||||
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar.
|
||||
|
||||
```go
|
||||
func eventHandler(ctx context.Context, e *common.TopicEvent) (retry bool, err error) {
|
||||
|
@ -739,7 +739,7 @@ Run the `checkout` publisher service alongside a Dapr sidecar.
|
|||
dapr run --app-id checkout --app-protocol http --dapr-http-port 3500 --components-path ../../../components -- go run app.go
|
||||
```
|
||||
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `order_pub_sub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
In the `checkout` publisher, we're publishing the orderId message to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. As soon as the service starts, it publishes in a loop:
|
||||
|
||||
```go
|
||||
client, err := dapr.NewClient()
|
||||
|
@ -803,7 +803,7 @@ The Redis `pubsub.yaml` file included for this Quickstart contains the following
|
|||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
metadata:
|
||||
name: order_pub_sub
|
||||
name: orderpubsub
|
||||
spec:
|
||||
type: pubsub.redis
|
||||
version: v1
|
||||
|
|
|
@ -42,7 +42,7 @@ Install Redis into your cluster:
|
|||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm repo update
|
||||
helm install redis bitnami/redis
|
||||
helm install redis bitnami/redis --set image.tag=6.2
|
||||
```
|
||||
|
||||
For Dapr's Pub/sub functionality, you'll need at least Redis version 5. For state store, you can use a lower version.
|
||||
|
|
|
@ -127,7 +127,7 @@ Dapr can restrict access to secrets in a secret store using its configuration. R
|
|||
|
||||
### Default namespace
|
||||
|
||||
When running in Kubernetes, Dapr, during installtion, defines default Role and RoleBinding for secrets access from Kubernetes secret store in the `default` namespace. For Dapr enabled apps that fetch secrets from `default` namespace, a secret can be defined and referenced in components as shown in the example above.
|
||||
When running in Kubernetes, Dapr, during installation, defines default Role and RoleBinding for secrets access from Kubernetes secret store in the `default` namespace. For Dapr enabled apps that fetch secrets from `default` namespace, a secret can be defined and referenced in components as shown in the example above.
|
||||
|
||||
### Non-default namespaces
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ Both the Dapr CLI and the Dapr Helm chart automatically deploy with affinity for
|
|||
|
||||
You can install Dapr to a Kubernetes cluster using the [Dapr CLI]({{< ref install-dapr-cli.md >}}).
|
||||
|
||||
### Install Dapr
|
||||
### Install Dapr (from an official Dapr Helm chart)
|
||||
|
||||
The `-k` flag initializes Dapr on the Kubernetes cluster in your current context.
|
||||
|
||||
|
@ -58,6 +58,18 @@ dapr init -k
|
|||
✅ Success! Dapr has been installed to namespace dapr-system. To verify, run "dapr status -k" in your terminal. To get started, go here: https://aka.ms/dapr-getting-started
|
||||
```
|
||||
|
||||
### Install Dapr (a private Dapr Helm chart)
|
||||
There are some scenarios where it's necessary to install Dapr from a private Helm chart, such as:
|
||||
- needing more granular control of the Dapr Helm chart
|
||||
- having a custom Dapr deployment
|
||||
- pulling Helm charts from trusted registries that are managed and maintained by your organization
|
||||
|
||||
export DAPR_HELM_REPO_URL="https://helm.custom-domain.com/dapr/dapr"
|
||||
export DAPR_HELM_REPO_USERNAME="username_xxx"
|
||||
export DAPR_HELM_REPO_PASSWORD="passwd_xxx"
|
||||
|
||||
Setting the above parameters will allow `dapr init -k` to install Dapr images from the configured Helm repository.
|
||||
|
||||
### Install in custom namespace
|
||||
|
||||
The default namespace when initializing Dapr is `dapr-system`. You can override this with the `-n` flag.
|
||||
|
@ -114,7 +126,11 @@ The latest Dapr helm chart no longer supports Helm v2. Please migrate from Helm
|
|||
2. Add Helm repo and update
|
||||
|
||||
```bash
|
||||
// Add the official Dapr Helm chart.
|
||||
helm repo add dapr https://dapr.github.io/helm-charts/
|
||||
// Or also add a private Dapr Helm chart.
|
||||
helm repo add dapr http://helm.custom-domain.com/dapr/dapr/ \
|
||||
--username=xxx --password=xxx
|
||||
helm repo update
|
||||
# See which chart versions are available
|
||||
helm search repo dapr --devel --versions
|
||||
|
|
|
@ -87,8 +87,11 @@ For a full list of all available options you can set in the values file (or by u
|
|||
Instead of using either `helm install` or `helm upgrade` as shown below, you can also run `helm upgrade --install` - this will dynamically determine whether to install or upgrade.
|
||||
|
||||
```bash
|
||||
# add/update the helm repo
|
||||
# Add/update a official Dapr Helm repo.
|
||||
helm repo add dapr https://dapr.github.io/helm-charts/
|
||||
# or add/update a private Dapr Helm repo.
|
||||
helm repo add dapr http://helm.custom-domain.com/dapr/dapr/ \
|
||||
--username=xxx --password=xxx
|
||||
helm repo update
|
||||
|
||||
# See which chart versions are available
|
||||
|
|
|
@ -6,6 +6,6 @@ weight: 3000
|
|||
description: "Learn how to run your Dapr applications on a serverless cloud offering"
|
||||
---
|
||||
|
||||
If you'd like to run your Dapr applications without managing any of the underlying infrasturcture such as VMs or Kubernetes, you can choose a serverless cloud offering. These platforms integrate with Dapr to make it easy to deploy and manage your applications.
|
||||
If you'd like to run your Dapr applications without managing any of the underlying infrastructure such as VMs or Kubernetes, you can choose a serverless cloud offering. These platforms integrate with Dapr to make it easy to deploy and manage your applications.
|
||||
|
||||
## Offerings
|
||||
|
|
|
@ -118,7 +118,7 @@ Also defined is a retry policy called 'retryForever' that is only applied to the
|
|||
spec:
|
||||
policies:
|
||||
retries:
|
||||
DaprBuiltInServiceRetries: # Overrides default retry behaivor for service-to-service calls
|
||||
DaprBuiltInServiceRetries: # Overrides default retry behavior for service-to-service calls
|
||||
policy: constant
|
||||
duration: 5s
|
||||
maxRetries: 10
|
||||
|
|
|
@ -17,5 +17,5 @@ For CLI there is no explicit opt-in, just the version that this was first made a
|
|||
| ---------- |-------------|---------|---------------|-----------------|
|
||||
| **--image-registry** flag in Dapr CLI| In self hosted mode you can set this flag to specify any private registry to pull the container images required to install Dapr| N/A | [CLI init command reference]({{<ref "dapr-init.md#self-hosted-environment" >}}) | v1.7 |
|
||||
| **Resiliency** | Allows configuring of fine-grained policies for retries, timeouts and circuitbreaking. | `Resiliency` | [Configure Resiliency Policies]({{<ref "resiliency-overview">}}) | v1.7|
|
||||
| **Service invocation without default `content-type`** | When enabled removes the default service invocation content-type header value `application/json` when no content-type is provided. This will become the default behavior in release v1.9.0. This requires you to explictly set content-type headers where required for your apps. | `ServiceInvocation.NoDefaultContentType` | [Service Invocation]({{<ref "service_invocation_api.md#request-contents" >}}) | v1.7 |
|
||||
| **Service invocation without default `content-type`** | When enabled removes the default service invocation content-type header value `application/json` when no content-type is provided. This will become the default behavior in release v1.9.0. This requires you to explicitly set content-type headers where required for your apps. | `ServiceInvocation.NoDefaultContentType` | [Service Invocation]({{<ref "service_invocation_api.md#request-contents" >}}) | v1.7 |
|
||||
|
||||
|
|
|
@ -34,7 +34,8 @@ The table below shows the versions of Dapr releases that have been tested togeth
|
|||
|
||||
| Release date | Runtime | CLI | SDKs | Dashboard | Status |
|
||||
|--------------------|:--------:|:--------|---------|---------|---------|
|
||||
| July 29th 2022 | 1.8.3</br> | 1.8.0 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported (current) |
|
||||
| August 10th 2022 | 1.8.4</br> | 1.8.1 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported (current) |
|
||||
| July 29th 2022 | 1.8.3</br> | 1.8.0 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported |
|
||||
| July 21st 2022 | 1.8.2</br> | 1.8.0 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported |
|
||||
| July 20th 2022 | 1.8.1</br> | 1.8.0 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported |
|
||||
| July 7th 2022 | 1.8.0</br> | 1.8.0 | Java 1.6.0 </br>Go 1.5.0 </br>PHP 1.1.0 </br>Python 1.7.0 </br>.NET 1.8.0 </br>JS 2.3.0 | 0.11.0 | Supported |
|
||||
|
@ -78,7 +79,7 @@ General guidance on upgrading can be found for [self hosted mode]({{< ref self-h
|
|||
| 1.6.0 | N/A | 1.6.2 |
|
||||
| 1.6.0 | N/A | 1.7.4 |
|
||||
| 1.7.0 to 1.7.4 | N/A | 1.8.0 |
|
||||
| 1.8.0 | N/A | 1.8.2 |
|
||||
| 1.8.0 | N/A | 1.8.4 |
|
||||
|
||||
|
||||
## Breaking changes and deprecations
|
||||
|
@ -131,7 +132,7 @@ After announcing a future breaking change, the change will happen in 2 releases
|
|||
|-----------------------|-----------------------|------------------------- |
|
||||
| GET /v1.0/shutdown API (Users should use [POST API]({{< ref kubernetes-job.md >}}) instead) | 1.2.0 | 1.4.0 |
|
||||
| Java domain builder classes deprecated (Users should use [setters](https://github.com/dapr/java-sdk/issues/587) instead) | Java SDK 1.3.0 | Java SDK 1.5.0 |
|
||||
| Service invocation will no longer provide a default content type header of `application/json` when no content-type is specified. You must explictly [set a content-type header]({{< ref "service_invocation_api.md#request-contents" >}}) for service invocation if your invoked apps rely on this header. | 1.7.0 | 1.9.0 |
|
||||
| Service invocation will no longer provide a default content type header of `application/json` when no content-type is specified. You must explicitly [set a content-type header]({{< ref "service_invocation_api.md#request-contents" >}}) for service invocation if your invoked apps rely on this header. | 1.7.0 | 1.9.0 |
|
||||
|
||||
## Upgrade on Hosting platforms
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ Parameter | Description
|
|||
#### Query Parameters
|
||||
|
||||
If no query parameters are provided, all configuration items are returned.
|
||||
To specifiy the keys of the configuration items to get, use one or more `key` query parameters. For example:
|
||||
To specify the keys of the configuration items to get, use one or more `key` query parameters. For example:
|
||||
|
||||
```
|
||||
GET http://localhost:<daprPort>/v1.0-alpha1/configuration/mystore?key=config1&key=config2
|
||||
|
@ -88,7 +88,7 @@ Parameter | Description
|
|||
#### Query Parameters
|
||||
|
||||
If no query parameters are provided, all configuration items are subscribed to.
|
||||
To specifiy the keys of the configuration items to subscribe to, use one or more `key` query parameters. For example:
|
||||
To specify the keys of the configuration items to subscribe to, use one or more `key` query parameters. For example:
|
||||
|
||||
```
|
||||
GET http://localhost:<daprPort>/v1.0-alpha1/configuration/mystore/subscribe?key=config1&key=config2
|
||||
|
|
|
@ -12,7 +12,7 @@ Dapr has a metadata API that returns information about the sidecar allowing runt
|
|||
Each loaded component provides its name, type and version and also information about supported features in the form of component capabilities.
|
||||
These features are available for the [state store]({{< ref supported-state-stores.md >}}) and [binding]({{< ref supported-bindings.md >}}) component types. The table below shows the component type and the list of capabilities for a given version. This list might grow in future and only represents the capabilities of the loaded components.
|
||||
|
||||
Component type | Capabilites
|
||||
Component type | Capabilities
|
||||
---------------| ------------
|
||||
State Store | ETAG, TRANSACTION, ACTOR, QUERY_API
|
||||
Binding | INPUT_BINDING, OUTPUT_BINDING
|
||||
|
|
|
@ -250,12 +250,12 @@ curl http://localhost:3500/v1.0/state/myRedisStore/bulk \
|
|||
[
|
||||
{
|
||||
"key": "key1",
|
||||
"data": "value1",
|
||||
"value": "value1",
|
||||
"etag": "1"
|
||||
},
|
||||
{
|
||||
"key": "key2",
|
||||
"data": "value2",
|
||||
"value": "value2",
|
||||
"etag": "1"
|
||||
}
|
||||
]
|
||||
|
|
|
@ -35,7 +35,7 @@ This table is meant to help users understand the equivalent options for running
|
|||
| `--app-max-concurrency` | `--app-max-concurrency` | | `dapr.io/app-max-concurrency` | Limit the concurrency of your application. A valid value is any number larger than `0`|
|
||||
| `--metrics-port` | `--metrics-port` | | `dapr.io/metrics-port` | Sets the port for the sidecar metrics server. Default is `9090` |
|
||||
| `--mode` | not supported | | not supported | Runtime mode for Dapr (default "standalone") |
|
||||
| `--placement-host-address` | `--placement-host-address` | | dapr.io/placement-host-address | Comma separated list of addresses for Dapr Actor Placement servers. When no annotation is set, the default value is set by the Sidecar Injector. When the annotation is set and the value is empty, the sidecar does not connect to Placement server. This can be used when there are no actors running in the sidecar. When the annotation is set and the value is not empty, the sidecar connects to the configured address. For example: `127.0.0.1:50057,127.0.0.1:50058` |
|
||||
| `--placement-host-address` | `--placement-host-address` | | `dapr.io/placement-host-address` | Comma separated list of addresses for Dapr Actor Placement servers. When no annotation is set, the default value is set by the Sidecar Injector. When the annotation is set and the value is empty, the sidecar does not connect to Placement server. This can be used when there are no actors running in the sidecar. When the annotation is set and the value is not empty, the sidecar connects to the configured address. For example: `127.0.0.1:50057,127.0.0.1:50058` |
|
||||
| `--profiling-port` | `--profiling-port` | | not supported | The port for the profile server (default "7777") |
|
||||
| `--app-protocol` | `--app-protocol` | `-P` | `dapr.io/app-protocol` | Tells Dapr which protocol your application is using. Valid options are `http` and `grpc`. Default is `http` |
|
||||
| `--sentry-address` | `--sentry-address` | | not supported | Address for the Sentry CA service |
|
||||
|
@ -59,4 +59,4 @@ This table is meant to help users understand the equivalent options for running
|
|||
| not supported | not supported | | `dapr.io/env` | List of environment variable to be injected into the sidecar. Strings consisting of key=value pairs separated by a comma.|
|
||||
| not supported | not supported | | `dapr.io/volume-mounts` | List of pod volumes to be mounted to the sidecar container in read-only mode. Strings consisting of `volume:path` pairs separated by a comma. Example, `"volume-1:/tmp/mount1,volume-2:/home/root/mount2"`. |
|
||||
| not supported | not supported | | `dapr.io/volume-mounts-rw` | List of pod volumes to be mounted to the sidecar container in read-write mode. Strings consisting of `volume:path` pairs separated by a comma. Example, `"volume-1:/tmp/mount1,volume-2:/home/root/mount2"`. |
|
||||
| `--disable-builtin-k8s-secret-store` | not supported | | `dapr.io/disable-builtin-k8s-secret-store` | Disables BuiltIn Kubernetes secret store. Default value is false. See [Kubernetes secret store component]({{<ref "kubernetes-secret-store.md">}}) for details. |
|
||||
| `--disable-builtin-k8s-secret-store` | not supported | | `dapr.io/disable-builtin-k8s-secret-store` | Disables BuiltIn Kubernetes secret store. Default value is false. See [Kubernetes secret store component]({{<ref "kubernetes-secret-store.md">}}) for details. |
|
||||
|
|
|
@ -38,7 +38,10 @@ dapr init [flags]
|
|||
| `--slim`, `-s` | | `false` | Exclude placement service, Redis and Zipkin containers from self-hosted installation |
|
||||
| `--timeout` | | `300` | The wait timeout for the Kubernetes installation |
|
||||
| `--wait` | | `false` | Wait for Kubernetes initialization to complete |
|
||||
| N/A |DAPR_DEFAULT_IMAGE_REGISTRY| | It is used to specify the default container registry to pull images from. When its value is set to `GHCR` or `ghcr` it pulls the required images from Github container registry. To default to Docker hub, unset the environment variable or leave it blank|
|
||||
| N/A |DAPR_DEFAULT_IMAGE_REGISTRY| | It is used to specify the default container registry to pull images from. When its value is set to `GHCR` or `ghcr` it pulls the required images from Github container registry. To default to Docker hub, unset the environment variable or leave it blank|
|
||||
| N/A |DAPR_HELM_REPO_URL| | Specifies a private Dapr Helm chart url|
|
||||
| N/A | DAPR_HELM_REPO_USERNAME | A username for a private Helm chart | The username required to access the private Dapr Helm chart. If it can be accessed publicly, this env variable does not need to be set|
|
||||
| N/A | DAPR_HELM_REPO_PASSWORD | A password for a private Helm chart |The password required to access the private Dapr Helm chart. If it can be accessed publicly, this env variable does not need to be set| |
|
||||
|
||||
### Examples
|
||||
|
||||
|
@ -84,7 +87,7 @@ You can also specify a private registry to pull container images from. These ima
|
|||
|
||||
> The 3rd party images have to be published under `dapr/3rdparty` path.
|
||||
|
||||
> image-registy uri follows this format - `docker.io/<username>`
|
||||
> image-registry uri follows this format - `docker.io/<username>`
|
||||
|
||||
```bash
|
||||
dapr init --image-registry docker.io/username
|
||||
|
@ -130,4 +133,4 @@ dapr init -k --image-registry docker.io/username
|
|||
Scenario 2 : dapr image hosted under a new/different directory in private registry -
|
||||
```bash
|
||||
dapr init -k --image-registry docker.io/username/<directory-name>
|
||||
```
|
||||
```
|
||||
|
|
|
@ -48,7 +48,7 @@ Generates new root and issuer certificates for the Kubernetes cluster with a giv
|
|||
```bash
|
||||
dapr mtls renew-certificate -k --valid-until <no of days>
|
||||
```
|
||||
Generates new root and issuer certificates for the Kubernetes cluster with a given validity time and restarts the Dapr control place services.
|
||||
Generates new root and issuer certificates for the Kubernetes cluster with a given validity time and restarts the Dapr control plane services.
|
||||
```bash
|
||||
dapr mtls renew-certificate -k --valid-until <no of days> --restart
|
||||
```
|
||||
|
|
|
@ -92,6 +92,8 @@ An HTTP 204 (No Content) and empty body is returned if successful.
|
|||
|
||||
Dapr can use any Redis instance - containerized, running on your local dev machine, or a managed cloud service, provided the version of Redis is 5.0.0 or later.
|
||||
|
||||
*Note: Dapr does not support Redis >= 7. It is recommended to use Redis 6*
|
||||
|
||||
{{< tabs "Self-Hosted" "Kubernetes" "AWS" "GCP" "Azure">}}
|
||||
|
||||
{{% codetab %}}
|
||||
|
@ -105,7 +107,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K
|
|||
1. Install Redis into your cluster.
|
||||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm install redis bitnami/redis
|
||||
helm install redis bitnami/redis --set image.tag=6.2
|
||||
```
|
||||
|
||||
2. Run `kubectl get pods` to see the Redis containers now running in your cluster.
|
||||
|
|
|
@ -76,7 +76,6 @@ When running the Dapr sidecar (daprd) with your application on EKS (AWS Kubernet
|
|||
### Using with Minio
|
||||
|
||||
[Minio](https://min.io/) is a service that exposes local storage as S3-compatible block storage, and it's a popular alternative to S3 especially in development environments. You can use the S3 binding with Minio too, with some configuration tweaks:
|
||||
|
||||
1. Set `endpoint` to the address of the Minio server, including protocol (`http://` or `https://`) and the optional port at the end. For example, `http://minio.local:9000` (the values depend on your environment).
|
||||
2. `forcePathStyle` must be set to `true`
|
||||
3. The value for `region` is not important; you can set it to `us-east-1`.
|
||||
|
|
|
@ -71,7 +71,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K
|
|||
1. Install Redis into your cluster. Note that we're explicitly setting an image tag to get a version greater than 5, which is what Dapr' pub/sub functionality requires. If you're intending on using Redis as just a state store (and not for pub/sub), you do not have to set the image version.
|
||||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm install redis bitnami/redis
|
||||
helm install redis bitnami/redis --set image.tag=6.2
|
||||
```
|
||||
|
||||
2. Run `kubectl get pods` to see the Redis containers now running in your cluster.
|
||||
|
|
|
@ -120,7 +120,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K
|
|||
1. Install Redis into your cluster. Note that we're explicitly setting an image tag to get a version greater than 5, which is what Dapr' pub/sub functionality requires. If you're intending on using Redis as just a state store (and not for pub/sub), you do not have to set the image version.
|
||||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm install redis bitnami/redis
|
||||
helm install redis bitnami/redis --set image.tag=6.2
|
||||
```
|
||||
|
||||
2. Run `kubectl get pods` to see the Redis containers now running in your cluster.
|
||||
|
|
|
@ -7,14 +7,21 @@ aliases:
|
|||
- /developing-applications/middleware/supported-middleware/middleware-wasm/
|
||||
---
|
||||
|
||||
The WASM [HTTP middleware]({{< ref middleware.md >}}) component enables you to use a WASM module to handle requests and responses.
|
||||
Using WASM modules allow developers to write middleware components in any WASM supported language and extend Dapr using external files that are not pre-compiled into the `daprd` binary.
|
||||
WebAssembly is a way to safely run code compiled in other languages. Runtimes
|
||||
execute WebAssembly Modules (Wasm), which are most often binaries with a `.wasm`
|
||||
extension.
|
||||
|
||||
WASM modules are loaded from a filesystem path. On Kubernetes, see [mounting volumes to the Dapr sidecar]({{> kubernetes-volume-mounts.md >}}) to configure a filesystem mount that can contain WASM modules.
|
||||
The Wasm [HTTP middleware]({{< ref middleware.md >}}) allows you to rewrite a
|
||||
request URI with custom logic compiled to a Wasm binary. In other words, you
|
||||
can extend Dapr using external files that are not pre-compiled into the `daprd`
|
||||
binary. Dapr embeds [wazero][https://wazero.io] to accomplish this without CGO.
|
||||
|
||||
Wasm modules are loaded from a filesystem path. On Kubernetes, see [mounting
|
||||
volumes to the Dapr sidecar]({{> kubernetes-volume-mounts.md >}}) to configure
|
||||
a filesystem mount that can contain Wasm modules.
|
||||
|
||||
## Component format
|
||||
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
kind: Component
|
||||
|
@ -26,21 +33,27 @@ spec:
|
|||
metadata:
|
||||
- name: path
|
||||
value: "./hello.wasm"
|
||||
- name: runtime
|
||||
value: "wazero"
|
||||
- name: poolSize
|
||||
value: 1
|
||||
```
|
||||
|
||||
## Spec metadata fields
|
||||
|
||||
| Field | Details | Example |
|
||||
|-------|---------|---------|
|
||||
| path | A relative or absolute path to the WASM module | "./hello.wasm" |
|
||||
| runtime | The WASM runtime of your WASM binary. Only `wazero` is supported | ["wazero"](https://github.com/tetratelabs/wazero) |
|
||||
Minimally, a user must specify a Wasm binary that contains the custom logic
|
||||
used to rewrite requests. An instance of the Wasm binary is not safe to use
|
||||
concurrently. The below configuration fields control both the binary to
|
||||
instantiate and how large an instance pool to use. A larger pool allows higher
|
||||
concurrency while consuming more memory.
|
||||
|
||||
| Field | Details | Required | Example |
|
||||
|----------|----------------------------------------------------------------|----------|----------------|
|
||||
| path | A relative or absolute path to the Wasm binary to instantiate. | true | "./hello.wasm" |
|
||||
| poolSize | Number of concurrent instances of the Wasm binary. Default: 10 | false | 1 |
|
||||
|
||||
## Dapr configuration
|
||||
|
||||
To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}). See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}).
|
||||
To be applied, the middleware must be referenced in [configuration]({{< ref configuration-concept.md >}}).
|
||||
See [middleware pipelines]({{< ref "middleware.md#customize-processing-pipeline">}}).
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
|
@ -54,8 +67,45 @@ spec:
|
|||
type: middleware.http.wasm.basic
|
||||
```
|
||||
|
||||
### Generating Wasm
|
||||
|
||||
This component allows you to rewrite a request URI with custom logic compiled
|
||||
to a Wasm using the waPC protocol. The `rewrite` function receives the request
|
||||
URI and returns an update as necessary.
|
||||
|
||||
To compile your Wasm, you must compile source using a waPC guest SDK such as
|
||||
[TinyGo](https://github.com/wapc/wapc-guest-tinygo).
|
||||
|
||||
Here's an example in TinyGo:
|
||||
|
||||
```go
|
||||
package main
|
||||
|
||||
import "github.com/wapc/wapc-guest-tinygo"
|
||||
|
||||
func main() {
|
||||
wapc.RegisterFunctions(wapc.Functions{"rewrite": rewrite})
|
||||
}
|
||||
|
||||
// rewrite returns a new URI if necessary.
|
||||
func rewrite(requestURI []byte) ([]byte, error) {
|
||||
if string(requestURI) == "/v1.0/hi" {
|
||||
return []byte("/v1.0/hello"), nil
|
||||
}
|
||||
return requestURI, nil
|
||||
}
|
||||
```
|
||||
|
||||
If using TinyGo, compile as shown below and set the spec metadata field named
|
||||
"path" to the location of the output (ex "example.wasm"):
|
||||
|
||||
```bash
|
||||
tinygo build -o example.wasm -scheduler=none --no-debug -target=wasi example.go`
|
||||
```
|
||||
|
||||
## Related links
|
||||
|
||||
- [Middleware]({{< ref middleware.md >}})
|
||||
- [Configuration concept]({{< ref configuration-concept.md >}})
|
||||
- [Configuration overview]({{< ref configuration-overview.md >}})
|
||||
- [waPC protocol](https://wapc.io/docs/spec/)
|
||||
|
|
|
@ -247,7 +247,7 @@ spec:
|
|||
### Communication using TLS
|
||||
|
||||
By default TLS is enabled to secure the transport layer to Kafka. To disable TLS, set `disableTls` to `true`. When TLS is enabled, you can
|
||||
control server certificate verification using `skipVerify` to disable verificaiton (*NOT* recommended in production environments) and `caCert` to
|
||||
control server certificate verification using `skipVerify` to disable verification (*NOT* recommended in production environments) and `caCert` to
|
||||
specify a trusted TLS certificate authority (CA). If no `caCert` is specified, the system CA trust will be used. To also configure mTLS authentication,
|
||||
see the section under _Authentication_.
|
||||
Below is an example of a Kafka pubsub component configured to use transport layer TLS:
|
||||
|
|
|
@ -8,7 +8,8 @@ aliases:
|
|||
---
|
||||
|
||||
## Component format
|
||||
To setup AWS SNS/SQS for pub/sub, you create a component of type `pubsub.snssqs`. See [this guide]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}) on how to create and apply a pubsub configuration.
|
||||
|
||||
To setup AWS SNS/SQS for pub/sub, create a component of type `pubsub.snssqs`. [Learn more on how to create and apply a pubsub configuration]({{< ref "howto-publish-subscribe.md#step-1-setup-the-pubsub-component" >}}).
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
|
@ -58,7 +59,7 @@ spec:
|
|||
```
|
||||
|
||||
{{% alert title="Warning" color="warning" %}}
|
||||
The above example uses secrets as plain strings. It is recommended to use a secret store for the secrets as described [here]({{< ref component-secrets.md >}}).
|
||||
The above example uses secrets as plain strings. It is recommended to use [a secret store for the secrets]]({{< ref component-secrets.md >}}).
|
||||
{{% /alert %}}
|
||||
|
||||
## Spec metadata fields
|
||||
|
@ -83,14 +84,33 @@ The above example uses secrets as plain strings. It is recommended to use a secr
|
|||
| assetsManagementTimeoutSeconds | N | Amount of time in seconds, for an AWS asset management operation, before it times out and cancelled. Asset management operations are any operations performed on STS, SNS and SQS, except message publish and consume operations that implement the default Dapr component retry behavior. The value can be set to any non-negative float/integer. Default: `5` | `0.5`, `10`
|
||||
| concurrencyMode | N | When messages are received in bulk from SQS, call the subscriber sequentially (“single” message at a time), or concurrently (in “parallel”). Default: `"parallel"` | `"single"`, `"parallel"`
|
||||
|
||||
### Additional info
|
||||
|
||||
* Dapr created SNS topic and SQS queue names conform with [AWS specifications](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-queues.html). By default, Dapr creates an SQS queue name based on the consumer `app-id`, therefore Dapr might perform name standardization to meet with AWS specifications.
|
||||
* Using SQS FIFO (`fifo` metadata field set to `"true"`), per AWS specifications, provides message ordering and deduplication, but incurs a lower SQS processing throughput, among other caveats
|
||||
* Be aware that specifying `fifoMessageGroupID` limits the number of concurrent consumers of the FIFO queue used to only one but guarantees global ordering of messages published by the app's Dapr sidecars. See [this](https://aws.amazon.com/blogs/compute/solving-complex-ordering-challenges-with-amazon-sqs-fifo-queues/) post to better understand the topic of Message Group IDs and FIFO queues.
|
||||
* Since v1.8.0, the component supports the `"parallel"` `concurrencyMode` as its default mode. In prior versions, the component default behavior was calling the subscriber a single message at a time and waiting for its response.
|
||||
#### Conforming with AWS specifications
|
||||
|
||||
Dapr created SNS topic and SQS queue names conform with [AWS specifications](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/quotas-queues.html). By default, Dapr creates an SQS queue name based on the consumer `app-id`, therefore Dapr might perform name standardization to meet with AWS specifications.
|
||||
|
||||
#### SNS/SQS component behavior
|
||||
|
||||
When the pub/sub SNS/SQS component provisions SNS topics, the SQS queues and the subscription behave differently in situations where the component is operating on behalf of a message producer (with no subscriber app deployed), than in situations where a subscriber app is present (with no publisher deployed).
|
||||
|
||||
Due to how SNS works without SQS subscription _in publisher only setup_, the SQS queues and the subscription behave as a "classic" pub/sub system that relies on subscribers listening to topic messages. Without those subscribers, messages:
|
||||
|
||||
- Cannot be passed onwards and are effectively dropped
|
||||
- Are not available for future subscribers (no replay of message when the subscriber finally subscribes)
|
||||
|
||||
#### SQS FIFO
|
||||
|
||||
Using SQS FIFO (`fifo` metadata field set to `"true"`) per AWS specifications provides message ordering and deduplication, but incurs a lower SQS processing throughput, among other caveats.
|
||||
|
||||
Specifying `fifoMessageGroupID` limits the number of concurrent consumers of the FIFO queue used to only one but guarantees global ordering of messages published by the app's Dapr sidecars. See [this AWS blog post](https://aws.amazon.com/blogs/compute/solving-complex-ordering-challenges-with-amazon-sqs-fifo-queues/) to better understand the topic of Message Group IDs and FIFO queues.
|
||||
|
||||
#### Default parallel `concurrencyMode`
|
||||
|
||||
Since v1.8.0, the component supports the `"parallel"` `concurrencyMode` as its default mode. In prior versions, the component default behavior was calling the subscriber a single message at a time and waiting for its response.
|
||||
|
||||
{{% alert title="Important" color="warning" %}}
|
||||
When running the Dapr sidecar (daprd) with your application on EKS (AWS Kubernetes), if you're using a node/pod that has already been attached to an IAM policy defining access to AWS resources, you **must not** provide AWS access-key, secret-key, and tokens in the definition of the component spec you're using.
|
||||
When running the Dapr sidecar (`daprd`) with your application on EKS (AWS Kubernetes) node/pod already attached to an IAM policy defining access to AWS resources, you **must not** provide AWS access-key, secret-key, and tokens in the definition of the component spec.
|
||||
{{% /alert %}}
|
||||
|
||||
## Create an SNS/SQS instance
|
||||
|
@ -98,18 +118,17 @@ When running the Dapr sidecar (daprd) with your application on EKS (AWS Kubernet
|
|||
{{< tabs "Self-Hosted" "Kubernetes" "AWS" >}}
|
||||
|
||||
{{% codetab %}}
|
||||
For local development the [localstack project](https://github.com/localstack/localstack) is used to integrate AWS SNS/SQS. Follow the instructions [here](https://github.com/localstack/localstack#running) to run localstack.
|
||||
For local development, the [localstack project](https://github.com/localstack/localstack) is used to integrate AWS SNS/SQS. Follow [these instructions](https://github.com/localstack/localstack#running) to run localstack.
|
||||
|
||||
To run localstack locally from the command line using Docker, apply the following cmd:
|
||||
|
||||
```shell
|
||||
docker run --rm -it -p 4566:4566 -p 4571:4571 -e SERVICES="sts,sns,sqs" -e AWS_DEFAULT_REGION="us-east-1" localstack/localstack
|
||||
```
|
||||
|
||||
In order to use localstack with your pub/sub binding, you need to provide the `endpoint` configuration in the component metadata. The `endpoint` is unnecessary when running against production AWS.
|
||||
|
||||
In order to use localstack with your pubsub binding, you need to provide the `endpoint` configuration
|
||||
in the component metadata. The `endpoint` is unncessary when running against production AWS.
|
||||
|
||||
See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes
|
||||
See [Authenticating to AWS]({{< ref authenticating-aws.md >}}) for information about authentication-related attributes.
|
||||
|
||||
```yaml
|
||||
apiVersion: dapr.io/v1alpha1
|
||||
|
@ -130,12 +149,12 @@ spec:
|
|||
- name: region
|
||||
value: us-east-1
|
||||
```
|
||||
|
||||
{{% /codetab %}}
|
||||
|
||||
{{% codetab %}}
|
||||
To run localstack on Kubernetes, you can apply the configuration below. Localstack is then
|
||||
reachable at the DNS name `http://localstack.default.svc.cluster.local:4566`
|
||||
and this should be used as the `endpoint`
|
||||
To run localstack on Kubernetes, you can apply the configuration below. Localstack is then reachable at the DNS name `http://localstack.default.svc.cluster.local:4566` (assuming this was applied to the default namespace), which should be used as the `endpoint`.
|
||||
|
||||
```yaml
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
@ -176,10 +195,12 @@ spec:
|
|||
type: LoadBalancer
|
||||
|
||||
```
|
||||
|
||||
{{% /codetab %}}
|
||||
|
||||
{{% codetab %}}
|
||||
In order to run in AWS, you should create or assign an IAM user with permissions to the SNS and SQS services having a Policy such as:
|
||||
In order to run in AWS, create or assign an IAM user with permissions to the SNS and SQS services, with a policy like:
|
||||
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
|
@ -211,10 +232,10 @@ In order to run in AWS, you should create or assign an IAM user with permissions
|
|||
]
|
||||
}
|
||||
```
|
||||
Use the `AWS account ID` and `AWS account secret` and plug them into the `accessKey` and `secretKey` in the component metadata using Kubernetes secrets and `secretKeyRef`.
|
||||
|
||||
Plug the `AWS account ID` and `AWS account secret` into the `accessKey` and `secretKey` in the component metadata, using Kubernetes secrets and `secretKeyRef`.
|
||||
|
||||
Alternatively, if you want to provision the SNS and SQS assets using your own tool of choice (e.g. Terraform), while preventing Dapr from doing so dynamically, you need to enable `disableEntityManagement` and assign your Dapr-using application with an IAM Role having a Policy such as:
|
||||
Alternatively, let's say you want to provision the SNS and SQS assets using your own tool of choice (e.g. Terraform) while preventing Dapr from doing so dynamically. You need to enable `disableEntityManagement` and assign your Dapr-using application with an IAM Role, with a policy like:
|
||||
|
||||
```json
|
||||
{
|
||||
|
@ -243,16 +264,17 @@ Alternatively, if you want to provision the SNS and SQS assets using your own to
|
|||
}
|
||||
```
|
||||
|
||||
If you are running your applications on an EKS cluster with dynamic assets creation (the default Dapr behavior)
|
||||
In the above example, you are running your applications on an EKS cluster with dynamic assets creation (the default Dapr behavior).
|
||||
{{% /codetab %}}
|
||||
|
||||
{{< /tabs >}}
|
||||
|
||||
## Related links
|
||||
|
||||
- [Basic schema for a Dapr component]({{< ref component-schema >}})
|
||||
- [Pub/Sub building block]({{< ref pubsub >}})
|
||||
- Read [this guide]({{< ref "howto-publish-subscribe.md#step-2-publish-a-topic" >}}) for instructions on configuring pub/sub components
|
||||
- [AWS SQS as subscriber to SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html)
|
||||
- [AWS SNS API reference](https://docs.aws.amazon.com/sns/latest/api/Welcome.html)
|
||||
- [AWS SQS API reference](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html)
|
||||
- [Pub/Sub building block overview and how-to guides]({{< ref pubsub >}})
|
||||
- [Authenticating to AWS]({{< ref authenticating-aws.md >}})
|
||||
- AWS docs:
|
||||
- [AWS SQS as subscriber to SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-sqs-as-subscriber.html)
|
||||
- [AWS SNS API reference](https://docs.aws.amazon.com/sns/latest/api/Welcome.html)
|
||||
- [AWS SQS API reference](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Welcome.html)
|
||||
|
|
|
@ -67,7 +67,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr
|
|||
|
||||
## Create a Redis instance
|
||||
|
||||
Dapr can use any Redis instance - containerized, running on your local dev machine, or a managed cloud service, provided the version of Redis is 5.0.0 or later.
|
||||
Dapr can use any Redis instance - containerized, running on your local dev machine, or a managed cloud service, provided the version of Redis is 5.x or 6.x.
|
||||
|
||||
{{< tabs "Self-Hosted" "Kubernetes" "AWS" "GCP" "Azure">}}
|
||||
|
||||
|
@ -82,7 +82,7 @@ You can use [Helm](https://helm.sh/) to quickly create a Redis instance in our K
|
|||
1. Install Redis into your cluster.
|
||||
```bash
|
||||
helm repo add bitnami https://charts.bitnami.com/bitnami
|
||||
helm install redis bitnami/redis
|
||||
helm install redis bitnami/redis --set image.tag=6.2
|
||||
```
|
||||
|
||||
2. Run `kubectl get pods` to see the Redis containers now running in your cluster.
|
||||
|
|
|
@ -37,7 +37,7 @@ spec:
|
|||
- name: privateKey # Not used when configFileAuthentication == "true" or instancePrincipalAuthentication == "true"
|
||||
value: |
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
REPLACE-WIH-PRIVATE-KEY-AS-IN-PEM-FILE
|
||||
REPLACE-WITH-PRIVATE-KEY-AS-IN-PEM-FILE
|
||||
-----END RSA PRIVATE KEY-----
|
||||
- name: region
|
||||
value: <REPLACE-WITH-OCI-REGION> # Not used when configFileAuthentication == "true" or instancePrincipalAuthentication == "true"
|
||||
|
|
|
@ -294,7 +294,7 @@ Alternatively, you can create an instance of Redis by running the following comm
|
|||
|
||||
> Note: `redislabs/rejson` has support only for amd64 architecture.
|
||||
|
||||
Use following command to create an instance of redis compatiable with query API.
|
||||
Use following command to create an instance of redis compatible with query API.
|
||||
|
||||
```bash
|
||||
docker run -p 9445:9445 --name rejson --rm redislabs/rejson:2.0.6
|
||||
|
@ -306,8 +306,9 @@ Follow instructions for [Redis deployment in Kubernetes](#setup-redis) with one
|
|||
|
||||
When installing Redis Helm package, provide a configuration file that specifies container image and enables required modules:
|
||||
```bash
|
||||
helm install redis bitnami/redis -f values.yaml
|
||||
helm install redis bitnami/redis --set image.tag=6.2 -f values.yaml
|
||||
```
|
||||
|
||||
where `values.yaml` looks like:
|
||||
```yaml
|
||||
image:
|
||||
|
|
|
@ -28,7 +28,7 @@ spec:
|
|||
- name: keyType
|
||||
value: <REPLACE-WITH-KEY-TYPE> # Optional. defaults to "string"
|
||||
- name: keyLength
|
||||
value: <KEY-LENGTH> # Optional. defaults to 200. Yo be used with "string" keyType
|
||||
value: <KEY-LENGTH> # Optional. defaults to 200. You be used with "string" keyType
|
||||
- name: schema
|
||||
value: <SCHEMA> # Optional. defaults to "dbo"
|
||||
- name: indexedProperties
|
||||
|
|
|
@ -20,4 +20,7 @@ The following table lists the environment variables used by the Dapr runtime, CL
|
|||
| DAPR_API_TOKEN | Dapr sidecar | The token used for Dapr API authentication for requests from the application. [Enable API token authentication in Dapr]({{< ref api-token >}}). |
|
||||
| NAMESPACE | Dapr sidecar | Used to specify a component's [namespace in self-hosted mode]({{< ref component-scopes >}}). |
|
||||
| DAPR_DEFAULT_IMAGE_REGISTRY | Dapr CLI | In self-hosted mode, it is used to specify the default container registry to pull images from. When its value is set to `GHCR` or `ghcr`, it pulls the required images from Github container registry. To default to Docker hub, unset this environment variable. |
|
||||
| SSL_CERT_DIR | Dapr sidecar | Specifies the location where the public certificates for all the trusted certificate authorities (CA) are located. Not applicable when the sidecar is running as a process in self-hosted mode.
|
||||
| SSL_CERT_DIR | Dapr sidecar | Specifies the location where the public certificates for all the trusted certificate authorities (CA) are located. Not applicable when the sidecar is running as a process in self-hosted mode.|
|
||||
| DAPR_HELM_REPO_URL | Your private Dapr Helm chart url | Specifies a private Dapr Helm chart url, which defaults to the official Helm chart URL: `https://dapr.github.io/helm-charts`|
|
||||
| DAPR_HELM_REPO_USERNAME | A username for a private Helm chart | The username required to access the private Dapr Helm chart. If it can be accessed publicly, this env variable does not need to be set|
|
||||
| DAPR_HELM_REPO_PASSWORD | A password for a private Helm chart |The password required to access the private Dapr helm chart. If it can be accessed publicly, this env variable does not need to be set|
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
version: v1
|
||||
description: Restricts the maximum number of allowed HTTP requests per second
|
||||
- component: OAuth2 Authorization Grant flow
|
||||
link: https://tools.ietf.org/html/rfc6749#section-4.1
|
||||
link: https://www.rfc-editor.org/rfc/rfc6749#section-4.1
|
||||
state: Alpha
|
||||
version: v1
|
||||
description: Enables the [OAuth2 Authorization Grant flow](https://tools.ietf.org/html/rfc6749#section-4.1) on a Web API
|
||||
|
@ -24,22 +24,22 @@
|
|||
version: v1
|
||||
description: Applies [Rego/OPA Policies](https://www.openpolicyagent.org/) to incoming Dapr HTTP requests
|
||||
- component: Sentinel
|
||||
link: middleware-sentinel
|
||||
link: /reference/components-reference/supported-middleware/middleware-sentinel
|
||||
state: Alpha
|
||||
version: v1
|
||||
description: Use Sentinel middleware to guarantee the reliability and resiliency of your application
|
||||
- component: RouterChecker
|
||||
link: middleware-routerchecker
|
||||
link: /reference/components-reference/supported-middleware/middleware-routerchecker
|
||||
state: Alpha
|
||||
version: v1
|
||||
description: Use RouterChecker middleware to block invalid http request routing
|
||||
- component: Uppercase
|
||||
link: middleware-uppercase
|
||||
link: /reference/components-reference/supported-middleware/middleware-uppercase
|
||||
state: Stable
|
||||
version: v1
|
||||
description: Converts the body of the request to uppercase letters (demo)
|
||||
- component: WASM
|
||||
link: middleware-wasm
|
||||
link: /reference/components-reference/supported-middleware/middleware-wasm
|
||||
state: Alpha
|
||||
version: v1
|
||||
description: Use WASM middleware in your HTTP pipeline
|
||||
|
|
|
@ -33,9 +33,9 @@
|
|||
query: false
|
||||
- component: Azure Table Storage
|
||||
link: setup-azure-tablestorage
|
||||
state: Stable
|
||||
state: Beta
|
||||
version: v1
|
||||
since: "1.9"
|
||||
since: "1.7"
|
||||
features:
|
||||
crud: true
|
||||
transactions: false
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</tr>
|
||||
{{ range sort $components "component" }}
|
||||
<tr>
|
||||
<td><a href="/reference/components-reference/supported-middleware/{{ .link }}/" }}>{{ .component
|
||||
<td><a href="{{ .link }}/" }}>{{ .component
|
||||
}}</a>
|
||||
</td>
|
||||
<td>{{ .description | markdownify}}</td>
|
||||
|
|
|
@ -1 +1 @@
|
|||
{{- if .Get "short" }}1.8{{ else if .Get "long" }}1.8.3{{ else if .Get "cli" }}1.8.0{{ else }}1.8.3{{ end -}}
|
||||
{{- if .Get "short" }}1.8{{ else if .Get "long" }}1.8.4{{ else if .Get "cli" }}1.8.1{{ else }}1.8.4{{ end -}}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue