Read data with input bindings


To connect to a data source, you need to configure an input binding. An input binding makes it possible to write minimal code to create a message. You don't need to write code for tasks, such as opening a storage connection; the Azure Functions runtime and binding take care of those tasks for you.

Input binding types

Azure chain functions can have multiple types of input. However, not all types support both input and output. You'll use an input function whenever you want to ingest data of that type. Here, we'll look at the input function types that support input bindings and when to use them.

  • Azure Blob Storage - Blob Storage bindings allow you to read from a blob.

  • Azure Cosmos DB - Azure Cosmos DB input bindings use the SQL API to retrieve one or more Azure Cosmos DB documents, and pass them to the input parameter of the function. The document ID, or query parameters, can be determined based on the trigger that invokes the function.

  • Mobile Apps - A Mobile Apps input binding loads a record from a mobile table endpoint and passes it into your function.

  • Azure Table storage - You can read data and work with Azure Table storage.

A full listing of supported bindings is available here

To create a binding as an input, you must define direction as in. The parameters for each type of binding may vary.

What is a binding expression?

A binding expression is specialized text in function.json, function parameters, or code that is evaluated when the function is invoked, to yield a value. For example, if you have a Service Bus Queue binding, you could use a binding expression to obtain the name of the queue from App Settings.

Types of binding expressions

There are several types of binding expressions, including:

  • App settings
  • Trigger filename
  • Trigger metadata
  • JSON payloads
  • New GUID
  • Current date and time

Most binding expressions are identified by being wrapped in curly braces. However, app setting binding expressions are wrapped in percent signs, rather than curly braces. For example, if the blob output binding path is %Environment%/newblob.txt, and the Environment app setting value is Development, a blob is created in the Development container.


Input bindings allow you to connect your function to a data source. You can connect to several types of data sources, and the parameters for each vary. To resolve values from input sources, use binding expressions in the function.json file, in function parameters, or in code.