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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for wagtail_azure_cdn-0.2b1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e76108b9a639c49380712730ee75a91ddcf25e482858deab28fb22e3a59ffd0c |
|
MD5 | afc563f42eba7114047e8bd5b67f218f |
|
BLAKE2b-256 | 614c68b942f736bb44b2a5aeaa6cd5871baca45863ea86957366eee459b44229 |