plano/envoyfilter/README.md

72 lines
1.1 KiB
Markdown
Raw Normal View History

# Envoy filter code for gateway
## Add toolchain
```sh
$ rustup target add wasm32-wasi
```
## Building
```sh
$ cargo build --target wasm32-wasi --release
```
## Testing
```sh
$ cargo test
```
## Using in Envoy
This example can be run with [`docker compose`](https://docs.docker.com/compose/install/)
and has a matching Envoy configuration.
```sh
$ docker compose up
```
## Examples
### Direct response.
Send HTTP request to `localhost:10000/hello`:
```sh
$ curl localhost:10000/hello
```
Expected response:
```console
HTTP/1.1 200 OK
content-length: 40
content-type: text/plain
custom-header: katanemo filter
date: Wed, 10 Jul 2024 16:59:43 GMT
server: envoy
```
### Inline call.
Send HTTP request to `localhost:10000/inline`:
```sh
$ curl localhost:10000/hello
{
"headers": {
"Accept": "*/*",
"Host": "localhost",
"User-Agent": "curl/7.81.0",
"X-Amzn-Trace-Id": "Root=1-637c4767-6e31776a0b407a0219b5b570",
"X-Envoy-Expected-Rq-Timeout-Ms": "15000"
}
}
```
Expected Envoy logs:
```console
[...] wasm log http_auth_random: Access granted.
```