Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как использовать Bicep для создания Azure Front Door с веб-приложением в качестве источника.
Примечание.
Для веб-рабочих нагрузок настоятельно рекомендуется использовать Защиту от атак DDoS Azure и брандмауэр веб-приложения для защиты от новых атак DDoS. Другой вариант — использовать Azure Front Door вместе с брандмауэром веб-приложения. Azure Front Door обеспечивает защиту на уровне платформы от атак DDoS на уровне сети. Дополнительные сведения см. в разделе "Базовые показатели безопасности для служб Azure".
Bicep — это предметно-ориентированный язык (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. Он обеспечивает краткий синтаксис, надежную безопасность типов и поддержку повторного использования кода. Bicep предлагает лучшие возможности для разработки решений Azure типа "инфраструктура как код".
Требования
- Активная подписка Azure. Создайте бесплатную учетную запись, если у вас ее нет.
- IP-адрес или полное доменное имя веб-сайта или веб-приложения.
Проверка BICEP-файла
Файл Bicep, используемый в этом кратком руководстве, доступен из шаблонов быстрого запуска Azure.
В этом кратком руководстве вы создадите профиль Azure Front Door, службу приложение Azure и настройте службу приложений для проверки того, что трафик поступает через источник Azure Front Door.
@description('The location into which regionally scoped resources should be deployed. Note that Front Door is a global resource.')
param location string = resourceGroup().location
@description('The name of the App Service application to create. This must be globally unique.')
param appName string = 'myapp-${uniqueString(resourceGroup().id)}'
@description('The name of the SKU to use when creating the App Service plan.')
param appServicePlanSkuName string = 'S1'
@description('The number of worker instances of your App Service plan that should be provisioned.')
param appServicePlanCapacity int = 1
@description('The name of the Front Door endpoint to create. This must be globally unique.')
param frontDoorEndpointName string = 'afd-${uniqueString(resourceGroup().id)}'
@description('The name of the SKU to use when creating the Front Door profile.')
@allowed([
'Standard_AzureFrontDoor'
'Premium_AzureFrontDoor'
])
param frontDoorSkuName string = 'Standard_AzureFrontDoor'
var appServicePlanName = 'AppServicePlan'
var frontDoorProfileName = 'MyFrontDoor'
var frontDoorOriginGroupName = 'MyOriginGroup'
var frontDoorOriginName = 'MyAppServiceOrigin'
var frontDoorRouteName = 'MyRoute'
resource frontDoorProfile 'Microsoft.Cdn/profiles@2021-06-01' = {
name: frontDoorProfileName
location: 'global'
sku: {
name: frontDoorSkuName
}
}
resource appServicePlan 'Microsoft.Web/serverFarms@2020-06-01' = {
name: appServicePlanName
location: location
sku: {
name: appServicePlanSkuName
capacity: appServicePlanCapacity
}
kind: 'app'
}
resource app 'Microsoft.Web/sites@2020-06-01' = {
name: appName
location: location
kind: 'app'
identity: {
type: 'SystemAssigned'
}
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
siteConfig: {
detailedErrorLoggingEnabled: true
httpLoggingEnabled: true
requestTracingEnabled: true
ftpsState: 'Disabled'
minTlsVersion: '1.2'
ipSecurityRestrictions: [
{
tag: 'ServiceTag'
ipAddress: 'AzureFrontDoor.Backend'
action: 'Allow'
priority: 100
headers: {
'x-azure-fdid': [
frontDoorProfile.properties.frontDoorId
]
}
name: 'Allow traffic from Front Door'
}
]
}
}
}
resource frontDoorEndpoint 'Microsoft.Cdn/profiles/afdEndpoints@2021-06-01' = {
name: frontDoorEndpointName
parent: frontDoorProfile
location: 'global'
properties: {
enabledState: 'Enabled'
}
}
resource frontDoorOriginGroup 'Microsoft.Cdn/profiles/originGroups@2021-06-01' = {
name: frontDoorOriginGroupName
parent: frontDoorProfile
properties: {
loadBalancingSettings: {
sampleSize: 4
successfulSamplesRequired: 3
}
healthProbeSettings: {
probePath: '/'
probeRequestType: 'HEAD'
probeProtocol: 'Http'
probeIntervalInSeconds: 100
}
}
}
resource frontDoorOrigin 'Microsoft.Cdn/profiles/originGroups/origins@2021-06-01' = {
name: frontDoorOriginName
parent: frontDoorOriginGroup
properties: {
hostName: app.properties.defaultHostName
httpPort: 80
httpsPort: 443
originHostHeader: app.properties.defaultHostName
priority: 1
weight: 1000
}
}
resource frontDoorRoute 'Microsoft.Cdn/profiles/afdEndpoints/routes@2021-06-01' = {
name: frontDoorRouteName
parent: frontDoorEndpoint
dependsOn: [
frontDoorOrigin // This explicit dependency is required to ensure that the origin group is not empty when the route is created.
]
properties: {
originGroup: {
id: frontDoorOriginGroup.id
}
supportedProtocols: [
'Http'
'Https'
]
patternsToMatch: [
'/*'
]
forwardingProtocol: 'HttpsOnly'
linkToDefaultDomain: 'Enabled'
httpsRedirect: 'Enabled'
}
}
output appServiceHostName string = app.properties.defaultHostName
output frontDoorEndpointHostName string = frontDoorEndpoint.properties.hostName
В файле Bicep определяется множество ресурсов Azure:
- Microsoft.Cdn/profiles — профили Azure Front Door Standard/Premium
- Microsoft.Web/serverfarms — план службы приложений для размещения веб-приложений
- Microsoft.Web/sites — обслуживание запросов к исходному серверу веб-приложения для Front Door
Разверните файл Bicep
Сохраните файл Bicep в качестве main.bicep на локальном компьютере.
Разверните файл Bicep с помощью Azure CLI или Azure PowerShell.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicepПосле завершения развертывания вы увидите выходные данные, аналогичные следующим:
Проверка развертывания
Используйте Azure CLI или Azure PowerShell для перечисления ресурсов, развернутых в группе ресурсов.
az resource list --resource-group exampleRG
Вы также можете проверить развертывание с помощью портал Azure.
Войдите на портал Azure.
В области слева выберите Группы ресурсов.
Выберите группу ресурсов, созданную в предыдущем разделе.
Выберите созданную вами Front Door. Вы увидите имя узла конечной точки. Скопируйте имя узла и вставьте его в адресную строку браузера. Нажмите клавишу ВВОД, и ваши запросы будут перенаправлены в веб-приложение.
Очистка ресурсов
Чтобы удалить сервис Front Door и группу ресурсов, когда они больше не нужны, используйте портал Azure, Azure CLI или Azure PowerShell. Front Door и все связанные ресурсы удаляются.
az group delete --name exampleRG
Следующие шаги
В этом кратком руководстве вы узнали, как создать:
- Входная дверь
- План службы приложений
- Веб-приложение
Чтобы узнать, как добавить пользовательский домен в Front Door, перейдите к учебникам Front Door.