During periods of peak transactions Cosmos may return a 429 Status Code – Too Many Requests, which means the collection has exceeded the provisioned throughput limit (RUs) and that you should retry the request after the server specified retry after duration. I want to setup alerting on both an Azure Function and the underlying Cosmos…
Adventures with Azure: Where is My Service Principal?
When working with the Azure Portal, sometimes the simple tasks can seem difficult to accomplish. In a recent project I needed to to wire up an Azure Key Vault task to retrieve secrets for a deployment in Azure DevOps. In order for the deployment to be able to retrieve the Azure Key Vault secrets the…
Adventures with Cosmos DB: High Ingestion Architecture
Let’s say you need you receive a large number of transactions from a third-party software system. The third party software system would like to send the requests via an API call. Each transaction needs to be validated (good data), enriched (add meta data) and transformed (convert to final format). My first attempt at solving this…
Adventures with Visual Studio: Properties Should Not Return Arrays
Early this morning, I installed the latest update of the Roslyn Code Analyzers in Visual Studio 2019 and was immediately welcomed with this warning: Properties should not return arrays. Something you need to know about me. I have this weird obsession of needing to remove all the “squigglies” that Visual Studio barks about from my…
Adventures with Azure Functions: Create an Alert from App Insights to Send an Email Notification
I’ve been working fiddling with a better way to receive a notification from an Azure Function that has encountered an exception. There are probably a few approaches to doing this, some that involve code others that do not. My first choice, is to try to take the no-code or low-code approach. So to get things…
Adventures with Azure AD B2C: Customizing Sign In and Sign Up UI
Lately I have been working a lot with Azure AD B2C. One of my most recent requests was to customize the Sign In and Sign Up pages. If my memory was serving me correctly, which is often not the case, I thought this was possible, just didn’t know what challenges or issues I was going…
Adventures with Azure Storage: Accessing a File with a Shared Access Signature
In this post we will look at how to read a document stored in Azure Storage, specifically in an Azure File Share, using .NET Core 2.2 and Shared Access Signature (SAS). This article assumes you have an Azure Account and an Azure Storage Account. Create an Azure File Share in your Azure Storage Account, which…
Adventures with Azure AD: Group Overage Claim … To Many Security Groups
In a previous article, Adventures with Azure AD: Group Overage Claim, I talked about how to handle, in an ASP.NET MVC Core application, the group overage claim that is sometimes returned in the claims for an authenticated user. I had a customer contact me saying that the code I provided them was not working as…
Adventures with Azure: Design Globally Resilient Apps with Azure App Service and Cosmos DB
Came across this article from Chris Pietschmann, an oldie but goodie. Check it out at https://buildazure.com/designing-globally-resilient-apps-with-azure-app-service-and-cosmos-db/.
Adventures with Azure Functions: Yes! Informative Error Messages are Here!
99 out of 100 times if your Azure Function is having issues running in Azure it will be because of configuration settings, be they missing or containing empty values – OK, I admit, may be a bit of an exaggeration, but it is often the contributor to the problem. Prior to my discovery today, you…