[![Deploy to Azure](http://azuredeploy.net/deploybutton.png)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FAzure%2Fiotc-cloud-to-cloud-integration%2Fmaster%2Fazuredeploy.json%3Ftoken%3DAnbfx1q6doAPwo3MSI8vqxTuJhM5cc-eks5byTiGwA%253D%253D)
The template in this repository will provision the following Azure resources:
- Key Vault, needed to store your IoT Central key
- Storage Account
- App Service Plan (S1 tier)
- Function App
The estimated total cost of these resources is **$75/month**. The majority of this value ($73) comes
from the App Service Plan being provisioned. We chose this plan because it offers dedicated compute
resources, which leads to faster server response times, a critical factor for many cloud IoT platforms
that allow streaming of device data through webhooks. With this setup, the maximum observed performance
of the Azure Function in this repository was around **1,500 device messages per minute**.
In addition to removing the provisioned resources when not in use, the cost of the solution can be significantly reduced
by replacing the App Service Plan by a Consumption Plan. While this option does not offer dedicated compute
resources, it may be enough for testing purposes or applications that tolerate higher server response times
(more information on Azure Function hosting options can be found [here](https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale)).
To use a Consumption Plan instead of an App Service Plan, edit the template before deploying, making
the appropriate changes (a sample template for a Consumption Plan can be found [here](https://github.com/Azure/azure-quickstart-templates/blob/abaf3c3eaa81cc5cba5ccc253b89a99569a42ac3/101-function-app-create-dynamic/azuredeploy.json#L49)).