Note: This article on Azure Functions is specific to ServiceBus360 Private Hosting Version.
What is Azure Functions?
Azure Functions is another evolution in Platform as a Service (PaaS) where a small piece of code or functions runs on the cloud as a Serverless service. The key advantage of using Azure Functions is that one can focus on the code to meet the business need without worrying about the whole application or infrastructure to run it. Azure Functions support a wide range of development languages such as C#, F#, Node.js, Java, or PHP.
Refer for more information on Azure Functions.
What are the current challenges in managing Azure Functions?
Consider a real-time scenario wherein the Function App has been created with the following configuration:
- App Service Plan: Classic App Service Plan
- Application Settings: Always on turned ‘Off’
In this case, Azure Function App might get stopped due to one of the following reasons:
- If its idle for at least 5 minutes
- If the app service plan pricing limit has reached
- Anyone manually stops
When the Azure Function app is stopped, the functions under this app will not get triggered. When this Azure Function constitutes a critical line of business, its stopped condition might break a critical workflow. It would be convenient to have a system to monitor the Azure Function App’s state at regular interval of time and notify the user.
How ServiceBus360 solves this problem?
We understand that Azure Functions would be an integral part of many real-time integration scenarios. It would be of great value to associate, manage and monitor Azure Functions in ServiceBus360 Composite Applications. ServiceBus360 comes with following capabilities to manage Azure Function Apps associated using the Service Principal.
- Read and list existing Azure Function apps and its Functions
- Update, Azure Function App state (start, stop and restart a Function App)
- Delete, single or multiple Azure Function App(s)
When an Azure Function App is included in a Composite Application, the following additional capabilities come handy:
- View Invocation Logs of the functions within the Azure Function Apps
- Perform state-based monitoring on your Function Apps.
Monitoring Azure Function Apps
ServiceBus360 facilitates monitoring Azure Function Apps against the expected state. An Azure Function App can have the following states:
- Running– any Function under the Azure Function App can be triggered to start
- Stopped– any Function under the Azure Function App cannot be instantiated by a trigger
In most cases, the requirement would be to ensure the Azure Function App is running, but there might also be scenarios that require to ensure the Azure Function App is Stopped, to save the cost spent. ServiceBus360 allows you to monitor for both states.
Servicebus360 comes with two types of monitors, the choice can be made based on the requirement
- Status Monitor – Notifies on the healthiness of the associated resource based on the expected state configures
- Threshold Monitor – Notify on threshold violation
Refer to know more on Servicebus360 Monitors.
Configuring a Status monitor for Azure Function App associated with a Composite Application:
The below gif image will guide you through in creating a Status Monitor to watch the Azure Function App current state against the expected state.