Capacity auto-pause en hervatten¶
Het platform kan Fabric capacities volgens een schema pauzeren om buiten werktijd kosten te besparen. Dit runbook is voor het platform- team: hoe je het configureert, monitort en problemen oplost. Workload teams lezen Kostenoptimalisatie.
Hoe het werkt¶
In de gedeelde resource group staan twee Logic Apps in de consumption-tier, één voor pauzeren en een optionele voor hervatten.
Elk heeft een recurrence trigger, loopt over de capacities van de deployment en roept de Azure Resource Manager-actie suspend of
resume aan met zijn system-assigned managed identity.
flowchart LR
t1["Recurrence: pause time, pause days"] --> p["Logic App: pause"]
t2["Recurrence: resume time, resume days (optional)"] --> r["Logic App: resume"]
p -->|"POST suspend (managed identity)"| cap["Fabric capacities of the shared deployment"]
r -->|"POST resume (managed identity)"| cap
p --> law["Log Analytics (diagnostics)"]
r --> law
law --> alert["Alert rule on failed runs"]
alert --> ag["Action group (email)"]
ops["Operator groups (custom role)"] -->|"manual resume: portal or CLI"| cap
De Logic Apps gebruiken de custom rol Fabric Capacity Operator, met als scope de gedeelde resource group: lezen, schrijven, suspend
en resume van Microsoft.Fabric/capacities. Hij kan geen capacity verwijderen of data lezen. Zie Beslissingen.
Configuratie¶
Stel capacity_auto_pause in bij de variabelen van de shared tier. De functie staat standaard uit.
capacity_auto_pause = {
enabled = true
pause_time = "06:00 PM"
pause_days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
resume_enabled = false # manual resume only (recommended)
# resume_time = "07:00 AM"
# resume_days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
timezone = "W. Europe Standard Time"
alert_enabled = true
alert_notification_emails = ["<team mailbox>"]
}
# Groups that may pause and resume manually in the portal
capacity_operator_group_ids = ["<entra-group-object-id>"]
| Parameter | Standaard | Beschrijving |
|---|---|---|
enabled |
false |
Hoofdschakelaar |
pause_time |
06:00 PM |
Tijdstip om te pauzeren, formaat HH:MM AM/PM |
pause_days |
alle zeven dagen | Dagen om te pauzeren |
resume_enabled |
false |
De resume Logic App uitrollen |
resume_time |
08:00 AM |
Alleen gebruikt als resume_enabled = true |
resume_days |
maandag tot en met vrijdag | Alleen gebruikt als resume_enabled = true |
timezone |
W. Europe Standard Time |
Naam van de Windows-tijdzone voor beide schema's |
alert_enabled |
false |
Alertregel voor mislukte runs, met een action group |
alert_notification_emails |
geen | Extra ontvangers van de action group |
Het tijdformaat en de dagnamen worden gevalideerd. De resource provider Microsoft.Logic wordt door de deployment geregistreerd.
Een supportadres van het platform is altijd ontvanger
De action group bevat altijd een vast supportadres van het platform dat in de Terraform-code staat, naast
alert_notification_emails. In het managed model is dat de bedoelde supportmailbox. Als je het platform zelf
beheert, wijzig het dan in de code van je kopie of accepteer dat dat adres de alerts ontvangt.
Wat wordt gepauzeerd¶
De Logic Apps lopen over alle capacities die de gedeelde deployment aanmaakt. Ze raken nooit capacities aan die bij
een andere deployment horen. Om productie te laten doorlopen, houd je de productiecapacity in een gedeelde deployment waar
capacity_auto_pause.enabled op false staat, en de niet-productiecapacities in de deployment waar het true is. De
workspaces vinden hun capacity op naam, dus dit verandert niets aan de workload tier.
Handmatig hervatten¶
Leden van de groepen in capacity_operator_group_ids hebben de custom rol en kunnen op elk moment hervatten.
Portal: open de capacity in de gedeelde resource group, kies Resume op het overzicht en wacht tot de status Active is (meestal een tot twee minuten).
CLI:
az resource invoke-action --action resume \
--ids "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Fabric/capacities/<capacity-name>"
Monitoring¶
Als de functie is ingeschakeld, sturen diagnostic settings de WorkflowRuntime-logs en metrics van beide Logic Apps naar de Log
Analytics workspace van de spoke.
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.LOGIC"
| where resource_workflowName_s has_any ("cappause", "capresume")
| project TimeGenerated, resource_workflowName_s, status_s, error_message_s
| order by TimeGenerated desc
| take 50
Voeg | where status_s == "Failed" toe om alleen mislukte runs te zien.
Met alert_enabled = true gaat een scheduled query rule af als een pause- of resume-run mislukt. Hij evalueert elke 5 minuten over een
venster van 5 minuten met severity 2 (Warning) en notificeert de action group.
Problemen oplossen¶
| Symptoom | Controleer |
|---|---|
| Capacity is niet gepauzeerd | Open de run history van de Logic App. Controleer of zijn managed identity de rol Fabric Capacity Operator heeft op de resource group. Een capacity pauzeren die al gepauzeerd is, doet niets en wordt als geslaagd gelogd. |
| Capacity is niet hervat | Met resume_enabled = false is dit verwacht. Controleer anders de run history van de resume Logic App, en of de capacity niet in de status Deleting of Provisioning staat. |
| Alert afgegaan, capacity is in orde | De fout kan van voorbijgaande aard zijn geweest (bijvoorbeeld throttling door Resource Manager). Logic Apps proberen tijdelijke fouten opnieuw. Als de eindstatus klopt, bevestig dan de alert. |
| Permission errors in runs | De roltoewijzing is verwijderd, of de Logic App is opnieuw aangemaakt en kreeg een nieuwe identiteit. Draai de deployment van de shared tier opnieuw: die maakt de toewijzing opnieuw aan. |