What is a valid binding name for azure function?
Question:
When I try to run the azure function defined below, I get the following error log
The 'my_function' function is in error: The binding name my_function_timer is invalid. Please assign a valid name to the binding.
What is the format of a valid binding name for Azure Function ?
Function definition
I have two files in my_function
directory:
__init__.py
contains the python code of the function
function.json
contains the configuration of the function
Here is the content of those two files
__init__.py
import azure.functions as func
import logging
def main(my_function_timer: func.TimerRequest) -> None:
logging.info("My function starts")
print("hello world")
logging.info("My function stops")
function.json
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "my_function_timer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 1 * * *"
}
]
}
I deploy this function using Azure/functions-action@v1 github action
Answers:
I couldn’t find anything in the documentation either, but looking at the source code of azure-functions-host(which contains code for the runtime host used by the Azure Functions service), it uses following regex to validate the binding name
.
^([a-zA-Z][a-zA-Z0-9]{0,127}|$return)$
This means that a valid binding name must be either,
- Alpha numeric characters(with atmost 127 characters)
- Literal string
$return
Since your binding name contains an underscore(_
), the above regex does not match which will result in validation error.
When I try to run the azure function defined below, I get the following error log
The 'my_function' function is in error: The binding name my_function_timer is invalid. Please assign a valid name to the binding.
What is the format of a valid binding name for Azure Function ?
Function definition
I have two files in my_function
directory:
__init__.py
contains the python code of the functionfunction.json
contains the configuration of the function
Here is the content of those two files
__init__.py
import azure.functions as func
import logging
def main(my_function_timer: func.TimerRequest) -> None:
logging.info("My function starts")
print("hello world")
logging.info("My function stops")
function.json
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "my_function_timer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 1 * * *"
}
]
}
I deploy this function using Azure/functions-action@v1 github action
I couldn’t find anything in the documentation either, but looking at the source code of azure-functions-host(which contains code for the runtime host used by the Azure Functions service), it uses following regex to validate the binding name
.
^([a-zA-Z][a-zA-Z0-9]{0,127}|$return)$
This means that a valid binding name must be either,
- Alpha numeric characters(with atmost 127 characters)
- Literal string
$return
Since your binding name contains an underscore(_
), the above regex does not match which will result in validation error.