'What is a valid binding name for azure function?

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



Solution 1:[1]

I didn't find anything on the documentation, but by looking at the source code of azure-functions-host, it uses following regex to validate the binding name.

^([a-zA-Z][a-zA-Z0-9]{0,127}|\$return)$

This means that a validate binding name must be either,

  • Alpha numeric characters(With at most 127)
  • Literal string $return

Since your binding name contains an _, the above regex does not match which will result in validation error.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1