Terraform for the Azure ARM Developers

HashiCorp has launched 1.10 of the Terraform launching many more azure services than they used to for the Azure Provider. More details can be read here on their github page. Up until now, Azure ARM has been the choice of Azure Automation for DevOps practitioners. Since terraform can be used to automatically provision resources across major cloud providers, it is better to learn terraform sooner rather than later. In this blog post, we’ll see how the Terraform translates with respect to Azure ARM and understand its way of doing things.

Providers

Terraform allows to create, configure and manage almost all types of resources from on-premise physical machines to cloud based resources. Read More »

Azure RM Resource group deployment failed with error: Creating the deployment xx would exceed the quota of ‘800’.

Recently while deploying the source code using our CI/CD pipelines, we have got this error:

There were errors in your deployment. Error code: DeploymentQuotaExceeded.

2018-05-30T04:52:38.0042831Z ##[error]Creating the deployment ‘azuredeploy-20180430-045236-1abd’ would exceed the quota of ‘800’. The current deployment count is ‘800’, please delete some deployments before creating a new one. Please see https://aka.ms/arm-deploy for usage details.

2018-05-30T04:52:38.0051084Z ##[error]Task failed while creating or updating the template deployment.

One of the steps used by our release pipelines uses ARM template to make sure that resource being targeted has required azure configuration.
Read More »

Setup API definition and CORS for Azure Web Apps using Azure ARM template

Microsoft Azure App Service can not only be used to host web apps but they can also be used to host API services. Swagger is a framework for describing your API using a common language that everyone can understand. In order for the other softwares to parse your Swagger and notice your API as connector, it’s necessary that you enable CORS and set the APIDefinition properties of the web application you want to use:

api definition from azure portal

Read More »

Create Azure Web App in existing App Hosting Plan using Azure ARM template

When working with Azure services, you will combine services together. Many times, you would need to add an Azure Web App to an existing App Hosting Plan rather than creating a new app hosting plan every time you want to create an azure app service. This is a useful strategy to save cost if the load on the web site is not high. In this blog post we are going to discuss how we can leverage Azure ARM to deploy an app service to an existing app hosting plan.

In one of the previous posts, we discussed how to create an app hosting plan and an azure app service in one go using Azure ARM. The way we linked an hosting plan with app service is by mentioning app hosting plan id inside the property of the web app:

Read More »

Difference between Azure Web App, Azure API App and Azure Mobile App

If you have been working with you might have seen that there are different icons for Azure Web App, API app, mobile app and logic apps in Azure Portal and wondering what is the difference between them. Which should you choose so as to get best of the benefits for your code? As of the current state of Azure, all of these are part of big umbrella term called Azure App Service. Initially, there was some difference in features offered by these services individually, but as of now difference is only limited to naming, icons and tooling.

Features of one are available in the others. There is absolutely no differences beside icons and names on the Azure Portal. Read More »

Create azure web app with application insights using ARM template

Creating both the Azure web app and the Application Insights resources independently is no problem and should be relatively easy for anyone familiar with ARM. However, creating them fully integrated takes just a little bit more work. It’s kind of because you would want them both to be linked to each other.

If you use the Visual Studio wizard for creating an ARM template, you’ll notice that it  forces the AppInsights resource to be dependent on the web app being created. So first you need to create web app and then AppInsights resource. However, when AppInsights resource is created, it would also generate instrumentation key which you would want to put inside the application settings of the web app. So we would need to do it the other way around. In this blog post, we’ll learn how to achieve our objective and create both of them in one go.Read More »

Configure application settings for Azure Web App using Azure ARM template

In last post, we have discussed how to create azure web app along with the deployment slots using Azure ARM template. We are going to expand on the template created and learn how to configure application settings, web app properties like alwaysOn, remote debugging, etc and connection strings for azure web app in this blog post.

Define Web App Properties

Method 1: Use of Object variables
Variables are not only useful for declaring text that is used in multiple places and standardize them; they can be objects as well. Read More »

Deploy Azure Web App with slots using Azure ARM

Azure ARM uses simple JSON files for deploying infrastructure in Azure. While creating an azure web app or app service is not that tricky, usually you would require additional settings like deployment slots, application settings, connection strings, custom time zone etc. as well. It would be certainly nice if we can incorporate some of that as part of ARM templates itself so that we need not worry about it later. Since this topic is going to be lengthy, we’ll break into 3-4 smaller posts and also learn few azure resource manager tricks as well along the way. In this blog post, we’ll see how to create an Azure Web app and a slot associated with it using Azure ARM template.

Read More »