Share via

Understanding Azure Function App Consumption Plan and Blob Storage Costs (GPv1 vs GPv2)

DJ 70 Reputation points
2026-03-10T20:08:47.4333333+00:00

Hi all,

I would appreciate some advice on how to structure my Azure Function App on a Consumption Plan correctly.

At the moment, I am using a Function App that is triggered whenever a message is received from Azure IoT Hub. The function analyses the incoming packet and performs the required operations based on the contents of that message.

My Function App is running on the Consumption Plan, and I believe it is currently using a General-Purpose v1 (GPv1) storage account for its underlying storage.

Recently, I received a notification suggesting that the storage account should be upgraded from General-Purpose v1 to General-Purpose v2 (GPv2). However, my concern is related to cost. From what I understand, GPv2 pricing can be higher depending on the type and number of storage transactions, and for this particular workload I need to keep costs as low as possible.

My understanding is that even though the Function App performs its execution internally, it still makes underlying API calls to Blob Storage for things such as logs, triggers, and state management. Because of this, I am wondering whether the Function App itself is generating a significant number of storage transactions behind the scenes.

From what I can see, the Blob Storage account is being used for several operations, which made me question whether the Function App relies more heavily on storage than I originally assumed.

So my questions are:

Am I correct in understanding that Azure Functions internally invoke Blob Storage APIs during execution?

Is the storage account mainly used for function state, logs, and trigger management, or is there something else happening behind the scenes?

  • Is upgrading to GPv2 unavoidable for Azure Function Apps, and how much impact does it typically have on costs? Is there a way to see the values for Write, Read, and other storage operations so that I can estimate what to expect in terms of charges? My storage account currently shows 96,328 transactions, so I assume this figure represents the combined total of read, write, and other operations. Is that correct?

I suspect I may have misunderstood the relationship between Azure Functions and the underlying storage account, as it appears to be doing more than just storing files.

Any guidance or clarification would be greatly appreciated.

User's image

Azure Functions
Azure Functions

An Azure service that provides an event-driven serverless compute platform.

0 comments No comments

1 answer

Sort by: Most helpful
  1. Pravallika KV 13,135 Reputation points Microsoft External Staff Moderator
    2026-03-10T20:21:46.29+00:00

    Hi @DJ,

    Thanks for reaching out to Microsoft Q&A.

    1. Do Azure Functions call Blob Storage APIs?

    Yes. Even though your function code only fires on an IoT Hub event, the Functions runtime uses Blob (and Queue) Storage for several things under the covers:

    • Trigger/lease checkpointing (e.g. Event Hub or Blob triggers use blob leases and metadata)
    • Host metadata (function.json, extension bundles)
    • Logging (when you use file-based logs or the built-in file system logger)
    • Durable state (if you’re using Durable Functions)
    1. What kinds of operations get generated?

    You'll see a mix of ListBlob, GetBlobProperties, SetBlobMetadata, LeaseAcquire/Release, Write (for logs or state), etc. Your “96,328 transactions” is indeed the total of Reads + Writes + Other operations over the period you looked at.

    1. GPv1 vs GPv2 and cost impact

    You can keep using a GPv1 account today, but GPv2 is the current recommended platform. GPv2 gives you access to all the latest features (event-driven blob triggers, hierarchical namespace, advanced lifecycle policies, Azure AD auth hooks, etc.).

    • Pricing is per-transaction, so the difference in cost depends entirely on your transaction count and the tier (Hot/Cool). GPv1 didn’t charge for write operations in blob accounts, but GPv2 does, so if you do a lot of small writes (logs or leases) you will see some incremental cost.
    1. How to see your read/write/other volumes

    In the Azure portal, go to your Storage Account =>Metrics =>add the “Transactions by API name” and “Transactions by storage type” charts. That breaks down exactly which REST calls (GetBlobProperties, ListBlobs, PutBlockList, etc.) are happening and their counts.

    • If you need a CSV you can also turn on Storage Analytics (classic) or Diagnostics settings to send metrics to a Log Analytics workspace and then query it.
    1. Cost estimation tips
    • Use the Azure Pricing Calculator (Storage Accounts tile) to plug in your transaction count (per 10,000 operations) and your GB/month of data storage.
    • In the portal under Cost Management + Billing =>Cost analysis you can filter on your storage account resource to see historical spend by meter (Data Storage, Transactions, Data Transfer).

    References:

    Hope this helps!


    If the resolution was helpful, kindly take a moment to click on User's imageand click on Yes for was this answer helpful. And, if you have any further query do let us know.


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.