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
```yaml
apiVersion: dapr.io/v1alpha1
kind: Component
@ -34,16 +33,22 @@ 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 binary | "./hello.wasm" |
| poolSize | The instance count of the Wasm binary | 10 |
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. | false | "./hello.wasm" |
| poolSize | Number of concurrent instances of the Wasm binary. Default: 10 | true | 1 |
## 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).
Here's an example in TinyGo:
```go
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
tinygo build -o example.wasm -scheduler=none --no-debug -target=wasi example.go`
```