Ga naar inhoud

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.