mirror of https://github.com/dapr/docs.git
Merge pull request #1204 from dapr/upmerge-1.0-rc3
Upmerge 1.0-rc3 to v1.0
This commit is contained in:
commit
88c28ba0a0
|
|
@ -0,0 +1 @@
|
||||||
|
// Intentionally blank
|
||||||
|
|
@ -1,14 +1,53 @@
|
||||||
// Code formatting.
|
// Code formatting.
|
||||||
|
|
||||||
|
.copy-code-button {
|
||||||
|
color: #272822;
|
||||||
|
background-color: #FFF;
|
||||||
|
border-color: #0D2192;
|
||||||
|
border: 2px solid;
|
||||||
|
border-radius: 3px 3px 0px 0px;
|
||||||
|
|
||||||
|
/* right-align */
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
|
||||||
|
margin-bottom: -2px;
|
||||||
|
padding: 3px 8px;
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-code-button:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #F2F2F2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-code-button:focus {
|
||||||
|
/* Avoid an ugly focus outline on click in Chrome,
|
||||||
|
but darken the button for accessibility.
|
||||||
|
See https://stackoverflow.com/a/25298082/1481479 */
|
||||||
|
background-color: #E6E6E6;
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.copy-code-button:active {
|
||||||
|
background-color: #D9D9D9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight pre {
|
||||||
|
/* Avoid pushing up the copy buttons. */
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.td-content {
|
.td-content {
|
||||||
// Highlighted code.
|
// Highlighted code.
|
||||||
.highlight {
|
.highlight {
|
||||||
@extend .card;
|
@extend .card;
|
||||||
|
|
||||||
margin: 2rem 0;
|
margin: 0rem 0;
|
||||||
padding: 0;
|
padding: 0rem;
|
||||||
|
|
||||||
max-width: 80%;
|
max-width: 100%;
|
||||||
|
|
||||||
pre {
|
pre {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -38,6 +77,7 @@
|
||||||
background-color: $gray-100;
|
background-color: $gray-100;
|
||||||
padding: $spacer;
|
padding: $spacer;
|
||||||
|
|
||||||
|
max-width: 100%;
|
||||||
|
|
||||||
> code {
|
> code {
|
||||||
background-color: inherit !important;
|
background-color: inherit !important;
|
||||||
|
|
|
||||||
|
|
@ -52,25 +52,25 @@ id = "UA-149338238-3"
|
||||||
|
|
||||||
# Top Nav Bar
|
# Top Nav Bar
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Home"
|
name = "Homepage"
|
||||||
weight = 40
|
weight = 40
|
||||||
url = "https://dapr.io"
|
url = "https://dapr.io"
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "About"
|
name = "GitHub"
|
||||||
weight = 50
|
weight = 50
|
||||||
url = "https://dapr.io/#about"
|
url = "https://github.com/dapr"
|
||||||
[[menu.main]]
|
|
||||||
name = "Download"
|
|
||||||
weight = 60
|
|
||||||
url = "https://dapr.io/#download"
|
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Blog"
|
name = "Blog"
|
||||||
weight = 70
|
weight = 60
|
||||||
url = "https://blog.dapr.io/posts"
|
url = "https://blog.dapr.io/posts"
|
||||||
|
[[menu.main]]
|
||||||
|
name = "Discord"
|
||||||
|
weight = 70
|
||||||
|
url = "https://aka.ms/dapr-discord"
|
||||||
[[menu.main]]
|
[[menu.main]]
|
||||||
name = "Community"
|
name = "Community"
|
||||||
weight = 80
|
weight = 80
|
||||||
url = "https://dapr.io/#community"
|
url = "https://github.com/dapr/community/blob/master/README.md"
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
copyright = "Dapr"
|
copyright = "Dapr"
|
||||||
|
|
|
||||||
|
|
@ -87,6 +87,8 @@ Dapr can be used from any developer framework. Here are some that have been int
|
||||||
|
|
||||||
Dapr integrates easily with Python [Flask](https://pypi.org/project/Flask/) and node [Express](http://expressjs.com/). See examples in the [Dapr quickstarts](https://github.com/dapr/quickstarts).
|
Dapr integrates easily with Python [Flask](https://pypi.org/project/Flask/) and node [Express](http://expressjs.com/). See examples in the [Dapr quickstarts](https://github.com/dapr/quickstarts).
|
||||||
|
|
||||||
|
In the Dapr [PHP-SDK](https://github.com/dapr/php-sdk) you can serve with Apache, Nginx, or Caddyserver.
|
||||||
|
|
||||||
#### Actors
|
#### Actors
|
||||||
Dapr SDKs support for [virtual actors]({{< ref actors >}}) which are stateful objects that make concurrency simple, have method and state encapsulation, and are designed for scalable, distributed applications.
|
Dapr SDKs support for [virtual actors]({{< ref actors >}}) which are stateful objects that make concurrency simple, have method and state encapsulation, and are designed for scalable, distributed applications.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,4 @@ weight: 60
|
||||||
description: See and measure the message calls across components and networked services
|
description: See and measure the message calls across components and networked services
|
||||||
---
|
---
|
||||||
|
|
||||||
This section includes guides for developers in the context of observability. See other sections for a [general overview of the observability concept]({{< ref observability >}}) in Dapr and for [operations guidance on monitoring]({{< ref monitoring >}}).
|
This section includes guides for developers in the context of observability. See other sections for a [general overview of the observability concept]({{< ref observability-concept >}}) in Dapr and for [operations guidance on monitoring]({{< ref monitoring >}}).
|
||||||
|
|
|
||||||
|
|
@ -23,9 +23,44 @@ Let's get started!
|
||||||
|
|
||||||
## Add Dapr as an 'External Tool'
|
## Add Dapr as an 'External Tool'
|
||||||
|
|
||||||
First, quit IntelliJ.
|
First, quit IntelliJ before modifying the configurations file directly.
|
||||||
|
|
||||||
Create or edit the file in `$HOME/.IdeaIC2019.3/config/tools/External\ Tools.xml` (change IntelliJ version in path if needed) to add a new `<tool></tool>` entry:
|
### IntelliJ configuration file location
|
||||||
|
For versions [2020.1](https://www.jetbrains.com/help/idea/2020.1/tuning-the-ide.html#config-directory) and above the configuration files for tools should be located in:
|
||||||
|
|
||||||
|
{{< tabs Windows Linux MacOS >}}
|
||||||
|
|
||||||
|
{{% codetab %}}
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
%USERPROFILE%\AppData\Roaming\JetBrains\IntelliJIdea2020.1\tools\
|
||||||
|
```
|
||||||
|
{{% /codetab %}}
|
||||||
|
|
||||||
|
|
||||||
|
{{% codetab %}}
|
||||||
|
```shell
|
||||||
|
$HOME/.config/JetBrains/IntelliJIdea2020.1/tools/
|
||||||
|
```
|
||||||
|
{{% /codetab %}}
|
||||||
|
|
||||||
|
|
||||||
|
{{% codetab %}}
|
||||||
|
```shell
|
||||||
|
~/Library/Application Support/JetBrains/IntelliJIdea2020.1/tools/
|
||||||
|
```
|
||||||
|
{{% /codetab %}}
|
||||||
|
|
||||||
|
|
||||||
|
{{< /tabs >}}
|
||||||
|
|
||||||
|
> The configuration file location is different for version 2019.3 or prior. See [here](https://www.jetbrains.com/help/idea/2019.3/tuning-the-ide.html#config-directory) for more details.
|
||||||
|
|
||||||
|
Change the version of IntelliJ in the path if needed.
|
||||||
|
|
||||||
|
Create or edit the file in `<CONFIG PATH>/tools/External\ Tools.xml` (change IntelliJ version in path if needed). The `<CONFIG PATH>` is OS dependennt as seen above.
|
||||||
|
|
||||||
|
Add a new `<tool></tool>` entry:
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<toolSet name="External Tools">
|
<toolSet name="External Tools">
|
||||||
|
|
@ -33,10 +68,10 @@ Create or edit the file in `$HOME/.IdeaIC2019.3/config/tools/External\ Tools.xml
|
||||||
<!-- 1. Each tool has its own app-id, so create one per application to be debugged -->
|
<!-- 1. Each tool has its own app-id, so create one per application to be debugged -->
|
||||||
<tool name="dapr for DemoService in examples" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
<tool name="dapr for DemoService in examples" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
||||||
<exec>
|
<exec>
|
||||||
<!-- 2. For Linux or MacOS use: /usr/local/bin/daprd -->
|
<!-- 2. For Linux or MacOS use: /usr/local/bin/dapr -->
|
||||||
<option name="COMMAND" value="C:\dapr\daprd.exe" />
|
<option name="COMMAND" value="C:\dapr\dapr.exe" />
|
||||||
<!-- 3. Choose app, http and grpc ports that do not conflict with other daprd command entries (placement address should not change). -->
|
<!-- 3. Choose app, http and grpc ports that do not conflict with other daprd command entries (placement address should not change). -->
|
||||||
<option name="PARAMETERS" value="-app-id demoservice -app-port 3000 -dapr-http-port 3005 -dapr-grpc-port 52000 -placement-host-address localhost:50005" />
|
<option name="PARAMETERS" value="run -app-id demoservice -app-port 3000 -dapr-http-port 3005 -dapr-grpc-port 52000 />
|
||||||
<!-- 4. Use the folder where the `components` folder is located -->
|
<!-- 4. Use the folder where the `components` folder is located -->
|
||||||
<option name="WORKING_DIRECTORY" value="C:/Code/dapr/java-sdk/examples" />
|
<option name="WORKING_DIRECTORY" value="C:/Code/dapr/java-sdk/examples" />
|
||||||
</exec>
|
</exec>
|
||||||
|
|
@ -53,7 +88,7 @@ Optionally, you may also create a new entry for a sidecar tool that can be reuse
|
||||||
<!-- 1. Reusable entry for apps with app port. -->
|
<!-- 1. Reusable entry for apps with app port. -->
|
||||||
<tool name="dapr with app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
<tool name="dapr with app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
||||||
<exec>
|
<exec>
|
||||||
<!-- 2. For Linux or MacOS use: /usr/bin/dapr -->
|
<!-- 2. For Linux or MacOS use: /usr/local/bin/dapr -->
|
||||||
<option name="COMMAND" value="c:\dapr\dapr.exe" />
|
<option name="COMMAND" value="c:\dapr\dapr.exe" />
|
||||||
<!-- 3. Prompts user 4 times (in order): app id, app port, Dapr's http port, Dapr's grpc port. -->
|
<!-- 3. Prompts user 4 times (in order): app id, app port, Dapr's http port, Dapr's grpc port. -->
|
||||||
<option name="PARAMETERS" value="run --app-id $Prompt$ --app-port $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
|
<option name="PARAMETERS" value="run --app-id $Prompt$ --app-port $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
|
||||||
|
|
@ -64,7 +99,7 @@ Optionally, you may also create a new entry for a sidecar tool that can be reuse
|
||||||
<!-- 1. Reusable entry for apps without app port. -->
|
<!-- 1. Reusable entry for apps without app port. -->
|
||||||
<tool name="dapr without app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
<tool name="dapr without app-port" description="Dapr sidecar" showInMainMenu="false" showInEditor="false" showInProject="false" showInSearchPopup="false" disabled="false" useConsole="true" showConsoleOnStdOut="true" showConsoleOnStdErr="true" synchronizeAfterRun="true">
|
||||||
<exec>
|
<exec>
|
||||||
<!-- 2. For Linux or MacOS use: /usr/bin/dapr -->
|
<!-- 2. For Linux or MacOS use: /usr/local/bin/dapr -->
|
||||||
<option name="COMMAND" value="c:\dapr\dapr.exe" />
|
<option name="COMMAND" value="c:\dapr\dapr.exe" />
|
||||||
<!-- 3. Prompts user 3 times (in order): app id, Dapr's http port, Dapr's grpc port. -->
|
<!-- 3. Prompts user 3 times (in order): app id, Dapr's http port, Dapr's grpc port. -->
|
||||||
<option name="PARAMETERS" value="run --app-id $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
|
<option name="PARAMETERS" value="run --app-id $Prompt$ --dapr-http-port $Prompt$ --dapr-grpc-port $Prompt$" />
|
||||||
|
|
@ -108,3 +143,7 @@ After debugging, make sure you stop both `dapr` and your app in IntelliJ.
|
||||||
>Note: Since you launched the service(s) using the **dapr** ***run*** CLI command, the **dapr** ***list*** command will show runs from IntelliJ in the list of apps that are currently running with Dapr.
|
>Note: Since you launched the service(s) using the **dapr** ***run*** CLI command, the **dapr** ***list*** command will show runs from IntelliJ in the list of apps that are currently running with Dapr.
|
||||||
|
|
||||||
Happy debugging!
|
Happy debugging!
|
||||||
|
|
||||||
|
## Related links
|
||||||
|
|
||||||
|
- [Change](https://intellij-support.jetbrains.com/hc/en-us/articles/206544519-Directories-used-by-the-IDE-to-store-settings-caches-plugins-and-logs) in IntelliJ configuration directory location
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,12 @@ no_list: true
|
||||||
| [Twitter]({{< ref twitter.md >}}) | ✅ | ✅ | Alpha |
|
| [Twitter]({{< ref twitter.md >}}) | ✅ | ✅ | Alpha |
|
||||||
| [SendGrid]({{< ref sendgrid.md >}}) | | ✅ | Alpha |
|
| [SendGrid]({{< ref sendgrid.md >}}) | | ✅ | Alpha |
|
||||||
|
|
||||||
|
### Alibaba Cloud
|
||||||
|
|
||||||
|
| Name | Input<br>Binding | Output<br>Binding | Status |
|
||||||
|
|------|:----------------:|:-----------------:|--------|
|
||||||
|
| [Alibaba Cloud OSS]({{< ref alicloudoss.md >}}) | | ✅ | Alpha |
|
||||||
|
|
||||||
### Amazon Web Services (AWS)
|
### Amazon Web Services (AWS)
|
||||||
|
|
||||||
| Name | Input<br>Binding | Output<br>Binding | Status |
|
| Name | Input<br>Binding | Output<br>Binding | Status |
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
---
|
||||||
|
type: docs
|
||||||
|
title: "Alibaba Cloud Object Storage Service binding spec"
|
||||||
|
linkTitle: "Alibaba Cloud Object Storage"
|
||||||
|
description: "Detailed documentation on the Alibaba Cloud Object Storage binding component"
|
||||||
|
---
|
||||||
|
|
||||||
|
## Component format
|
||||||
|
|
||||||
|
To setup an Alibaba Cloud Object Storage binding create a component of type `bindings.alicloud.oss`. See [this guide]({{< ref "howto-bindings.md#1-create-a-binding" >}}) on how to create and apply a secretstore configuration. See this guide on [referencing secrets]({{< ref component-secrets.md >}}) to retrieve and use the secret with Dapr components.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: dapr.io/v1alpha1
|
||||||
|
kind: Component
|
||||||
|
metadata:
|
||||||
|
name: alicloudobjectstorage
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
type: bindings.alicloud.oss
|
||||||
|
version: v1
|
||||||
|
metadata:
|
||||||
|
- name: endpoint
|
||||||
|
value: "[endpoint]"
|
||||||
|
- name: accessKeyID
|
||||||
|
value: "[key-id]"
|
||||||
|
- name: accessKey
|
||||||
|
value: "[access-key]"
|
||||||
|
- name: bucket
|
||||||
|
value: "[bucket]"
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% 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 >}}).
|
||||||
|
{{% /alert %}}
|
||||||
|
|
||||||
|
## Spec metadata fields
|
||||||
|
|
||||||
|
| Field | Required | Details | Example |
|
||||||
|
|---------------|----------|---------|---------|
|
||||||
|
| `endpoint` | Y | Alicloud OSS endpoint. | https://oss-cn-hangzhou.aliyuncs.com
|
||||||
|
| `accessKeyID` | Y | Access key ID credential. |
|
||||||
|
| `accessKey` | Y | Access key credential. |
|
||||||
|
| `bucket` | Y | Name of the storage bucket. |
|
||||||
|
|
||||||
|
## Output operations
|
||||||
|
|
||||||
|
The following operations are supported as within the output binding:
|
||||||
|
|
||||||
|
### Create object
|
||||||
|
|
||||||
|
To perform a create object operation, invoke the binding with a `POST` method and the following JSON body:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"operation": "create",
|
||||||
|
"data": "YOUR_CONTENT"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% alert title="Note" color="primary" %}}
|
||||||
|
By default, a random UUID is auto-generated as the object key. See below for Metadata support to set the key for the object.
|
||||||
|
{{% /alert %}}
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
**Saving to a random generated UUID file**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\" }" http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
**Saving to a specific file**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -d "{ \"operation\": \"create\", \"data\": \"Hello World\", \"metadata\": { \"key\": \"my-key\" } }" http://localhost:<dapr-port>/v1.0/bindings/<binding-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
{{% alert title="Note" color="primary" %}}
|
||||||
|
Windows CMD requires escaping the `"` character.
|
||||||
|
{{% /alert %}}
|
||||||
|
|
||||||
|
## Metadata information
|
||||||
|
|
||||||
|
### Object key
|
||||||
|
|
||||||
|
By default, the Alicloud OSS output binding will auto-generate a UUID as the object key.
|
||||||
|
You can set the key with the following metadata:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"data": "file content",
|
||||||
|
"metadata": {
|
||||||
|
"key": "my-key"
|
||||||
|
},
|
||||||
|
"operation": "create"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related links
|
||||||
|
|
||||||
|
- [Bindings building block]({{< ref bindings >}})
|
||||||
|
- [How-To: Trigger application with input binding]({{< ref howto-triggers.md >}})
|
||||||
|
- [How-To: Use bindings to interface with external resources]({{< ref howto-bindings.md >}})
|
||||||
|
- [Bindings API reference]({{< ref bindings_api.md >}})
|
||||||
|
|
@ -30,12 +30,22 @@ spec:
|
||||||
value: topic3
|
value: topic3
|
||||||
- name: authRequired # Required. default: "true"
|
- name: authRequired # Required. default: "true"
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: saslUsername # Optional.
|
- name: saslUsername # Optional.
|
||||||
value: "user"
|
value: "user"
|
||||||
- name: saslPassword # Optional.
|
- name: saslPassword # Optional.
|
||||||
value: "password"
|
value: "password"
|
||||||
|
- name: maxMessageBytes # Optional.
|
||||||
|
value: 1024
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- `topics` is a comma separated string of topics for an input binding.
|
||||||
|
- `brokers` is a comma separated string of kafka brokers.
|
||||||
|
- `consumerGroup` is a kafka consumer group to listen on.
|
||||||
|
- `publishTopic` is the topic to publish for an output binding.
|
||||||
|
- `authRequired` determines whether to use SASL authentication or not.
|
||||||
|
- `saslUsername` is the SASL username for authentication. Only used if `authRequired` is set to - `"true"`.
|
||||||
|
- `maxMessageBytes` is the maximum message size allowed for a single Kafka message. Default is 1024.
|
||||||
|
|
||||||
{{% alert title="Warning" color="warning" %}}
|
{{% 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 as described [here]({{< ref component-secrets.md >}}).
|
||||||
{{% /alert %}}
|
{{% /alert %}}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ spec:
|
||||||
value: "adminuser"
|
value: "adminuser"
|
||||||
- name: saslPassword
|
- name: saslPassword
|
||||||
value: "KeFg23!"
|
value: "KeFg23!"
|
||||||
|
- name: maxMessageBytes
|
||||||
|
value: 1024
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% alert title="Warning" color="warning" %}}
|
{{% alert title="Warning" color="warning" %}}
|
||||||
|
|
@ -42,7 +44,27 @@ The above example uses secrets as plain strings. It is recommended to use a secr
|
||||||
| authRequired | N | Enable authentication on the Kafka broker. Defaults to `"false"`. |`"true"`, `"false"`
|
| authRequired | N | Enable authentication on the Kafka broker. Defaults to `"false"`. |`"true"`, `"false"`
|
||||||
| saslUsername | N | Username used for authentication. Only required if authRequired is set to true. | `"adminuser"`
|
| saslUsername | N | Username used for authentication. Only required if authRequired is set to true. | `"adminuser"`
|
||||||
| saslPassword | N | Password used for authentication. Can be `secretKeyRef` to use a secret reference. Only required if authRequired is set to true. Can be `secretKeyRef` to use a [secret reference]({{< ref component-secrets.md >}}) | `""`, `"KeFg23!"`
|
| saslPassword | N | Password used for authentication. Can be `secretKeyRef` to use a secret reference. Only required if authRequired is set to true. Can be `secretKeyRef` to use a [secret reference]({{< ref component-secrets.md >}}) | `""`, `"KeFg23!"`
|
||||||
|
| maxMessageBytes | N | The maximum message size allowed for a single Kafka message. Default is 1024. | `2048`
|
||||||
|
|
||||||
|
## Per-call metadata fields
|
||||||
|
|
||||||
|
### Partition Key
|
||||||
|
|
||||||
|
When invoking the Kafka pub/sub, its possible to provide an optional partition key by using the `metadata` query param in the request url.
|
||||||
|
|
||||||
|
The param name is `partitionKey`.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
curl -X POST http://localhost:3500/v1.0/publish/myKafka/myTopic?metadata.partitionKey=key1 \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"data": {
|
||||||
|
"message": "Hi"
|
||||||
|
}
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
## Create a Kafka instance
|
## Create a Kafka instance
|
||||||
{{< tabs "Self-Hosted" "Kubernetes">}}
|
{{< tabs "Self-Hosted" "Kubernetes">}}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
type: docs
|
||||||
|
title: "How-To: Handle large http body requests"
|
||||||
|
linkTitle: "Http request body size"
|
||||||
|
weight: 6000
|
||||||
|
description: "Configure http requests that are bigger than 4 MB"
|
||||||
|
---
|
||||||
|
|
||||||
|
By default Dapr has a limit for the request body size which is set to 4 MB, however you can change this by defining `dapr.io/http-max-request-size` annotation or `--dapr-http-max-request-size` flag.
|
||||||
|
|
||||||
|
|
||||||
|
### Self hosted
|
||||||
|
|
||||||
|
When running in self hosted mode, use the `--dapr-http-max-request-size` flag to configure Dapr to use non-default request body size:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dapr run --dapr-http-max-request-size 16 node app.js
|
||||||
|
```
|
||||||
|
This tells Dapr to set maximum request body size to `16` MB.
|
||||||
|
|
||||||
|
|
||||||
|
### Kubernetes
|
||||||
|
|
||||||
|
On Kubernetes, set the following annotations in your deployment YAML:
|
||||||
|
```yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: myapp
|
||||||
|
namespace: default
|
||||||
|
labels:
|
||||||
|
app: myapp
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: myapp
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: myapp
|
||||||
|
annotations:
|
||||||
|
dapr.io/enabled: "true"
|
||||||
|
dapr.io/app-id: "myapp"
|
||||||
|
dapr.io/app-port: "8000"
|
||||||
|
dapr.io/http-max-request-size: "16"
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Related links
|
||||||
|
- [Dapr Kubernetes pod annotations spec]({{< ref kubernetes-annotations.md >}})
|
||||||
|
|
@ -15,3 +15,5 @@
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
<script src="/js/copy-code-button.js"></script>
|
||||||
|
|
@ -0,0 +1,49 @@
|
||||||
|
function addCopyButtons(clipboard) {
|
||||||
|
document.querySelectorAll('pre > code').forEach(function(codeBlock) {
|
||||||
|
var button = document.createElement('button');
|
||||||
|
button.className = 'copy-code-button';
|
||||||
|
button.type = 'button';
|
||||||
|
button.innerText = 'Copy';
|
||||||
|
|
||||||
|
button.addEventListener('click', function() {
|
||||||
|
clipboard.writeText(codeBlock.textContent).then(
|
||||||
|
function() {
|
||||||
|
button.blur();
|
||||||
|
|
||||||
|
button.innerText = 'Copied!';
|
||||||
|
setTimeout(function() {
|
||||||
|
button.innerText = 'Copy';
|
||||||
|
}, 2000);
|
||||||
|
},
|
||||||
|
function(error) {
|
||||||
|
button.innerText = 'Error';
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
var pre = codeBlock.parentNode;
|
||||||
|
if (pre.parentNode.classList.contains('highlight')) {
|
||||||
|
var highlight = pre.parentNode;
|
||||||
|
highlight.parentNode.insertBefore(button, highlight);
|
||||||
|
} else {
|
||||||
|
pre.parentNode.insertBefore(button, pre);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (navigator && navigator.clipboard) {
|
||||||
|
addCopyButtons(navigator.clipboard);
|
||||||
|
} else {
|
||||||
|
var script = document.createElement('script');
|
||||||
|
script.src =
|
||||||
|
'https://cdnjs.cloudflare.com/ajax/libs/clipboard-polyfill/2.7.0/clipboard-polyfill.promise.js';
|
||||||
|
script.integrity = 'sha256-waClS2re9NUbXRsryKoof+F9qc1gjjIhc2eT7ZbIv94=';
|
||||||
|
script.crossOrigin = 'anonymous';
|
||||||
|
|
||||||
|
script.onload = function() {
|
||||||
|
addCopyButtons(clipboard);
|
||||||
|
};
|
||||||
|
|
||||||
|
document.body.appendChild(script);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue