Skip to main content

Use Azure CDN with Wagtail

Project description

An Azure CDN or Front Door backend for Wagtail’s front-end cache invalidator.

This module requires azure-mgmt-cdn as minimum to work properly with Azure CDN.

This module requires azure-mgmt-frontdoor as minimum to work properly with Azure Front Door.

Installation

pip install wagtail-azure-cdn

You can also install with dependencies. For Azure CDN support:

pip install wagtail-azure-cdn[cdn]

Or for Front Door support:

pip install wagtail-azure-cdn[frontdoor]

Or for both:

pip install wagtail-azure-cdn[cdn,frontdoor]

Configuration for Azure CDN

Add the following settings to your Wagtail project.

from azure.common.credentials import get_azure_cli_credentials

WAGTAILFRONTENDCACHE = {
    "default": {
        "BACKEND": "wagtail_azure_cdn.backends.AzureCdnBackend",
        "RESOURCE_GROUP_NAME": "Your resource group name",
        "CDN_PROFILE_NAME": "Your CDN profile name",
        "SUBSCRIPTION_ID": "Your subscription ID",
        "CDN_ENDPOINT_NAME": "Your endpoint name",
        "CREDENTIALS": get_azure_cli_credentials()[0]
    }
}
  • RESOURCE_GROUP_NAME, CDN_PROFILE_NAME, SUBSCRIPTION_ID and CDN_ENDPOINT_NAME can be all obtained from the Azure portal.
  • CREDENTIALS is Azure credentials objects. They may be a callable to. See the documentation for the details.

Multiple sites

You can set settings for multiple hosts using the SITES setting , for example:

from azure.common.credentials import get_azure_cli_credentials

WAGTAILFRONTENDCACHE = {
    "default": {
        "BACKEND": "wagtail_azure_cdn.backends.AzureCdnBackend",
        "SITES": {
            "torchbox.com": {
                "RESOURCE_GROUP_NAME": "Your resource group name",
                "CDN_PROFILE_NAME": "Your CDN profile name",
                "SUBSCRIPTION_ID": "Your subscription ID",
                "CDN_ENDPOINT_NAME": "Your endpoint name",
                "CREDENTIALS": get_azure_cli_credentials()[0],
            },
        },
    },
}

Settings set at the top level will be used if there’s no settings for a site. E.g. you can do this:

from azure.common.credentials import get_azure_cli_credentials

WAGTAILFRONTENDCACHE = {
    "default": {
        "BACKEND": "wagtail_azure_cdn.backends.AzureCdnBackend",
        "RESOURCE_GROUP_NAME": "Your resource group name",
        "CDN_PROFILE_NAME": "Your CDN profile name",
        "SUBSCRIPTION_ID": "Your subscription ID",
        "SITES": {
            "torchbox.com": {
                "CDN_ENDPOINT_NAME": "Your endpoint name",
                "CREDENTIALS": get_azure_cli_credentials()[0]
            },

            "jobs.torchbox.com": {
                "CDN_ENDPOINT_NAME": "Your endpoint name",
                "CREDENTIALS": get_azure_cli_credentials()[0]
            },
        },
    },
}

Configuration for Azure Front Door

Add the following settings to your Wagtail project.

from azure.common.credentials import get_azure_cli_credentials

WAGTAILFRONTENDCACHE = {
    "default": {
        "BACKEND": "wagtail_azure_cdn.backends.AzureFrontDoorBackend",
        "RESOURCE_GROUP_NAME": "Your resource group name",
        "FRONTDOOR_NAME": "Your Front Door name",
        "SUBSCRIPTION_ID": "Your subscription ID",
        "CREDENTIALS": get_azure_cli_credentials()[0]
    }
}
  • RESOURCE_GROUP_NAME, FRONTDOOR_NAME and SUBSCRIPTION_ID can be all obtained from the Azure portal.
  • CREDENTIALS is Azure credentials objects. They may be a callable to. See the documentation for the details.

Multi-site configuration

The multi-site configuration works the same for the Front Door, just use SITES.

from azure.common.credentials import get_azure_cli_credentials

WAGTAILFRONTENDCACHE = {
    "default": {
        "BACKEND": "wagtail_azure_cdn.backends.AzureFrontDoorBackend",
        "SITES": {
            "torchbox.com": {
                "RESOURCE_GROUP_NAME": "Your resource group name",
                "FRONTDOOR_NAME": "Your Front Door name",
                "SUBSCRIPTION_ID": "Your subscription ID",
                "CREDENTIALS": get_azure_cli_credentials()[0],
            },
        },
    },
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for wagtail-azure-cdn, version 0.2b1
Filename, size File type Python version Upload date Hashes
Filename, size wagtail_azure_cdn-0.2b1-py3-none-any.whl (8.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size wagtail-azure-cdn-0.2b1.tar.gz (8.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page