Welcome to your new Rust function project! The boilerplate
axum web server is in
src/main.rs
. It's configured to invoke the index
function in src/handler.rs
in response to both
GET and POST requests. You should put your desired behavior inside
that index
function.
The app will expose three endpoints:
/
Triggers theindex
function, for either GET or POST methods/health/readiness
The endpoint for a readiness health check/health/liveness
The endpoint for a liveness health check
You may use any of the available axum features to fulfill the requests at those endpoints.
This is a fully self-contained application, so you can develop it as you would any other Rust application, e.g.
cargo build
cargo test
cargo run
Once running, the function is available at http://localhost:8080 and
the health checks are at http://localhost:8080/health/readiness and
http://localhost:8080/health/liveness. To POST data to the function,
a utility such as curl
may be used:
curl -d '{"hello": "world"}' \
-H'content-type: application/json' \
http://localhost:8080
Use func
to containerize your application, publish it to a registry
and deploy it as a Knative Service in your Kubernetes cluster:
func deploy --registry=docker.io/<YOUR_ACCOUNT>
You can omit the --registry
option by setting the FUNC_REGISTRY
environment variable. And if you forget, you'll be prompted.
The output from a successful deploy should show the URL for the
service, which you can also get via func info
, e.g.
curl $(func info -o url)
Have fun!