在Wagtail中使用Azure CDN
项目描述
Azure CDN或Front Door后端,用于Wagtail的前端缓存失效器。
此模块需要azure-mgmt-cdn作为最低要求,才能与Azure CDN正常工作。
此模块需要azure-mgmt-frontdoor作为最低要求,才能与Azure Front Door正常工作。
安装
pip install wagtail-azure-cdn
您也可以使用依赖关系进行安装。对于Azure CDN支持
pip install wagtail-azure-cdn[cdn]
或对于Front Door支持
pip install wagtail-azure-cdn[frontdoor]
或对于两者
pip install wagtail-azure-cdn[cdn,frontdoor]
Azure CDN配置
将以下设置添加到您的Wagtail项目中。
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和CDN_ENDPOINT_NAME都可以从Azure门户中获取。
CREDENTIALS是Azure凭据对象。它们可能是一个可调用的。 请参阅文档 了解详情。
多个站点
您可以使用SITES设置为多个主机设置设置,例如
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],
},
},
},
}
如果网站没有设置,则将使用顶级设置的设置。例如,您可以这样做
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]
},
},
},
}
Azure Front Door 的配置
将以下设置添加到您的Wagtail项目中。
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 和 SUBSCRIPTION_ID 都可以从 Azure 门户获取。
CREDENTIALS是Azure凭据对象。它们可能是一个可调用的。 请参阅文档 了解详情。
多站点配置
多站点配置对 Front Door 也是相同的,只需使用 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],
},
},
},
}