Azure Service Bus with Bicep & Managed Identity in ASP.NET Core

Azure Service Bus can be used by clients with two different authentication mechanisms – either through Shared access policies with Manage, Send and Listen capabilities or through the Role-based access control (RBAC). The latter one is recommended as it also allows you to make use of Managed Identites instead of relying on connection strings. In this post we’ll take a look at how this can be set up using Bicep and connected to an ASP.NET Core app.

Continue reading Azure Service Bus with Bicep & Managed Identity in ASP.NET Core

Azure Email Communication Service with Subdomains

When using the Azure Communication Service to send emails you might want to have different sender subdomains for different stages, e.g. @example.com for production and @dev.example.com & @test.example.com for Dev and QA. Unfortunately the docs are quite unclear on how to set this up, especially when it comes to the DKIM configuration.

Continue reading Azure Email Communication Service with Subdomains

Azure SignalR Service Serverless with Frontdoor & ASP.NET negotiation

Azure Frontdoor is a great way to secure your application against the outside world. One downside though is the lack of websocket support meaning no SignalR communication can get through. This is where the SignalR Service’s serverless option comes in handy. It allows us to establish a connection with the service directly which acts as a proxy between clients and servers.

Continue reading Azure SignalR Service Serverless with Frontdoor & ASP.NET negotiation

Azure DevOps: Show missing Subscriptions for Service Connections

When creating new Service Connections in Azure DevOps I often find myself looking for subscriptions that I’m an owner of but can’t select in the dropdown menu for some reason. Luckily there’s an easy fix – as long as you’re an owner of that tenant.

Continue reading Azure DevOps: Show missing Subscriptions for Service Connections

Azure SignalR Service Serverless with Managed Identity and Bicep

This post describes how an Azure SignalR Service can be deployed and used through Managed Identity using Bicep. This can be used to provide SignalR capabilities to Azure Functions or WebApps even when behind Azure Frontdoor (still no Websocket support) by leveraging the serverless option of the SignalR Service.

Continue reading Azure SignalR Service Serverless with Managed Identity and Bicep

if-elseif-else in Azure Bicep

Azure Bicep supports conditional deployments making it easy to create resources depending on external factors such as the current environment. And while the official docs show a simple example with just if-statements it’s also possible to have a bit more complex scenarios with multiple chained if-else-blocks.

Continue reading if-elseif-else in Azure Bicep

Switching between Azure Functions Consumption and Premium Plans with Bicep

Azure Functions offer great flexibility with the consumption plan, being able to scale out and handle huge amounts of events while not costing anything if there’s no traffic. But sometimes you need even better performance or eliminate potential cold start times. That’s when it makes sense to switch to a Premium Plan, which can be achieved using Azure Bicep.

Continue reading Switching between Azure Functions Consumption and Premium Plans with Bicep

Azure Web App + Storage Account with Managed Identity using Bicep

Today I needed to automate a standard scenario in Azure: connecting a Web App Service (in my case ASP.NET Core) to Azure BLOB and Table Storage. The auth is being done through Managed Identites, so the Web App’s identity needs to be granted read/write access to the Storage Account using RBAC. And this should all be automated in Bicep.

Continue reading Azure Web App + Storage Account with Managed Identity using Bicep

Fix: No incoming video in Microsoft Teams

I recently set up my new Surface Laptop Studio and had an issue where I could not see other participants on video in Microsoft Teams. Took me a bit to find the solution on Google so here’s what worked for me.

The trick was to go to the Microsoft Teams Settings in the main window (not in call) and check the “Disable GPU hardware acceleration (required restarting Teams)”.