merge conflict

Signed-off-by: Hannah Hunter <hannahhunter@microsoft.com>
This commit is contained in:
Hannah Hunter 2024-05-03 12:47:54 -04:00
commit e2b12c4993
24 changed files with 239 additions and 45 deletions

6
.github/holopin.yml vendored
View File

@ -1,6 +1,6 @@
organization: dapr
defaultSticker: clmjkxscc122740fl0mkmb7egi
defaultSticker: clrqf84g1199090gldi6kf00gc
stickers:
-
id: clmjkxscc122740fl0mkmb7egi
alias: ghc2023
id: clrqf84g1199090gldi6kf00gc
alias: docs-badge

110
.github/workflows/website-root.yml vendored Normal file
View File

@ -0,0 +1,110 @@
name: Azure Static Web App Root
on:
workflow_dispatch:
push:
branches:
- v1.13
pull_request:
types: [opened, synchronize, reopened, closed]
branches:
- v1.13
concurrency:
# Cancel the previously triggered build for only PR build.
group: website-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
build_and_deploy_job:
name: Build Hugo Website
if: github.event.action != 'closed'
runs-on: ubuntu-latest
env:
SWA_BASE: 'proud-bay-0e9e0e81e'
HUGO_ENV: production
steps:
- name: Checkout docs repo
uses: actions/checkout@v3
with:
submodules: true
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2.5.0
with:
hugo-version: 0.102.3
extended: true
- name: Setup Docsy
run: |
cd daprdocs
git submodule update --init --recursive
sudo npm install -D --save autoprefixer
sudo npm install -D --save postcss-cli
- name: Build Hugo Website
run: |
cd daprdocs
git config --global --add safe.directory /github/workspace
if [ $GITHUB_EVENT_NAME == 'pull_request' ]; then
STAGING_URL="https://${SWA_BASE}-${{github.event.number}}.westus2.azurestaticapps.net/"
fi
hugo ${STAGING_URL+-b "$STAGING_URL"}
- name: Deploy docs site
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }}
repo_token: ${{ secrets.GITHUB_TOKEN }}
action: "upload"
app_location: "daprdocs/public/"
api_location: "daprdocs/public/"
output_location: ""
skip_app_build: true
skip_deploy_on_missing_secrets: true
- name: Upload Hugo artifacts
uses: actions/upload-artifact@v3
with:
name: hugo_build
path: ./daprdocs/public/
if-no-files-found: error
close_staging_site:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
name: Close Pull Request Job
steps:
- name: Close Pull Request
id: closepullrequest
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN_PROUD_BAY_0E9E0E81E }}
action: "close"
skip_deploy_on_missing_secrets: true
algolia_index:
name: Index site for Algolia
if: github.event_name == 'push'
needs: ['build_and_deploy_job']
runs-on: ubuntu-latest
env:
ALGOLIA_APP_ID: ${{ secrets.ALGOLIA_APP_ID }}
ALGOLIA_API_WRITE_KEY: ${{ secrets.ALGOLIA_API_WRITE_KEY }}
ALGOLIA_INDEX_NAME: daprdocs
steps:
- name: Checkout docs repo
uses: actions/checkout@v2
with:
submodules: false
- name: Download Hugo artifacts
uses: actions/download-artifact@v3
with:
name: hugo_build
path: site/
- name: Install Python packages
run: |
pip install --upgrade bs4
pip install --upgrade 'algoliasearch>=2.0,<3.0'
- name: Index site
run: python ./.github/scripts/algolia.py ./site

View File

@ -105,37 +105,45 @@ id = "G-60C6Q1ETC1"
lang = "en"
[[module.mounts]]
source = "../translations/docs-zh/content/zh-hans"
source = "../translations/docs-zh/translated_content/zh_CN/docs"
target = "content"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/contributing"
target = "content/contributing/docs-contrib/docs-templates"
source = "../translations/docs-zh/translated_content/zh_CN/contributing"
target = "content/contributing/sdk-contrib/"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_python"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_python"
target = "content/developing-applications/sdks/python"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_php"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_php"
target = "content/developing-applications/sdks/php"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_dotnet"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_dotnet"
target = "content/developing-applications/sdks/dotnet"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_java"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_java"
target = "content/developing-applications/sdks/java"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_go"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_go"
target = "content/developing-applications/sdks/go"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/content/sdks_js"
source = "../translations/docs-zh/translated_content/zh_CN/sdks_js"
target = "content/developing-applications/sdks/js"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/translated_content/zh_CN/pluggable-components/dotnet"
target = "content/developing-applications/develop-components/pluggable-components/pluggable-components-sdks/pluggable-components-dotnet"
lang = "zh-hans"
[[module.mounts]]
source = "../translations/docs-zh/translated_content/zh_CN/pluggable-components/go"
target = "content/developing-applications/develop-components/pluggable-components/pluggable-components-sdks/pluggable-components-go"
lang = "zh-hans"
# Markdown Engine - Allow inline html
[markup]

