To get a better understanding of the Cosmos DB Change, Event Grid, retry and fail over logic, I decided to build a system that would respond to changes in a Cosmos DB, send events to an Azure Event Grid, which in turn would forward the events to subscribers. I broke this article in to three…
Author: mattruma
Adventures with Azure DevOps: Create a Custom Dashboard Widget
I have been doing a lot with Azure DevOps lately, from building pipelines to dashboard. As I was building out a dashboard with various widget, I wondered if it was possible to create a custom dashboard widget! What do you know? You can! The widget are a combination of HTML, JavaScript and CSS. So I…
Adventures with Azure Storage: Read/Write Files to Blob Storage from Azure Functions
In my last article, Adventures with Azure Storage: Read/Write Files to Blob Storage from a .NET Core Web API, we looked at uploading and downloading files from Azure Blob Storage using a .NET Core Web API, in this article, we are going to perform the same task, but this time, we will use Azure Functions…
Adventures with Azure Storage: Read/Write Files to Blob Storage from a .NET Core Web API
I wanted to share some code I wrote recently for uploading a file to a .NET Core Web API and writing it to Blob Storage, as well as, downloading the file from the .NET Core Web API. As a bonus, we will use SAS tokens to read and write to Blob Storage. Let’s get started….
Adventures with Logic Apps: Working with @Outputs
In a previous article, Logic Apps Calling Logic Apps, I show how to have a parent Logic App call child Logic Apps. Now I want to have my child Logic App return a value that my parent Logic App can do something with. This article assumes you are familiar with Logic Apps. Getting started We…
Adventures with Logic Apps: Logic Apps Calling Logic Apps
There are several articles available on how Logic Apps can call other Logic Apps. Most of the examples I found were larger in scope or overly complicated, geared towards specific business cases. I wanted a simple example, but one that was robust enough that would lead to great learning experience. So let’s get started. Create…
Adventures with Cosmos: Alerting and 429 Status Codes
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…