Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us at FabCon Vienna from September 15-18, 2025, for the ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM. Get registered
This article is authored by Chinmaya Patra Architect at Microsoft
Introduction
I’ve been there too many times—resuming my Azure Fabric capacity for some quick testing or development work, only to forget to pause it afterward. The next thing I know, my Azure subscription bill is higher than expected, all because the capacity kept running unnecessarily. If you’re in a similar boat, this blog post is for you. I’ll walk you through how I set up an automatic solution using Azure Logic Apps and alerts to pause the Fabric capacity after a set time, saving both costs and headaches.
The Problem : The Costly Oversight We All Make
We use a learning Fabric capacity to keep our costs low, especially since we’re on a Pay-As-You-Go (PAYG) plan. The idea is to resume it when we need it and pause it when we’re done. But here’s the catch: I often forget to pause it after finishing my work. This means the capacity keeps running, racking up charges that could easily be avoided. It’s a common issue, and I’m sure I’m not the only one who’s faced it.
The Solution : Event-Driven Automation with Azure Logic Apps
The problem of forgotten Fabric capacity pauses can be effectively solved through automation. The goal is to automatically turn off the capacity after a desired period of work, for instance, two hours from the moment it is resumed. This provides flexibility, allowing the capacity to run only for the necessary duration after it is manually or programmatically activated [User Query].
Azure Logic Apps serve as a powerful and accessible solution for this automation. They provide a low-code infrastructure, making them ideal for building and orchestrating complex workflows without extensive coding. Logic Apps excel at integrating various systems and services, automating multi-step processes, and eliminating the need for manual intervention. While Azure Functions are well-suited for specific compute tasks or lightweight API implementations, Logic Apps, with their rich set of pre-built connectors and visual designer, are generally a more appropriate choice for orchestrating event-driven workflows like this.
The automated flow for pausing Fabric capacity involves a series of interconnected steps, shifting from manual or scheduled triggers to a truly event-driven approach. This is fundamental to ensuring the capacity pauses precisely after the intended work duration, starting from the moment it is resumed. The process unfolds as follows:
This event-driven architecture is critical for precise cost control. The user's initial thought of a "manual trigger" for the Logic App would not fully address the problem of forgetting to pause after resuming. However, Azure Monitor Activity Log alerts provide the capability to detect specific resource operations, including the "Fabric Capacities - Resume" event. This enables the automation to be initiated precisely when the capacity is resumed, rather than relying on a fixed schedule or a separate manual action. This precision is paramount for optimizing costs, as it ties the pause logic directly to the actual start of usage, maximizing the capacity's utility while minimizing idle time. This approach transforms a reactive manual process into a proactive, automated, and highly efficient cost-saving mechanism.
Prerequisites
Before we jump in, here’s what you’ll need:
Step-by-Step Guide
Here’s how I set it up, step by step. Follow along, and you’ll have this running in no time.
Step 1: Create a Logic App
First, I needed a Logic App that could pause the Fabric capacity after a delay.
Once it’s created, it’s time to build the workflow.
Method: POST
URI: https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Fabric/capacities/<capacityName>/suspend?api-version=2023-11-01
Replace <subscriptionId>, <resourceGroupName>, and <capacityName> with your specific values.
Headers:
{ "Content-Type": "application/json" }
Next, I set up authentication using a Managed Identity.
Save the Logic App—we’ll connect it to an alert next.
Step 2: Create an Action Group
To trigger the Logic App automatically, I created an Action Group.
Step 3: Set Up an Alert Rule
Now, I needed an alert to fire whenever the capacity is resumed.
Step 4: Testing Your Automated Cost Saver: See It in Action!
Once all the components are configured, it is crucial to test the end-to-end automation to ensure it functions as expected. This validation step helps confirm that your Fabric capacity will automatically pause after your specified work duration, leading to the desired cost savings.
A comprehensive testing section is vital for any technical tutorial. It not only validates the proposed solution but also empowers the reader to confidently implement and troubleshoot it independently. Providing specific steps for verification (checking Azure Activity Log, Logic App run history, and the Fabric capacity status) and anticipating common errors demonstrates a deep, empathetic understanding of the user's potential challenges. This proactive guidance, coupled with clear troubleshooting steps, reinforces the practical and helpful nature of the guide.
Conclusion
Forgetting to pause a Fabric capacity doesn’t have to mean extra costs anymore. With this setup, I’ve got peace of mind knowing my capacity will pause itself after my work is done. It’s a small effort upfront for a big payoff in savings. Give it a try, and let me know how it goes—or if you’ve got any tweaks to make it even better!
Reference links:
Pause and resume your capacity - Microsoft Fabric | Microsoft Learn
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.