Introduction
This article series is aimed at teaching you how to use Cosmos DB trigger and HttpTrigger in an Azure function to create a serverless app that can broadcast the data to clients using SignalR. The client can be a desktop/web/mobile client. For this article, I will be using a simple desktop client created using WPF with Material Design. To follow along please make sure you have an Azure account. If you don't have it already you can create one for free by visiting Cloud Computing Services | Microsoft Azure.
This article is part 3 of the series and is aimed at teaching the readers how to publish a new Azure function (using VS 2019) to Azure Cloud. To follow along please make sure to refer to Part 1 and Part 2 of this article series to learn how to create Cosmos DB and Azure functions that we will be publishing as a part of this tutorial.
Step 1 - Publish the Azure Function on Azure Cloud
Open Visual Studio and open your Azure Functions project. Right-click on the project name on Solution Explorer and click Publish
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
In the Publish window that opens choose target as Azure and click the Next button
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
In the Specific Target, window choose Azure Function App (Windows) and click Next
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
In the Functions Instance window make sure your Subscription name is populated and click the small green plus (+) button
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Clicking the plus button will open a new popup to create new functions app. Give a proper meaningful name (you can leave it to default name if you want to), make sure your subscription name is correct and choose your resource group as the same resource group in which your Azure Cosmos DB is hosted (please refer to Part 1 of this article to get the name of your resource group if you don't remember it). Choose a location near you or you can leave it to the default location. Click the Create button once you are satisfied with all the settings.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Once the function app is created choose it in the Function Apps window and click the Finish button
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
In the window that opens next click on Publish button to publish your app on Cloud
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
If the publish is successful you should be able to see a success message on the screen
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Scroll down in the publish window and click on the Site link of your function to make sure its running fine
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Step 2 - Add Application Setting to Azure function
Navigate to Azure Portal and click on your Resource group. You should be able to see the Azure function there. If you are having trouble understanding this step please refer to Part 1 of this article series.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Click on the azure function and scroll down to Configuration option on the left side menu
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Click on Configuration and we have to add 3 application setting keys here. Click on "+ New Application Setting" and add the keys CosmosDbConnectionString, DatabaseAccountKey and DatabaseEndpoint. To get the value for the keys please visit Azure Cosmos DB and look for Keys in the left menu. If you remember from Part 2 of this article we added some keys and values in local.settings.json file. As the name indicates this file is local and wont be a part of the Publish process. To add those keys and values to your deployed Azure function we have to add them using Application Setting. Once you are done adding, click on Save button.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Step 3 - Test your Azure function
Click on Functions on the left menu of your Function app on the Azure portal.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
This will open the functions page for you where you can see all the functions inside your project.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Click on the Http Trigger function and then Code+Test item on the left menu.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Click on Test/Run on the top menu
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
A new slider window will open change the request type to Get and click Run
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
If everything works fine, you should be able to see the results on the output window
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
You can also test on Postman. For that you will need the Url for your function. You can easily get it by clicking Get Function URL on the top menu item
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Once you get the URL copy it and paste it in Postman and click Send.
![Live Charts Using Azure Cosmos DB, Azure Functions, SignalR And WPF]()
Summary
At the end of this tutorial, you should be able to publish your Azure function to Azure Cloud, add Application Settings keys, and test your function using Azure Portal built-in Test/Run feature and Postman. In the next article, we will create an Azure SignalR to send live updates to the clients.
Thanks for reading and stay tuned for the next article.
Links for other parts: Part 1, Part 2, Part 4, Part 5, Part 6