Azure waste

Idle Functions Premium plans

Always-on capacity for code that rarely runs
The agent reports this
Why it happens

The premium option keeps a machine warm so your code never has a slow first start. If it runs a few times a day, that readiness is most of the bill.

Elastic Premium buys a warm instance so functions never cold start. A function that runs a handful of times a day is paying for readiness it does not need.

Paste this into Resource Graph Explorer in the Azure portal.

resources
| where type =~ 'microsoft.web/serverfarms'
// Scope below matches CloudFinOpsPro policy DEFAULTS: exclusions.protectTag, environment.tagKeys,
// environment.allowedTagValues, and allowUntagged false so an untagged resource counts as production.
// If your policy.yaml differs, edit the three lines below or this will disagree with your own agent.
| where tolower(tostring(coalesce(tags['cfop:protect'], ''))) !in ('true', 'yes', '1')
| extend cfopEnv = tolower(trim(' ', tostring(coalesce(tags['Environment'], tags['environment'], tags['env'], ''))))
| where cfopEnv in ('dev', 'development', 'test', 'qa', 'sandbox', 'nonprod', 'non-prod', 'staging')
| where sku.tier =~ 'ElasticPremium'
| project name, resourceGroup, location,
          sku = tostring(sku.name),
          sites = toint(properties.numberOfSites)

Compare against FunctionExecutionCount in Azure Monitor. Low execution counts usually cost less on the Consumption plan.

Applies to microsoft.web/serverfarms
What the agent does about it

An Elastic Premium plan whose function apps execute rarely enough that Consumption would cost far less.

It will not fix this one

It reports this and takes no action. A check only earns the right to change something once the action behind it can re-read live state before it fires and knows the way back.