Connect Microsoft Azure
Cost Catch reads your Azure Cost Management exports from your own Blob storage container — FOCUS or native actual/amortized. Already run a Cost Management export to Blob? Use it as-is.
Before you start
You'll want these in place. The app generates every technical step for you — this is just who and what you need:
- A Cost Management export delivering to a Blob storage container. Already have one? Point Cost Catch at it. None yet? The wizard shows you how (Cost Management → Exports → Create export).
- Your Azure tenant ID, your billing account / EA enrollment ID (see Find your billing account ID below), and the storage account + container the export writes to.
- Rights to consent Snowflake's service principal in your tenant and assign it Storage Blob Data Reader on the container, plus a Snowflake ACCOUNTADMIN for one grant. The app generates every step.
Choose your options
Use whatever export you already have — or create the recommended one. Your choices:
- Export type — FOCUS 1.0r2 (recommended). One Cost and usage details (FOCUS) export carries both billed and effective (amortized) cost plus Azure's
x_*columns — it replaces the separate actual and amortized exports without losing detail. Native actual/amortized exports also work. (FOCUS 1.2 is still preview.) - Format — Parquet or CSV. Parquet + Snappy is faster and smaller; CSV works too.
- Scope — your billing account / EA enrollment (the highest you have).
One caveat: don't also export the same subscriptions separately — overlapping exports land the same costs twice and nothing downstream can tell them apart. Need history? Use Export selected dates to re-run past months (up to 13, one at a time); anything in the container is picked up automatically.
Create the export
No export yet? Create a scheduled FOCUS export to Blob storage:
- In the Azure portal, search for Cost Management, select your billing scope, and choose Exports in the left menu.
- Select + Create. On the Basics tab, pick a FOCUS template (or Create your own export and choose the Cost and usage details (FOCUS) dataset). Give it an export name.
- On the Destination tab, set Storage type to Azure blob storage, choose the storage account and container, and set a directory path. Choose Parquet + Snappy (or CSV + Gzip). Partitioning and overwrite are on by default — leave them.
- Review and select Review + create. Note the storage account, container, and path — that's what Cost Catch reads.
Full guide: Create and manage Cost Management exports.
Find your billing account ID
The wizard asks for a Billing account / EA enrollment ID. Cost Catch uses it only to label the connection, so match it to the scope you created the export at.
- In the Azure portal, search for Cost Management + Billing.
- If you have more than one billing account, open Billing scopes and select the one you want.
- Open Settings → Properties — the value is shown as Billing account ID (the Overview page shows it too).
The format depends on your agreement. Enterprise Agreement: your enrollment number — a plain number like 12345678, also visible at ea.azure.com. Microsoft Customer Agreement: a long compound id ending in a date, e.g. …:…_2019-05-31. Pay-as-you-go shows its billing account ID on that same Properties page.
Refresh cadence
Pick how often Cost Catch checks for new data. Every connection offers the same menu; we suggest a default that matches how often Microsoft Azure actually publishes.
| Cadence option | Good for |
|---|---|
| Every hour | Tightest freshness; more runs |
| Every 6 hours | Same-day freshness, light footprint |
| Every 12 hours Recommended | Azure refreshes the export about once a day (twice at month boundaries) — polling faster can't produce a new row. |
| Daily | A once-a-day snapshot; lowest cost |
| Custom | Any schedule you like, on your own cron |
The app pre-selects Every 12 hours and shows this reasoning right next to the picker — override it any time.
What to expect
- Data lands within ~4 hours of an export run. An export you already run is picked up on the next scheduled sync.
- A grant can take a few minutes to propagate. If the first sync fails with a permissions error right after setup, that's just Azure propagation lag — it clears on the next run.
- Where your data lands.
RAW.VENDOR_BILLING; current committed totals viaRAW.VENDOR_BILLING_CURRENT. Nothing leaves your account.
Connect it
That's every decision. Open Microsoft Azure in the setup wizard — it generates your storage-integration SQL, your tenant consent link, and the exact role-assignment steps.
Stuck on a step? Email [email protected].