pythonazureazure-functions

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:

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

  • 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, for a valid binding name

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