Eduard Keilholz

Hi, my name is Eduard Keilholz. I'm a Microsoft developer working at 4DotNet in The Netherlands. I like to speak at conferences about all and nothing, mostly Azure (or other cloud) related topics.
LinkedIn | Twitter | Mastodon | Bsky

I received the Microsoft MVP Award for Azure

Eduard Keilholz
HexMaster's Blog
Some thoughts about software development, cloud, azure, ASP.NET Core and maybe a little bit more...

Centralizing your Bicep templates in ACR

Even the most skilled developer sometimes repeats him/herself although we always try to prevent that. When you're writing Infrastructure as Code for an organization, you often find that some resources are deployed multiple times for different projects. Assume you're writing a Microservices solution using C# and host these services as Web Apps in Microsoft Azure. Probably 80 to 90% of the cloud resources are similar if not exactly the same for every service. When using Bicep for your IaC, you can write your infrastructure in modules. In this post, I show how to share Bicep modules allowing you to consume shared chunks of Infrastructure as Code in a very controllable way.

Purging Deleted Services in Azure with Postman

Not all services provisioned in the Azure Portal are actually deleted when you click 'delete' in the portal. Some services are soft-deleted and need to be purged to actually remove them (or recovered if you want to). This purge, however, is not always available in the Azure Portal. In this post, I will show you how to purge a service.

Azure Web Pubsub - Advanced Scenarios

In my previous post, I explained the basics of Azure Web PubSub. Unfortunately this story exposed some downsides and workflows that are just not that convenient. In this post, I will explain how you can use a different protocol to overcome these down-sides and make Web PubSub shine even more.

Big Up for Azure Web Pubsub

Real-time communication is a thing these days and almost every browser supports the latest and most fancy techniques to do so. Microsoft's solution for real-time communication has been SignalR for a very long time and for good reason. Now, SignalR has evolved into a new system called Web PubSub. In this article, I will show you how Web PubSub works and why you want to use it.

Writing an Arm Template in vs Code

Let’s imagine you work at a small company that works with large amounts of data, for example, images or video files. These files consume much storage, and you are running out of on-premises storage. As your company is already using some Azure capabilities, you are responsible for creating an Azure Storage Account where you and your colleagues can store more files in the future. To prepare for future changes and leverage the benefits of IaC, you choose to complete this task using an ARM template, which you want to write in VS Code.

Free Certificates for All

After years of struggling and hard maintenance work, certificates in Azure are now free and delivered as a managed service renewing your certificates automagically!

The existing keyword in Bicep

Project Bicep is GA for already quite some months and I had great fun writing some awesome templates. Now it's time to explore one of the hidden gems in Bicep. The keyword `existing` is only eight characters long, but its power is underestimated. In this post, I will explain what the existing keyword means and how you can use it to write even more awesome Bicep templates.

Comparing ARM templates with Bicep

The Azure Resource Manager is the only mechanism that allows you to provision Azure resources. In one way or another, you will always use the ARM. The Azure 'native' way to do Infrastructure as Code (IaC) is using ARM templates. But ARM templates are complicated and confusing, because of their syntax and size. Bicep (the largest muscle in your ARM) addresses those issues and allows you to write IaC more easy, and leaves you with way smaller files.

Windows Terminal Context Menu

Just a simple tweak in your registry allows you to change the context menu in Windows Explorer. In this blog post, I show you how to add a 'Windows Terminal here' context menu, opening a new Windows Terminal in the location you're currently at.

Azure Functions Jwt Validator Binding

It's #ServerlessSeptember so time for some awesome serverless stuff. This time, writing a custom binding. When you want to use a login provider other than Azure AD, you want to validate incoming requests and make sure the caller is authorized. Doing this each and every request with a copied and pasted piece of code is not very convenient. So today we'll be writing a custom Azure Functions binding, validating JWT Tokens for functions with an HTTP Trigger.