You can run your function locally and test it using crossplane render
with these example manifests.
# Run the function locally
$ go run . --insecure --debug# Then, in another terminal, call it with these example manifests
$ crossplane render xr.yaml composition.yaml functions.yaml \
--function-credentials=credentials.yaml \
--include-function-results
---
apiVersion: example.crossplane.io/v1
kind: XR
metadata:
name: example-xr
---
apiVersion: render.crossplane.io/v1beta1
kind: Result
message: I was run with input "Hello world"!
severity: SEVERITY_NORMAL
step: run-the-template