---
title: Integrating Azure CDN with Storage Account
description: Integrating Azure CDN with Storage Account
image: https://blog.blazingcdn.com/hubfs/azure-cdn%20%281%29.png
---

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘 Learn ▾](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us)

[CDN Fundamentals](https://blog.blazingcdn.com/cdn-fundamentals?hsLang=en-us) [By Content Type](https://blog.blazingcdn.com/by-content-type?hsLang=en-us) [Advanced Concepts](https://blog.blazingcdn.com/advanced-concepts?hsLang=en-us) [📖 Glossary](https://blog.blazingcdn.com/glossary?hsLang=en-us)

[🎬 Video & Streaming ▾](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us)

[🔴 Live Streaming](https://blog.blazingcdn.com/live-streaming?hsLang=en-us) [📺 VOD & OTT](https://blog.blazingcdn.com/vod-ott?hsLang=en-us) [🎞️ Encoding & Players](https://blog.blazingcdn.com/encoding-players?hsLang=en-us) [🎧 Audio & Podcasts](https://blog.blazingcdn.com/audio-podcasts?hsLang=en-us) [💰 Bandwidth & Costs](https://blog.blazingcdn.com/bandwidth-costs?hsLang=en-us)

[🏗️ Infrastructure ▾](https://blog.blazingcdn.com/cdn-infrastructure?hsLang=en-us)

[🗄️ Storage & Origin](https://blog.blazingcdn.com/storage-origin?hsLang=en-us) [📦 Large File Delivery](https://blog.blazingcdn.com/large-file-delivery?hsLang=en-us) [💸 Cloud Costs & Egress](https://blog.blazingcdn.com/cloud-costs-egress?hsLang=en-us) [🌐 Networking & ISP](https://blog.blazingcdn.com/networking-isp?hsLang=en-us) [⚙️ DevOps & Cloud Infra](https://blog.blazingcdn.com/devops-cloud-infra?hsLang=en-us) [⚡ Web Performance](https://blog.blazingcdn.com/web-performance?hsLang=en-us)

[🏭 Industries ▾](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us)

[📺 Media & Broadcasting](https://blog.blazingcdn.com/media-broadcasting?hsLang=en-us) [💾 Software & SaaS](https://blog.blazingcdn.com/software-saas?hsLang=en-us) [📣 AdTech & Advertising](https://blog.blazingcdn.com/adtech-advertising?hsLang=en-us) [🎮 Gaming & Esports](https://blog.blazingcdn.com/gaming-esports?hsLang=en-us) [📱 Mobile Apps & Developers](https://blog.blazingcdn.com/mobile-apps-developers?hsLang=en-us) [🤖 AI & Machine Learning](https://blog.blazingcdn.com/ai-machine-learning?hsLang=en-us) [🏛️ Enterprise & Corporate](https://blog.blazingcdn.com/enterprise-corporate?hsLang=en-us) [📚 E-Learning & EdTech](https://blog.blazingcdn.com/e-learning-edtech?hsLang=en-us) [🏟️ Sports & Live Events](https://blog.blazingcdn.com/sports-live-events?hsLang=en-us)

[💰 Pricing & Compare ▾](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us)

[Provider Pricing](https://blog.blazingcdn.com/provider-pricing?hsLang=en-us) [Cost Optimization](https://blog.blazingcdn.com/cost-optimization?hsLang=en-us) [Decision Support](https://blog.blazingcdn.com/decision-support?hsLang=en-us) [⚡ Compare](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us) [Provider Comparisons](https://blog.blazingcdn.com/provider-comparisons?hsLang=en-us) [Strategy Comparisons](https://blog.blazingcdn.com/strategy-comparisons?hsLang=en-us) [📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us)

[🔒 Security ▾](https://blog.blazingcdn.com/cdn-security?hsLang=en-us)

[Attack Protection](https://blog.blazingcdn.com/attack-protection?hsLang=en-us) [Encryption & Access](https://blog.blazingcdn.com/encryption-access?hsLang=en-us) [Video & DRM Security](https://blog.blazingcdn.com/video-drm-security?hsLang=en-us)

[🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us)

[Get Started](https://blazingcdn.com/sign-up-contact-form/)

[Infrastructure](https://blog.blazingcdn.com/en-us/tag/infrastructure) [Infrastructure - Storage & Origin](https://blog.blazingcdn.com/en-us/tag/infrastructure-storage-origin)

# Integrating Azure CDN with Storage Account

 Vadym Borovskyi  Feb 5, 2024, 2:10:06 PM

![\<span id="hs\_cos\_wrapper\_name" class="hs\_cos\_wrapper hs\_cos\_wrapper\_meta\_field hs\_cos\_wrapper\_type\_text" style="" data-hs-cos-general-type="meta\_field" data-hs-cos-type="text" \>Integrating Azure CDN with Storage Account\</span\>](https://blog.blazingcdn.com/hubfs/azure-cdn%20%281%29.png)

Integrating Azure CDN with a Storage Account can significantly enhance content delivery speed and reliability by strategically caching content in points of presence (PoPs) worldwide. This minimizes latency when users request content stored in an Azure Storage Account. Below is a revised and updated explanation of how to integrate Azure CDN with a Storage Account using Pulumi and TypeScript in 2024:

**Step-by-step Explanation**

1. **Create a Storage Account**: Begin by setting up an Azure Storage Account, which provides a unique namespace to store and access your Azure Storage data objects.
2. **Create a Blob Container**: Inside the Storage Account, create a blob container. This container is used to store various types of data, including documents, media files, or application installers.
3. **Create a CDN Profile**: A CDN Profile is a top-level resource that encompasses CDN endpoints. It defines optimization settings and rules for content caching.
4. **Create a CDN Endpoint**: The CDN endpoint serves as the interface through which end users access the content stored in your Storage Account. Ensure that the CDN endpoint is associated with the origin, which, in this case, is the Storage Account.
5. **Push Content**: After configuring the integration, you can start pushing content to your Blob Container. This content will become accessible via the CDN endpoint.

Below is the code snippet that showcases the Pulumi program, enabling seamless integration of Azure CDN with a Storage Account using TypeScript.

typescript

Copy code

`import * as pulumi from "@pulumi/pulumi"; import * as storage from "@pulumi/azure-native/storage"; import * as cdn from "@pulumi/azure-native/cdn"; import * as resource from "@pulumi/azure-native/resources"; // Step 1: Create an Azure Resource Group const resourceGroup = new resource.ResourceGroup("resourceGroup"); // Step 2: Create a Storage Account const storageAccount = new storage.StorageAccount("storageaccount", { resourceGroupName: resourceGroup.name, sku: { name: storage.SkuName.Standard_LRS }, // Using standard locally redundant storage kind: storage.Kind.StorageV2, // General purpose v2 account location: resourceGroup.location, }); // Step 3: Create a Blob Container in the Storage Account const blobContainer = new storage.BlobContainer("blobcontainer", { resourceGroupName: resourceGroup.name, accountName: storageAccount.name, publicAccess: storage.PublicAccess.None, // No public access }); // Step 4: Create a CDN Profile const cdnProfile = new cdn.Profile("cdnprofile", { resourceGroupName: resourceGroup.name, sku: { name: cdn.SkuName.Standard_Microsoft, }, }); // Step 5: Create a CDN Endpoint associated with the Storage Account const cdnEndpoint = new cdn.Endpoint("cdnendpoint", { resourceGroupName: resourceGroup.name, profileName: cdnProfile.name, location: resourceGroup.location, originHostHeader: storageAccount.primaryEndpoints.web, // This is the Storage Account's primary web endpoint origins: [ { name: "cdnorigin", // Name of the origin hostName: storageAccount.primaryEndpoints.web.replace("https://", "").replace("/", ""), // Hostname of the origin }, ], isHttpsAllowed: true, isHttpAllowed: false, optimizationType: cdn.OptimizationType.GeneralWebDelivery, }); // Export the primary endpoints of the Storage Account and the CDN Endpoint's hostname export const storageAccountPrimaryEndpoints = storageAccount.primaryEndpoints; export const cdnEndpointHostname = cdnEndpoint.hostName;`

This program sets up all the necessary Azure resources for integrating Azure CDN with an Azure Storage Account. Each code block corresponds to a specific step:

- **Resource Group**: Creates a new resource group to organize all Azure resources.
- **Storage Account**: Provisions a new storage account with the Standard\_LRS SKU, which is locally redundant storage, and a general-purpose v2 account type, recommended for most scenarios.
- **Blob Container**: Creates a blob container within the storage account with no public access to ensure that blobs can only be accessed by authorized clients.
- **CDN Profile**: Establishes a new CDN profile using the Standard Microsoft SKU, a cost-effective CDN solution provided by Azure.
- **CDN Endpoint**: Sets up a CDN endpoint associated with the Storage Account origin. The endpoint is configured to allow HTTPS traffic.

The program then exports the primary endpoints of the Storage Account and the CDN Endpoint's hostname for validation and ease of access.

Running this Pulumi program with `pulumi up` will provision the Azure resources needed for integrating Azure CDN with a Storage Account. Once set up and content is uploaded to the blob container, it will be cached at CDN endpoints, providing users with improved latency when accessing your content.

Share: [f](https://www.facebook.com/sharer/sharer.php?u=https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account) [in](https://www.linkedin.com/sharing/share-offsite/?url=https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account) [𝕏](https://twitter.com/intent/tweet?url=https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account&text=) [✉](mailto:?subject=%3Cspan%20id="hs_cos_wrapper_name"%20class="hs_cos_wrapper%20hs_cos_wrapper_meta_field%20hs_cos_wrapper_type_text"%20style=""%20data-hs-cos-general-type="meta_field"%20data-hs-cos-type="text"%20%3EIntegrating%20Azure%20CDN%20with%20Storage%20Account%3C/span%3E&body=https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account)

![BlazingCDN](https://blog.blazingcdn.com/hs-fs/hubfs/Logo/blog-logo-w.png?height=24&name=blog-logo-w.png)

*Heavy traffic.*  
Light bill.

The CDN for video and large traffic

100 TB a month at list price

- BlazingCDN**$415**
- [bunny.net](https://bunny.net/pricing/) Volume**$500**
- [CDN77](https://www.cdn77.com/pricing), plan to 250 TB**$990**
- [KeyCDN](https://www.keycdn.com/pricing), NA and Europe**$2,600**
- [CloudFront](https://aws.amazon.com/cloudfront/pricing/pay-as-you-go/) pay as you go**$6,965**

Each provider's published list price for transfer, lowest first, checked November 2026. BlazingCDN publishes this blog. Up to 50 TB a month a flat plan such as CloudFront Pro ($15) can cost less.

[Calculate your cost](https://blazingcdn.com/cdn-cost-calculator/?utm_source=blog&utm_medium=sidebar&utm_campaign=blog_sidebar&utm_content=compare_calc)

## Related posts

[![Video CDN With S3 or Object Storage as Origin: Setup Guide](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-23-2026-07-00-43-4400-AM.jpeg)](https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained?hsLang=en-us)

Infrastructure

### [Video CDN With S3 or Object Storage as Origin: Setup Guide](https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained?hsLang=en-us)

Serving video straight out of a bucket is the most expensive way to run an object storage CDN setup. At Amazon S3's ...

Oct 23, 2026, 9:03:59 AM [Read more](https://blog.blazingcdn.com/en-us/video-cdn-integration-with-s3-and-object-storage-explained?hsLang=en-us)

[![Fastly Origin Shield: How Shielding Works and What It Costs](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Oct-15-2026-07-00-57-7561-AM.jpeg)](https://blog.blazingcdn.com/en-us/understanding-fastlys-origin-shield-and-its-cost-implications?hsLang=en-us)

Infrastructure

### [Fastly Origin Shield: How Shielding Works and What It Costs](https://blog.blazingcdn.com/en-us/understanding-fastlys-origin-shield-and-its-cost-implications?hsLang=en-us)

Fastly origin shield has no separate line item on a Fastly invoice as of 2026. A shielded cache miss is billed as an ...

Oct 15, 2026, 9:04:12 AM [Read more](https://blog.blazingcdn.com/en-us/understanding-fastlys-origin-shield-and-its-cost-implications?hsLang=en-us)

[![Origin Shield and Tiered Caching: How to Cut Origin Egress](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Sep-15-2026-08-42-42-6669-AM.jpeg)](https://blog.blazingcdn.com/en-us/origin-shield-and-tiered-caching-how-to-cut-origin-egress?hsLang=en-us)

Infrastructure

### [Origin Shield and Tiered Caching: How to Cut Origin Egress](https://blog.blazingcdn.com/en-us/origin-shield-and-tiered-caching-how-to-cut-origin-egress?hsLang=en-us)

An origin shield collapses cache misses from every edge location into a single upstream fetch per object per TTL ...

Sep 15, 2026, 10:45:32 AM [Read more](https://blog.blazingcdn.com/en-us/origin-shield-and-tiered-caching-how-to-cut-origin-egress?hsLang=en-us)

[![Slow Cloud Storage Speeds? It’s More Common Than You Think](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-May-07-2026-10-02-47-2679-AM.png)](https://blog.blazingcdn.com/en-us/slow-cloud-storage-speeds-its-more-common-than-you-think?hsLang=en-us)

Infrastructure

### [Slow Cloud Storage? 7 Fixes for Uploads and Downloads](https://blog.blazingcdn.com/en-us/slow-cloud-storage-speeds-its-more-common-than-you-think?hsLang=en-us)

Cloud Storage Performance Issues in 2026: 9 Causes and a Fix Playbook A 10 Gbps symmetric link should move a 50 GB DPX ...

Aug 23, 2026, 1:00:22 AM [Read more](https://blog.blazingcdn.com/en-us/slow-cloud-storage-speeds-its-more-common-than-you-think?hsLang=en-us)

[![BlazingCDN](https://blog.blazingcdn.com/hubfs/Logo/blog-logo-w.png)](https://blog.blazingcdn.com?hsLang=en-us)

[📘 Learn](https://blog.blazingcdn.com/cdn-learn?hsLang=en-us) [📊 Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?hsLang=en-us) [🎬 Video & Streaming](https://blog.blazingcdn.com/video-streaming-cdn?hsLang=en-us) [🏭 Industries](https://blog.blazingcdn.com/cdn-industry-insights?hsLang=en-us) [💰 Pricing & Costs](https://blog.blazingcdn.com/cdn-pricing-and-cdn-costs?hsLang=en-us) [⚡ Compare](https://blog.blazingcdn.com/cdn-comparison?hsLang=en-us) [🔒 Security](https://blog.blazingcdn.com/cdn-security?hsLang=en-us) [🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us) [✍️ Publish with us](https://blog.blazingcdn.com/publish-with-us?hsLang=en-us)

in f 𝕏 ✉

 Copyright © BlazingCDN |. All rights reserved.

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blazingcdn.com/#organization",
  "@type" : "Organization",
  "description" : "High-volume CDN for video, live streaming, OTT/IPTV, software, games, SaaS and large-file delivery.",
  "logo" : {
    "@id" : "https://blazingcdn.com/#logo",
    "@type" : "ImageObject",
    "height" : 560,
    "url" : "https://blazingcdn.com/wp-content/uploads/2024/08/logo-560-560.png",
    "width" : 560
  },
  "name" : "BlazingCDN",
  "sameAs" : [ "https://www.linkedin.com/company/blazingcdn", "https://x.com/BlazingCdn", "https://www.reddit.com/r/BlazingCDN/", "https://www.wikidata.org/wiki/Q141711074" ],
  "url" : "https://blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/#website",
  "@type" : "WebSite",
  "inLanguage" : "en-US",
  "name" : "BlazingCDN Blog",
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "url" : "https://blog.blazingcdn.com/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account#article",
  "@type" : "BlogPosting",
  "author" : {
    "@id" : "https://blog.blazingcdn.com/en-us/author/blazingcdn#person",
    "@type" : "Person",
    "description" : "Vadym Borovskyi is Chief Product and Marketing Officer at BlazingCDN, where he has led product strategy and growth since 2021. He has more than 11 years of experience in IT product management and B2B marketing. On this blog he writes about CDN pricing and egress costs, video and software delivery, cache configuration, and how teams evaluate and switch CDN providers. He is based in Warsaw, Poland.",
    "image" : "https://143144902.fs1.hubspotusercontent-eu1.net/hubfs/143144902/vadym-borovskyi.jpg",
    "jobTitle" : "Chief Product and Marketing Officer",
    "knowsAbout" : [ "Content Delivery Networks (CDN)", "CDN pricing", "Video streaming delivery", "Software and game distribution", "Cache optimization", "Product Management", "B2B Marketing", "Digital Marketing", "Pay Per Click Marketing (PPC)", "Google Ads", "Search Engine Marketing (SEM)", "Marketing Strategy", "Artificial Intelligence (AI)", "Cloud Management", "SaaS Development", "IT Consulting", "Computer Networking", "Project Management", "Startups" ],
    "name" : "Vadym Borovskyi",
    "sameAs" : [ "https://www.linkedin.com/in/axelt/" ],
    "url" : "https://blog.blazingcdn.com/en-us/author/blazingcdn",
    "worksFor" : {
      "@id" : "https://blazingcdn.com/#organization"
    }
  },
  "dateModified" : "2026-11-09T14:39:34Z",
  "datePublished" : "2024-02-05T13:10:06Z",
  "description" : "Integrating Azure CDN with Storage Account",
  "headline" : "Integrating Azure CDN with Storage Account",
  "image" : "https://blog.blazingcdn.com/hubfs/azure-cdn%20%281%29.png",
  "inLanguage" : "en-us",
  "isPartOf" : {
    "@id" : "https://blog.blazingcdn.com/#website"
  },
  "mainEntityOfPage" : {
    "@id" : "https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@id" : "https://blazingcdn.com/#organization"
  },
  "wordCount" : 654
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account#breadcrumb",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us",
    "name" : "Blog",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://blog.blazingcdn.com/en-us/integrating-azure-cdn-with-storage-account",
    "name" : "Integrating Azure CDN with Storage Account",
    "position" : 2
  } ]
}
```