How can we debug errors in our Cloudflare Workers functions?
Let's imagine that we have deployed the following code as a Cloudflare Worker function using Serverless:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const answer = request.headers.get("greeting") || "hello"
return new Response(answer + " world")
}
And its corresponding Serverless yml file:
# serverless.yml
...
functions:
helloWorld:
# What the script will be called on Cloudflare
worker: hello
# The name of the script on your machine, omitting the .js file extension
script: helloWorld
events:
- http:
url: example.com/hello/user
# Defines the method used by serverless when the `invoke` command is used. Cloudflare Workers only support GET requests for now
method: GET
headers:
greeting: hi
Let's invoke correctly that function
serverless invoke --function helloWorld
# Output
hi world
If we were to call the above function without any headers, you would get hello world
back instead of hi world
, so we know that our worker is properly reading the greeting header.
Cloudflare Workers also have a Playground you can use to modify a Cloudflare Worker and see the results live on the same screen. The Cloudflare Workers Playground is another great way to debug your worker.
developers
Made with love in San Francisco + Atlanta, Austria, Germany, Pakistan, Poland, Nebraska & Thailand
Serverless, Inc. © 2018