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.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd645eeebae8287c86e1f16e6e67636f52d1aa55bd321142166038f1a5458074 |
|
MD5 | 4b98d91312f104f0a7983ad0b80fa0ea |
|
BLAKE2b-256 | f50475b6cf3c73715084ef77007f69f16da3d16105c75ba5e3c3e4c9f3565ad6 |