View File

@ -8,11 +8,25 @@ description: >
---
Thank you for your interest in Dapr!
This document provides the guidelines for how to contribute to the [Dapr project](https://github.com/dapr) through issues and pull-requests. Contributions can also come in additional ways such as engaging with the community in community calls, commenting on issues or pull requests and more.
This document provides the guidelines for how to contribute to the [Dapr project](https://github.com/dapr) through issues and pull requests. Contributions can also come in additional ways such as engaging with the community in community calls, commenting on issues or pull requests, and more.
See the [Dapr community repository](https://github.com/dapr/community) for more information on community engagement and community membership.
> If you are looking to contribute to the Dapr docs, please also see the specific guidelines for [docs contributions]({{< ref contributing-docs >}}).
## Dapr Repository Index
Below is a list of repositories under the Dapr organization where you can contribute:
1. **Docs**: This [repository](https://github.com/dapr/docs) contains the documentation for Dapr. You can contribute by updating existing documentation, fixing errors, or adding new content to improve user experience and clarity. Please see the specific guidelines for [docs contributions]({{< ref contributing-docs >}}).
2. **Quickstarts**: The Quickstarts [repository](https://github.com/dapr/quickstarts) provides simple, step-by-step guides to help users get started with Dapr quickly. Contributions in this repository involve creating new quickstarts, improving existing ones, or ensuring they stay up-to-date with the latest features.
3. **Runtime**: The Dapr runtime [repository](https://github.com/dapr/dapr) houses the core runtime components. Here, you can contribute by fixing bugs, optimizing performance, implementing new features, or enhancing existing ones.
4. **Components-contrib**: This [repository](https://github.com/dapr/components-contrib) hosts a collection of community-contributed components for Dapr. You can contribute by adding new components, improving existing ones, or reviewing and testing contributions from the community.
5. **SDKs**: Dapr SDKs provide libraries for various programming languages to interact with Dapr. You can contribute by improving SDK functionalities, fixing bugs, or adding support for new features. Please see the [contribution guidelines]({{< ref sdk-contrib >}}) for specific SDKs.
6. **CLI**: Dapr cli sets up Dapr on a local dev machine or a Kubernetes cluster for launching and managing Dapr instances. Contributions to the CLI repository include adding new features, fixing bugs, improving usability, and ensuring compatibility with the latest Dapr releases. Please see the [Development Guide](https://github.com/dapr/cli/blob/master/docs/development/development.md) for help in getting started with developing the Dapr cli.
## Issues

View File

@ -10,6 +10,13 @@ We welcome community members giving presentations on Dapr and spreading the word
{{< button text="Download the Dapr Presentation Deck" link="/presentations/dapr-slidedeck.pptx.zip" >}}
{{% alert color="primary" %}}
If you're using the PowerPoint template with MacOS, please install the Space Grotesk font to ensure the text is rendered properly:
```sh
brew install --cask homebrew/cask-fonts/font-space-grotesk
```
{{% /alert %}}
## Giving a Dapr presentation
- Begin by downloading the [Dapr Presentation Deck](/presentations/dapr-slidedeck.pptx.zip). This contains slides and diagrams needed to give a Dapr presentation.

View File

@ -41,7 +41,7 @@ Applications can also use the secrets API to access secrets from a Kubernetes se
- The Helm defaults, or
- `dapr init -k`
If you are using another secret store, you can disable (not configure) the Dapr Kubernetes secret store by setting `disable-builtin-k8s-secret-store` to `true` through the Helm settings. The default is `false`.
If you are using another secret store, you can disable (not configure) the Dapr Kubernetes secret store by adding the annotation `dapr.io/disable-builtin-k8s-secret-store: "true"` to the deployment.yaml file. The default is `false`.
In the example below, the application retrieves the same secret "mysecret" from a Kubernetes secret store.
@ -86,4 +86,4 @@ Want to skip the quickstarts? Not a problem. You can try out the secret manageme
## Next steps
- Learn [how to use secret scoping]({{< ref secrets-scopes.md >}}).
- Read the [secrets API reference doc]({{< ref secrets_api.md >}}).
- Read the [secrets API reference doc]({{< ref secrets_api.md >}}).

View File

@ -4,7 +4,6 @@ title: "How To: Use secret scoping"
linkTitle: "How To: Use secret scoping"
weight: 3000
description: "Use scoping to limit the secrets that can be read by your application from secret stores"
type: docs
---
Once you [configure a secret store for your application]({{< ref setup-secret-store >}}), *any* secret defined within that store is accessible by default from the Dapr application.
@ -107,4 +106,4 @@ Scenarios | defaultAccess | allowedSecrets | deniedSecrets | permission
## Related links
- List of [secret stores]({{< ref supported-secret-stores.md >}})
- Overview of [secret stores]({{< ref setup-secret-store.md >}})
- Overview of [secret stores]({{< ref setup-secret-store.md >}})

View File

@ -248,11 +248,11 @@ func TaskChainWorkflow(ctx *workflow.WorkflowContext) (any, error) {
return nil, err
}
var result2 int
if err := ctx.CallActivity(Step1, workflow.ActivityInput(input)).Await(&result2); err != nil {
if err := ctx.CallActivity(Step2, workflow.ActivityInput(input)).Await(&result2); err != nil {
return nil, err
}
var result3 int
if err := ctx.CallActivity(Step1, workflow.ActivityInput(input)).Await(&result3); err != nil {
if err := ctx.CallActivity(Step3, workflow.ActivityInput(input)).Await(&result3); err != nil {
return nil, err
}
return []int{result1, result2, result3}, nil

View File

@ -0,0 +1,7 @@
---
type: docs
title: "Integrations with Diagrid"
linkTitle: "Diagrid"
weight: 1000
description: "Dapr integrations with Diagrid"
---

View File

@ -0,0 +1,31 @@
---
type: docs
title: "Conductor: Enterprise Dapr for Kubernetes"
linkTitle: "Diagrid Conductor"
description: "Automate operations, enforce security best practices, improve uptime, and elevate insights across your Dapr clusters"
weight: 2000
---
<br /><img src="/images/diagrid-conductor.png" alt="Diagrid Conductor diagram" width="800">
[Diagrid Conductor](https://www.diagrid.io/conductor) quickly and securely connects to all your Kubernetes clusters running Dapr and Daprized applications, delivering operational excellence, security & reliability and insights & collaboration.
**Automated Dapr management**
One-click installation, upgrade and patching of Dapr with selective application update and automated rollback means youre always up to date.
**Advisor: Discover and automate best practices**
Be informed and apply production best practices, with continuous checking to prevent misconfigurations, increasing security, reliability and performance.
**Resource usage reporting and tracking**
By studying past resource behavior, recommend application resource optimization usage leading to significant cost savings on CPU and memory.
**Application visualizer**
The application graph facilitates collaboration between dev and ops by providing a dynamic overview of your services and infrastructure components.
Try out [Conductor Free](https://www.diagrid.io/pricing), ideal for individual developers building and testing Dapr applications on Kubernetes.
{{< button text="Learn more about Diagrid Conductor" link="https://www.diagrid.io/conductor" >}}

View File

@ -4,7 +4,6 @@ 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.

View File

@ -24,12 +24,12 @@ Select your [preferred language below]({{< ref "#sdk-languages" >}}) to learn mo
|----------|:------|:----------:|:-----------:|:---------:|:---------:|
| [.NET]({{< ref dotnet >}}) | Stable | ✔ | [ASP.NET Core](https://github.com/dapr/dotnet-sdk/tree/master/examples/AspNetCore) | ✔ | ✔ |
| [Python]({{< ref python >}}) | Stable | ✔ | [gRPC]({{< ref python-grpc.md >}}) <br />[FastAPI]({{< ref python-fastapi.md >}})<br />[Flask]({{< ref python-flask.md >}})| ✔ | ✔ |
| [Java]({{< ref java >}}) | Stable | ✔ | Spring Boot | ✔ | |
| [Go]({{< ref go >}}) | Stable | ✔ | ✔ | ✔ | |
| [Java]({{< ref java >}}) | Stable | ✔ | Spring Boot <br /> Quarkus| ✔ | |
| [Go]({{< ref go >}}) | Stable | ✔ | ✔ | ✔ | |
| [PHP]({{< ref php >}}) | Stable | ✔ | ✔ | ✔ | |
| [Javascript]({{< ref js >}}) | Stable| ✔ | | ✔ | |
| [Javascript]({{< ref js >}}) | Stable| ✔ | | ✔ | |
| [C++](https://github.com/dapr/cpp-sdk) | In development | ✔ | | |
| [Rust](https://github.com/dapr/rust-sdk) | In development | ✔ | | | |
| [Rust](https://github.com/dapr/rust-sdk) | In development | ✔ | | | |
## Further reading

View File

@ -4,7 +4,6 @@ title: "Running Dapr with a Kubernetes Job"
linkTitle: "Kubernetes Jobs"
weight: 70000
description: "Use Dapr API in a Kubernetes Job context"
type: docs
---
The Dapr sidecar is designed to be a long running process. In the context of a [Kubernetes Job](https://kubernetes.io/docs/concepts/workloads/controllers/job/) this behavior can block your job completion.
@ -67,4 +66,4 @@ func main() {
## Related links
- [Deploy Dapr on Kubernetes]({{< ref kubernetes-deploy.md >}})
- [Upgrade Dapr on Kubernetes]({{< ref kubernetes-upgrade.md >}})
- [Upgrade Dapr on Kubernetes]({{< ref kubernetes-upgrade.md >}})

View File

@ -10,15 +10,14 @@ description: "Best practices for deploying Dapr to a Kubernetes cluster in a pro
Dapr support for Kubernetes is aligned with [Kubernetes Version Skew Policy](https://kubernetes.io/releases/version-skew-policy/).
Use the following resource settings as a starting point. Requirements vary depending on cluster size, number of pods, and other factors. Perform individual testing to find the right values for your environment.
Use the following resource settings as a starting point. Requirements vary depending on cluster size, number of pods, and other factors. Perform individual testing to find the right values for your environment. In production, it's recommended to not add memory limits to the Dapr control plane components to avoid `OOMKilled` pod statuses.
| Deployment | CPU | Memory
|-------------|-----|-------
| **Operator** | Limit: 1, Request: 100m | Limit: 200Mi, Request: 100Mi
| **Sidecar Injector** | Limit: 1, Request: 100m | Limit: 200Mi, Request: 30Mi
| **Sentry** | Limit: 1, Request: 100m | Limit: 200Mi, Request: 30Mi
| **Placement** | Limit: 1, Request: 250m | Limit: 150Mi, Request: 75Mi
| **Dashboard** | Limit: 200m, Request: 50m | Limit: 200Mi, Request: 20Mi
| **Operator** | Limit: 1, Request: 100m | Request: 100Mi
| **Sidecar Injector** | Limit: 1, Request: 100m | Request: 30Mi
| **Sentry** | Limit: 1, Request: 100m | Request: 30Mi
| **Placement** | Limit: 1, Request: 250m | Request: 75Mi
{{% alert title="Note" color="primary" %}}
For more information, refer to the Kubernetes documentation on [CPU and Memory resource units and their meaning](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-units-in-kubernetes).

View File

@ -4,7 +4,6 @@ title: "Using OpenTelemetry Collector to collect traces to send to Jaeger"
linkTitle: "Using the OpenTelemetry for Jaeger"
weight: 1200
description: "How to push trace events to Jaeger distributed tracing platform, using the OpenTelemetry Collector."
type: docs
---
While Dapr supports writing traces using OpenTelemetry (OTLP) and Zipkin protocols, Zipkin support for Jaeger has been deprecated in favor of OTLP. Although Jaeger supports OTLP directly, the recommended approach for production is to use the OpenTelemetry Collector to collect traces from Dapr and send them to Jaeger, allowing your application to quickly offload data and take advantage of features like retries, batching, and encryption. For more information, read the Open Telemetry Collector [documentation](https://opentelemetry.io/docs/collector/#when-to-use-a-collector).

View File

@ -4,7 +4,6 @@ title: "How-To: Set up Zipkin for distributed tracing"
linkTitle: "Zipkin"
weight: 4000
description: "Set up Zipkin for distributed tracing"
type: docs
---
## Configure self hosted mode

View File

@ -126,6 +126,21 @@ Dapr has its HTTP health endpoint `/v1.0/healthz` on port 3500. This can be used
failureThreshold: 3
```
## Delay graceful shutdown
Dapr accepts a [`dapr.io/block-shutdown-duration` annotation or `--dapr-block-shutdown-duration` CLI flag]({{< ref arguments-annotations-overview.md >}}), which delays the full shutdown procedure for the specified duration, or until the app reports as unhealthy, whichever is sooner.
During this period, all subscriptions and input bindings are closed. This is useful for applications that need to use the Dapr APIs as part of their own shutdown procedure.
Applicable annotations or CLI flags include:
- `--dapr-graceful-shutdown-seconds`/`dapr.io/graceful-shutdown-seconds`
- `--dapr-block-shutdown-duration`/`dapr.io/block-shutdown-duration`
- `--dapr-graceful-shutdown-seconds`/`dapr.io/graceful-shutdown-seconds`
- `--dapr-block-shutdown-duration`/`dapr.io/block-shutdown-duration`
Learn more about these and how to use them in the [Annotations and arguments guide.]({{< ref arguments-annotations-overview.md >}})
## Related links
- [Endpoint health API]({{< ref health_api.md >}})

View File

@ -45,6 +45,8 @@ The table below shows the versions of Dapr releases that have been tested togeth
| Release date | Runtime | CLI | SDKs | Dashboard | Status | Release notes |
|--------------------|:--------:|:--------|---------|---------|---------|------------|
| April 3rd 2024 | 1.13.2</br> | 1.13.0 | Java 1.11.0 </br>Go 1.10.0 </br>PHP 1.2.0 </br>Python 1.13.0 </br>.NET 1.13.0 </br>JS 3.3.0 | 0.14.0 | Supported (current) | [v1.13.2 release notes](https://github.com/dapr/dapr/releases/tag/v1.13.2) |
| March 26th 2024 | 1.13.1</br> | 1.13.0 | Java 1.11.0 </br>Go 1.10.0 </br>PHP 1.2.0 </br>Python 1.13.0 </br>.NET 1.13.0 </br>JS 3.3.0 | 0.14.0 | Supported (current) | [v1.13.1 release notes](https://github.com/dapr/dapr/releases/tag/v1.13.1) |
| March 6th 2024 | 1.13.0</br> | 1.13.0 | Java 1.11.0 </br>Go 1.10.0 </br>PHP 1.2.0 </br>Python 1.13.0 </br>.NET 1.13.0 </br>JS 3.3.0 | 0.14.0 | Supported (current) | [v1.13.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.13.0) |
| January 17th 2024 | 1.12.4</br> | 1.12.0 | Java 1.10.0 </br>Go 1.9.1 </br>PHP 1.2.0 </br>Python 1.12.0 </br>.NET 1.12.0 </br>JS 3.2.0 | 0.14.0 | Supported (current) | [v1.12.4 release notes](https://github.com/dapr/dapr/releases/tag/v1.12.4) |
| January 2nd 2024 | 1.12.3</br> | 1.12.0 | Java 1.10.0 </br>Go 1.9.1 </br>PHP 1.2.0 </br>Python 1.12.0 </br>.NET 1.12.0 </br>JS 3.2.0 | 0.14.0 | Supported (current) | [v1.12.3 release notes](https://github.com/dapr/dapr/releases/tag/v1.12.3) |
@ -133,7 +135,7 @@ General guidance on upgrading can be found for [self hosted mode]({{< ref self-h
| 1.10.0 | N/A | 1.10.8 |
| 1.11.0 | N/A | 1.11.4 |
| 1.12.0 | N/A | 1.12.4 |
| 1.13.0 | N/A | 1.13.0 |
| 1.13.0 | N/A | 1.13.2 |
## Upgrade on Hosting platforms

View File

@ -40,7 +40,7 @@ spec:
- name: azureCertificateFile # Optional
value : "[pfx_certificate_file_fully_qualified_local_path]"
- name: subscribePollInterval # Optional
value: #Optional [Expected format example - 30s]
value: #Optional [Expected format example - 24h]
```
@ -57,7 +57,7 @@ The above example uses secrets as plain strings. It is recommended to use a secr
| maxRetries | N | Maximum number of retries before giving up. Defaults to `3` | `5`, `10`
| retryDelay | N | RetryDelay specifies the initial amount of delay to use before retrying an operation. The delay increases exponentially with each retry up to the maximum specified by MaxRetryDelay. Defaults to `4` seconds; `"-1"` disables delay between retries. | `4s`
| maxRetryDelay | N | MaxRetryDelay specifies the maximum delay allowed before retrying an operation. Typically the value is greater than or equal to the value specified in RetryDelay. Defaults to `120` seconds; `"-1"` disables the limit | `120s`
| subscribePollInterval | N | subscribePollInterval specifies the poll interval in nanoseconds for polling the subscribed keys for any changes. This will be updated in the future to Go Time format. Default polling interval is set to `24` hours. | `30s`
| subscribePollInterval | N | subscribePollInterval specifies the poll interval in nanoseconds for polling the subscribed keys for any changes. This will be updated in the future to Go Time format. Default polling interval is set to `24` hours. | `24h`
**Note**: either `host` or `connectionString` must be specified.

View File

@ -3,7 +3,6 @@ type: docs
title: "Bearer"
linkTitle: "Bearer"
description: "Use bearer middleware to secure HTTP endpoints by verifying bearer tokens"
type: docs
aliases:
- /developing-applications/middleware/supported-middleware/middleware-bearer/
---

View File

@ -467,7 +467,8 @@ You can configure pub/sub to publish or consume data encoded using [Avro binary
### Configuration
{{% alert title="Important" color="warning" %}}
Currently, only message value serialization/deserialization is supported. Since cloud events are not supported, the `rawPayload=true` metadata must be passed.
Currently, only message value serialization/deserialization is supported. Since cloud events are not supported, the `rawPayload=true` metadata must be passed when publishing Avro messages.
Please note that `rawPayload=true` should NOT be set for consumers, as the message value will be wrapped into a CloudEvent and base64-encoded. Leaving `rawPayload` as default (i.e. `false`) will send the Avro-decoded message to the application as a JSON payload.
{{% /alert %}}
When configuring the Kafka pub/sub component metadata, you must define:
@ -538,7 +539,6 @@ def subscribe():
'topic': 'my-topic',
'route': 'my_topic_subscriber',
'metadata': {
'rawPayload': 'true',
'valueSchemaType': 'Avro',
} }]
return subscriptions

View File

@ -207,9 +207,15 @@ For example, if installing using the example above, the RabbitMQ server client a
## Use topic exchange to route messages
Setting `exchangeKind` to `"topic"` uses the topic exchanges, which are commonly used for the multicast routing of messages.
Messages with a `routing key` will be routed to one or many queues based on the `routing key` defined in the metadata when subscribing.
The routing key is defined by the `routingKey` metadata. For example, if an app is configured with a routing key `keyA`:
Setting `exchangeKind` to `"topic"` uses the topic exchanges, which are commonly used for the multicast routing of messages. In order to route messages using topic exchange, you must set the following metadata:
- **`routingKey`:**
Messages with a routing key are routed to one or many queues based on the `routing key` defined in the metadata when subscribing.
- **`queueName`:**
If you don't set the `queueName`, only one queue is created, and all routing keys will route to that queue. This means all subscribers will bind to that queue, which won't give the desired results.
For example, if an app is configured with a routing key `keyA` and `queueName` of `queue-A`:
```yaml
apiVersion: dapr.io/v2alpha1
@ -223,6 +229,7 @@ spec:
pubsubname: pubsub
metadata:
routingKey: keyA
queueName: queue-A
```
It will receive messages with routing key `keyA`, and messages with other routing keys are not received.

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

@ -1 +1 @@
Subproject commit 7938567259e1dcaba7bb3fbfca88ed9db92cefaa
Subproject commit 864b558a7c253f037f4c8bd21a579a5dab5e1456