Introduction to Input Bindings
Start course

This course is an introduction to Azure Functions. It explains how Azure Functions are little bits of your application logic that live in the cloud. The course includes how to activate—or what we call trigger—your Azure Functions, how to pass data to and from them, and also how to tie different Azure Functions together using an extension of Azure Functions called Durable Functions. 

This course provides hands-on demonstrations of how to create different kinds of Azure Functions, how to create bindings to other Azure Services from those functions, and how to create a Durable Function to manage state from one Azure Function to the next.

If you have any feedback related to this course, please contact us at

Learning Objectives

  • Create Azure Functions with different types of Triggers
  • Implement input and output bindings to different types of data resources
  • Create Durable Functions to orchestrate related Azure Functions
  • Log the results with Dependency Injection

Intended Audience

Software developers who want to learn how to implement Azure Functions as a part of their cloud software design.


To get the most out of this course, you should have some experience will the following:

  • Event-driven programming
  • Servers and APIs
  • Coding with C# and JSON
  • Project creation in Visual Studio


The GitHub repository for this course can be found here.


For input bindings, you'll see in a moment that when using .NET, you just define the data types using function parameters in the typical way. For example, as your argument for an inbound stream, such as from a BLOB, you would use type stream from the standard System.IO namespace, while for the inbound text coming from a queue trigger you would use a string argument. You can also use any custom type of your choice as an argument to de-serialize input to that object type.

For dynamically typed languages, such as JavaScript, you would need to set the dataType property in the function.json file as a part of that binding definition. For example, to read stream input from a BLOB, set the dataType to stream, like you see here.

Other options for dataType are byte array, binary, and string. So this time let's go back into our Azure Function inside Visual Studio so we can see an example of how we employ the use of an input binding as an argument.

About the Author

David Gaynes is a software and cloud architect for .NET, NodeJS, Azure and AWS. He has been developing .NET and Cloud software for more than 20 years, with some of that time spent at Microsoft, and has authored both technical and non-technical teaching materials as books and in other formats. He enjoys physics, meditation, and experiencing the natural wonders of Hawaii.