A blog about software development, DevOps, and delivering value.
The simplicity of Azure Functions makes it tempting to avoid following good design practices like dependency injection. The default project template doesn’t even support it. This may be fine for learning and quick experiments but would be a mistake for production code. Simplicity is not an excuse for bad engineering. Luckily, setting up dependency injection […]
I’m working on a new project that will use managed identities to access an SQL database from a function app. I chose to use a user-assigned identity to simplify our deployment scenario. We use deployment slots for zero downtime deployments and I want to assign a single identity to control database access across those slots. […]
The new Azure.Identity library hit GA this month. I’ve been wanting to modify a lot of our services to use managed identities and this library, through the use of DefaultAzureIdentity, finally streamlines the experience between local development and running in Azure. So far only the most common Azure SDK packages have first-class support for it, […]
Record paging is a really common requirement for APIs that expose a lot of data. Paging in Azure Cosmos DB SQL API is done using continuation tokens. This post demonstrates how to use them to implement a paged API. When querying Cosmos DB through the REST API you can specify a maximum count to return in […]
One of the first Azure-specific projects I worked on was a script to create all of the resources needed to run our application. It used the Azure Powershell module to build those resources and then deploy the application. That script saved a lot of time but it was error-prone and a headache to modify. Just […]