How to troubleshoot Azure Resource Manager (ARM) template validation errors

Deploying Azure Resource Manager (ARM) templates with the Azure PowerShell command New-AzureRmResourceGroupDeployment can fail for a variety of reasons. One of the more confusing situations can occur when handling template validation errors (Code=InvalidTemplateDeployment). This is because sometimes additional context is missing from the Exception and you have to lookup more information into order to troubleshoot the issue. In this post we will take a closer look at this particular error and how to resolve it.

Continue reading

Book Review: Docker on Windows: From 101 to Production

Docker is a powerful container platform originally designed for Linux, but quickly became popular enough to receive native support on Windows. I first read Docker training material that took more of a Linux-first approach and loved what I saw. However my day-to-day work is still typically Microsoft/Azure stack so I was looking for a good book that takes on the nuances of working with Docker in a Windows or Azure environment.

I found Docker on Windows: From 101 to Production with Docker on Windows by Elton Stoneman to be really helpful for that purpose. This post is my quick review of the 1st edition.

Continue reading

Book Review: Cloud Architecture Patterns: Using Microsoft Azure

Building scalable systems for the cloud involves leveraging unique design patterns specific to cloud services. In Bill Wilder’s book, Cloud Architecture Patterns: Using Microsoft Azure, he walks through these patterns in detail with practical examples for Microsoft Azure. Although this book is now several years old, most of the patterns still hold up today.

Continue reading

PowerShell module starter kit – updated for 2019

A couple years ago I wrote a PowerShell module starter kit (here). The goal was to provide an example for organizing a module using best practices and provide a live repository you could clone and play around with.

I’ve taken that starter kit module and updated it for 2019. Incorporating some new best practices and new usage patterns that I find helpful. Head over to the GitHub link to check it out!
Continue reading

SQL Server database publishing with the ‘generate smart defaults’ option

If you’ve ever run a database package (.dacpac) publish against a SQL Server or Azure SQL database, chances are good that you have run into the following error when changing the schema for a table that contains data:

SQL72014: .Net SqlClient Data Provider: Msg 50000, Level 16, State 127, Line 6 Rows were detected. 
The schema update is terminating because data loss might occur.
Continue reading

Working with arrays of objects and multiple resource instances in Azure ARM templates

The ‘copy’ property is an Azure ARM template feature that allows you to iterate (for each) loop over a resource to create multiple copies of it. You can combine it with an ‘array of objects’ custom parameter to easily duplicate resources with your supplied values. However there are a couple of snags you might run into so I figured it’s worth a write up with an example.

Continue reading

How to troubleshoot New-AzureRmResourceGroupDeployment ‘parameter cannot be found’ errors

Scenario: You have an Azure RM deployment template JSON file. You initiate a deployment with the New-AzureRmResourceGroupDeployment PowerShell cmdlet and pass in some custom parameters. You immediately hit this all too common error: “New-AzureRmResourceGroupDeployment : A parameter cannot be found that matches parameter name ‘<myParameter>’“.

Continue reading