My biggest gotcha with Azure Functions is that you need to put Wait-Debugger in your script for local debugging, and it’s easy to forget to remove it when you deploy to Azure.
My last post talked about exploring Azure Functions’ environment, and I mentioned that you could compare the cloud version with its locally-run approximation.
Well, when you’re running your function locally, the variable $env:AZURE_FUNCTIONS_ENVIRONMENT is set to Development.
This means you can ensure that you never leave a function hanging at Wait-Debugger in the cloud by wrapping it like this:
if ($env:AZURE_FUNCTIONS_ENVIRONMENT -eq 'Development') {
Wait-Debugger
}
Another solution is to wrap your debug command like this:
if ($Request.Query.Debug -eq 'True') {
Wait-Debugger
}
And then invoke your function with &Debug=True when you want to debug it.
How do you handle this problem?