Signed-off-by: Adrian Cole <adrian@tetrate.io>
This commit is contained in:
Adrian Cole 2022-07-26 09:25:37 +08:00
parent a480f12c61
commit 9066935a22
1 changed files with 17 additions and 9 deletions

View File

@ -22,7 +22,6 @@ a filesystem mount that can contain Wasm modules.
## Component format ## Component format
```yaml ```yaml
apiVersion: dapr.io/v1alpha1 apiVersion: dapr.io/v1alpha1
kind: Component kind: Component
@ -34,16 +33,22 @@ spec:
metadata: metadata:
- name: path - name: path
value: "./hello.wasm" value: "./hello.wasm"
- name: runtime - name: poolSize
value: "wazero" value: 1
``` ```
## Spec metadata fields ## Spec metadata fields
| Field | Details | Example | 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
| path | A relative or absolute path to the Wasm binary | "./hello.wasm" | concurrently. The below configuration fields control both the binary to
| poolSize | The instance count of the Wasm binary | 10 | 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. | false | "./hello.wasm" |
| poolSize | Number of concurrent instances of the Wasm binary. Default: 10 | true | 1 |
## Dapr configuration ## Dapr configuration
@ -72,6 +77,7 @@ To compile your Wasm, you must compile source using a waPC guest SDK such as
[TinyGo](https://github.com/wapc/wapc-guest-tinygo). [TinyGo](https://github.com/wapc/wapc-guest-tinygo).
Here's an example in TinyGo: Here's an example in TinyGo:
```go ```go
package main package main
@ -90,7 +96,9 @@ func rewrite(requestURI []byte) ([]byte, error) {
} }
``` ```
If using TinyGo, compile as shown below and set the `path` attribute to the output: 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 ```bash
tinygo build -o example.wasm -scheduler=none --no-debug -target=wasi example.go` tinygo build -o example.wasm -scheduler=none --no-debug -target=wasi example.go`
``` ```