#SharePointProblems | Koskila.net

Solutions are worthless unless shared! Antti K. Koskela's Personal Professional Blog

How to change Azure Functions from Consumption to Premium Elastic plan?

koskila
Reading Time 3 min
Word Count 525 words
Comments 10 comments
Rating 4.7 (16 votes)
View

Sometimes, you need to change the hosting model (or tier) for your resources on Azure. Maybe you've outgrown whatever you've originally selected, maybe you've got too much cash on your hands, or maybe you're like me, and you get absolutely and completely fed up with the cold starts for your Azure Function apps on the Consumption plan and want to use the Premium Elastic plan instead.

For these situations, you have the possibility of changing the hosting tier - the plan - you're on. Although, this has been implemented in a disturbingly non-intuitive way! You'll hit a roadblock if you try to upgrade/move to an App Service Plan from Consumption using the Azure Portal. Let's take a closer look...

Problem

What do I mean? Well, if you have selected the Consumption plan originally, and you'll then try to change the plan, you'll run into this annoying sight:

Azure Function app on a Consumption plan has both Scale up and Scale out disabled, and this error is shown for both of them.

Azure Function app on a Consumption plan has both Scale-Up and Scale-Out disabled, and this error is shown for both of them.

Surprise, surprise: There is no UI for this.

And not just that - the UI is just downright lying - you can definitely change the plan. :)

In short: no worries! As always, there's a workaround.

Solution

So, what is the workaround? Luckily - it's pretty simple! Let's get to it.

As a prerequisite, you'll need to have Azure CLI installed. You can get it from here:

https://docs.microsoft.com/en-us/cli/azure/install-azure-cli

Then, on with the actual installation steps!

Time needed: 25 minutes.

How to update the plan/tier your Azure Function app is on?

  1. Log in

    Well, we'll start by authenticating the CLI using the account you use for managing Azure resources.

    az login

  2. Select the subscription

    This subscription needs to be the one your Azure Function app is currently located in. Azure CLI requires this to be "locked" for running the commands.

    az account set --subscription "[your-subscription-id]"

  3. Create a new app service plan

    The command below creates a new app service plan for a function app. You set the name (and you'll need it later), select the resource group, set the plan SKU (in my example Elastic Premium 1), and you can set the scaling limits by setting the initial number of instances (min-instances) and the peak (max-burst) during high load.

    az functionapp plan create --name "[name-your-elasticpremiumplan]" --resource-group "[name-of-your-existing-resourcegroup]" --sku EP1 --min-instances 1 --max-burst 2

    Running this command might sometimes take a looong while. Don't be alarmed if it takes 10-15 minutes.

    If you're unsure about the SKU you should be using, see the options (somewhat up-to-date, thanks to Microsoft) here.

  4. Move your existing Function App to the newly created plan

    The command below moves your Function App to the newly created plan. Be very mindful of the names you're entering here - you need to copy-paste the plan name from before!

    az functionapp update --plan "[the-elasticpremiumplan-name-from-above]" -n "[azure-function-to-move]" --resource-group "[name-of-your-existing-resourcegroup]"

    This can be another slow command to execute.


And boom! You should be good.

Did it help you? Have another issue with your Azure Functions? Let me know in the comments -section below!

References

Comments

Interactive comments not implemented yet. Showing legacy comments migrated from WordPress.
2021-10-26 19:03:01)
Hello this does not seems to support linux to linux migration. I am getting error
This feature currently supports windows to windows plan migrations. For other migrations, please redeploy.
Please can you help on this
Antti K. Koskela
2021-11-01 16:31:59
Hi Mohd, Can't recall running into this - I guess the error is thrown when you run az functionapp update? You could always try creating a new resource group and explicitly setting --is-linux true when running az functionapp plan create, but I can't guarantee it works 😅
Antony
2022-01-17 16:33:14)
Do we not need to delete the old app service plan? After we move the Azure Function to the newly created plan, will the old consumption plan not be orphaned?
Antti K. Koskela
2022-01-22 22:09:52
Hi Anthony! Thanks for a good question - the plan for the Consumption plan is created automatically, I wonder if it's also removed automatically when orphaned 🤔 Have to admit I haven't verified it, but if I find the time I'll give it a go! Please do let me know if you end up giving it a go!
Antony
2022-01-17 16:57:21)
Do you not need to delete the old consumption plans after creating and associating the new one?
Antti K. Koskela
2022-02-13 00:04:01
Hi Antony - that's a valid question! To be fair, never even gave it a thought (yes, apparently I'm that Dev that all of the Ops hate!) but I'd imagine it's safe to just delete the plan if it's left hanging around.
Daniel Gomez
2022-01-31 18:22:22)
I need to move both the app and the slot, but I have not been able to move the slot with any command. How to do it?
Antti K. Koskela
2022-02-13 00:02:13
Hi Daniel and thanks for your comment! Haven't actually needed to do that and based on quick googling, it might not be supported: https://github.com/Azure/azure-cli/issues/15800 Or did you find a way around it?
Whitewater Magpie Ltd.
© 2025
Static Site Generation timestamp: 2025-08-05T20:02:22Z