 Hi, everyone. Welcome to the session at Connect on Azure Functions. My name is Ishaavri and today I'll be speaking to you about what Azure Functions is, how you can build your very first serverless function, and all the capabilities we provide to help you develop, publish, and monitor using Visual Studio Code. So let's get right to it. I do want to talk about what Azure Functions is. At its core, Azure Functions is serverless compute, that is, the ability to run custom code on demand and at scale in the Cloud. Whether it's written in C-sharp, Node, Java, or even Python, you give your code to Azure and we'll manage and run it for you, all dynamically based on events. To help you accomplish this, we provide various options for integrated development using tools such as Visual Studio, VS Code, Maven, Eclipse, or even just the cross-platform CLI. Today, we'll be looking at one such example for functions using VS Code. So let's go ahead and get started. Let's take a look at how anyone can get a function up and running in just a few minutes. For this, I'll use VS Code and the Azure Functions extension. So here I am in VS Code on my Mac, and I've already got the Azure Functions extension installed. Since I'm logged into Azure, I can see a list of subscriptions that I have access to. The Functions extension enables us to create new function projects, add new functions to that project, and even publish to Azure directly from within VS Code just at the click of a button. So let's go ahead and create our very first function. Once I pick a directory, we'll be presented with a menu of languages to use to initiate the project. For the purpose of this demo, let's go ahead and pick JavaScript. So what this did for us is initialize the functions project with a couple of files namely the local and the hosting configuration. Now we can go back to the Azure Functions extension and add a new function to this project. Again, we'll be presented with a menu of templates that we'd like to use to create the function. Interestingly, these templates directly correspond to the triggers available to us to execute the function. Let's go ahead and pick HTTP trigger provided with a friendly name and secure the HTTP endpoint with a function or an API key. So what does this do for us? Going back to our directory, it created a new sub-directory with the name we gave for the function with a node script and a function JSON configuration file. Looking at the node function, it consumes an HTTP request input and parses the contents of that input to find the name property in the body or the query string. It then uses the name property to construct an HTTP response which is returned back from the function. You can see the function JSON configuration describes the HTTP request input and the HTTP response output binding right here within function JSON. Now that we have our function, we can go two ways. Either we can go ahead and publish to Azure and trust our fate for it to work out of the box as it is, or we can use the open-source functions runtime to debug and test locally. The great thing is that we as code enables you to do all of this simply on the click of an F5. In fact, if you've got the node extension installed, you can even go ahead and set breakpoints in your code to debug and look at the call stack. Now, let's take a look at a slightly different function here. I've got a node function that triggers off a message or an event received on an IoT Hub. It then grabs the contents of this message and outputs it to the console. Now that I have my function, I can go ahead and F5 into it to test locally, and I can also go ahead and deploy this function to Azure. So let's take a look at how to publish the app. I can go ahead and pick a subscription and create a new app with a unique name. Let's call it Connect Demo. Then we can pick a resource group for this function app as well as a storage account to contain the contents of the app and the files. Now that we have our function app provisioned, we have one more step to configure any settings or secrets for the function app. Picking the subscription again and here's our app. Now, these settings while running locally are saved as either environment variables or properties in the local settings file. For a function to connect to IoT Hub, we'd configured the IoT Hub connection string that we can now go ahead and provision as an app setting on the function app. Once we have that, we're pretty much ready to go ahead and test our application running in Azure. For this, we'll connect to the streaming logs for our function app. Again, picking the function app and we can go ahead and start seeing the application insights logging. To simulate these events on the IoT Hub, I've got an app that will register multiple devices and start sending notifications to the IoT Hub. We should notice shortly that our function started to pick these up and output those events or messages back to the console. That's it. We developed an end-to-end serverless application, tested it locally, published it to Azure, and even looked at the monitoring logs right here from within a local instance of VS Code. With Azure Functions, we strive to keep improving developer experiences and provide support for the languages and tools that you're most familiar with, so you and your team can be more productive. To find more information and get started, please find the link on the screen. We look forward to helping you with your serverless mission. Thank you.