---
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) 

[⚡ Web Performance](https://blog.blazingcdn.com/web-performance?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) [💰 Bandwidth & Costs](https://blog.blazingcdn.com/bandwidth-costs?hsLang=en-us)

[🏭 Other 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) [🏗️ DevOps & Cloud Infra](https://blog.blazingcdn.com/devops-cloud-infra?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 & Costs ▾](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) [Ratings & Benchmarks](https://blog.blazingcdn.com/cdn-ratings-and-benchmarks?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) 

[📁 Case Studies](https://blog.blazingcdn.com/case-studies?hsLang=en-us) [🔌 Integrations](https://blog.blazingcdn.com/integrations?hsLang=en-us) [🛠️ Tools](https://blog.blazingcdn.com/cdn-tools?hsLang=en-us)

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

[Learn - CDN Fundamentals](https://blog.blazingcdn.com/en-us/tag/learn-cdn-fundamentals) [Learn - Advanced Concepts](https://blog.blazingcdn.com/en-us/tag/learn-advanced-concepts) [Mobile Apps & Developers](https://blog.blazingcdn.com/en-us/tag/mobile-apps-developers)

# Integrating Azure CDN with Storage Account

 BlazingCDN  Feb 5, 2024, 2:10:06 PM 

![](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

Their monthly bill vs ours

- 20 TBFastly $2,087**$92.50**
- 50 TBCDN77 $990**$215**
- 200 TBCloudFront $11,965**$765**

Published list prices, Aug 2026

[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

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Sep-21-2026-07-30-27-5571-AM.jpeg)](https://blog.blazingcdn.com/en-us/tls-1-3-and-0-rtt-at-the-edge-the-real-handshake-cost?hsLang=en-us)

Learn

### [TLS 1.3 and 0-RTT at the Edge: The Real Handshake Cost](https://blog.blazingcdn.com/en-us/tls-1-3-and-0-rtt-at-the-edge-the-real-handshake-cost?hsLang=en-us)

TLS 1.3 removes exactly one round trip from a full handshake compared with TLS 1.2, and 0-RTT removes one more on ...

Sep 21, 2026, 9:33:42 AM [Read more](https://blog.blazingcdn.com/en-us/tls-1-3-and-0-rtt-at-the-edge-the-real-handshake-cost?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Sep-20-2026-07-30-23-3710-AM.jpeg)](https://blog.blazingcdn.com/en-us/anycast-vs-dns-routing-how-a-cdn-picks-the-pop?hsLang=en-us)

Learn

### [Anycast vs DNS Routing: How a CDN Picks the PoP](https://blog.blazingcdn.com/en-us/anycast-vs-dns-routing-how-a-cdn-picks-the-pop?hsLang=en-us)

Evaluated February 2026. Two mechanisms decide which edge serves a request, and they fail on completely different ...

Sep 20, 2026, 9:33:54 AM [Read more](https://blog.blazingcdn.com/en-us/anycast-vs-dns-routing-how-a-cdn-picks-the-pop?hsLang=en-us)

[![](https://blog.blazingcdn.com/hubfs/Gemini-Blog/image-Sep-20-2026-07-00-33-3709-AM.jpeg)](https://blog.blazingcdn.com/en-us/understanding-cloudflares-rate-limiting-pricing?hsLang=en-us)

Security

### [Cloudflare Rate Limiting Pricing 2026: Plans, Rules and Real Costs](https://blog.blazingcdn.com/en-us/understanding-cloudflares-rate-limiting-pricing?hsLang=en-us)

Cloudflare Rate Limiting Pricing 2026: Plans, Rules, Real Costs Cloudflare rate limiting pricing has one detail that ...

Sep 20, 2026, 9:02:12 AM [Read more](https://blog.blazingcdn.com/en-us/understanding-cloudflares-rate-limiting-pricing?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.

![](https://matomo.blazingcdn.com/matomo.php?idsite=1&rec=1)

```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/68261278", "https://x.com/BlazingCdn", "https://twitter.com/BlazingCdn", "https://www.facebook.com/BlazingCDN", "https://www.reddit.com/r/BlazingCDN/" ],
  "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" : {
    "@type" : "Person",
    "name" : "BlazingCDN"
  },
  "dateModified" : "2024-02-06T17:40:25Z",
  "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
  } ]
}
```