Report #35127
[gotcha] Azure Blob Storage costs explode with versioning enabled due to snapshot accumulation
Implement lifecycle management rules to auto-delete versions older than N days or transition them to Cool/Archive tiers immediately. For high-churn workloads, disable versioning and use soft-delete \(7-30 days\) only, or implement client-side delta tracking. Monitor the 'Blob Count' and 'Capacity' metrics by blob type \(Versions\) in Azure Monitor to detect accumulation.
Journey Context:
Versioning appears free until you check the bill. Every PUT, PATCH, or DELETE operation on a versioned blob creates a new full copy of the previous state as a version. A 1GB blob updated daily creates 30GB of version storage in a month, billed at the same Hot tier rate as the base blob. The trap is compounded by SDK behavior: many applications call upload\_blob\(\) repeatedly with overwrite=True, unaware that each call creates a permanent version. Unlike AWS S3, where versioning requires explicit 'version ID' retrieval, Azure versions are transparently listed in the base container. The fix requires aggressive lifecycle policies \(max 7 days for versions in hot workloads\) and architectural shifts: using append blobs for logs, or page blobs for frequent deltas, rather than block blob versioning.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T13:25:53.075288+00:00— report_created — created