Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: ✔️ Front Door Standard ✔️ Front Door Premium
Este guia de início rápido descreve como usar um modelo do Azure Resource Manager (ARM) para criar um Azure Front Door tendo um Aplicativo Web do Azure como origem.
Um Modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.
Se você atender aos pré-requisitos e estiver familiarizado com os modelos do ARM, selecione o botão Implantar no Azure para abrir o modelo no portal do Azure.
Pré-requisitos
- Uma assinatura do Azure. Crie uma conta gratuita se ainda não tiver a sua.
- IP ou FQDN de um site ou aplicativo Web.
Examinar o modelo
O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do Azure.
Neste início rápido, você criará um Front Door Standard/Premium, um Serviço de Aplicativo, e configurará o Serviço de Aplicativo para validar se o tráfego passou pela origem do Front Door.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "1359495056007144414"
}
},
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location into which regionally scoped resources should be deployed. Note that Front Door is a global resource."
}
},
"appName": {
"type": "string",
"defaultValue": "[format('myapp-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "The name of the App Service application to create. This must be globally unique."
}
},
"appServicePlanSkuName": {
"type": "string",
"defaultValue": "S1",
"metadata": {
"description": "The name of the SKU to use when creating the App Service plan."
}
},
"appServicePlanCapacity": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of worker instances of your App Service plan that should be provisioned."
}
},
"frontDoorEndpointName": {
"type": "string",
"defaultValue": "[format('afd-{0}', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "The name of the Front Door endpoint to create. This must be globally unique."
}
},
"frontDoorSkuName": {
"type": "string",
"defaultValue": "Standard_AzureFrontDoor",
"allowedValues": [
"Standard_AzureFrontDoor",
"Premium_AzureFrontDoor"
],
"metadata": {
"description": "The name of the SKU to use when creating the Front Door profile."
}
}
},
"variables": {
"appServicePlanName": "AppServicePlan",
"frontDoorProfileName": "MyFrontDoor",
"frontDoorOriginGroupName": "MyOriginGroup",
"frontDoorOriginName": "MyAppServiceOrigin",
"frontDoorRouteName": "MyRoute"
},
"resources": [
{
"type": "Microsoft.Cdn/profiles",
"apiVersion": "2021-06-01",
"name": "[variables('frontDoorProfileName')]",
"location": "global",
"sku": {
"name": "[parameters('frontDoorSkuName')]"
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-06-01",
"name": "[variables('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('appServicePlanSkuName')]",
"capacity": "[parameters('appServicePlanCapacity')]"
},
"kind": "app"
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-06-01",
"name": "[parameters('appName')]",
"location": "[parameters('location')]",
"kind": "app",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
"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": [
"[reference(resourceId('Microsoft.Cdn/profiles', variables('frontDoorProfileName'))).frontDoorId]"
]
},
"name": "Allow traffic from Front Door"
}
]
}
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
"[resourceId('Microsoft.Cdn/profiles', variables('frontDoorProfileName'))]"
]
},
{
"type": "Microsoft.Cdn/profiles/afdEndpoints",
"apiVersion": "2021-06-01",
"name": "[format('{0}/{1}', variables('frontDoorProfileName'), parameters('frontDoorEndpointName'))]",
"location": "global",
"properties": {
"enabledState": "Enabled"
},
"dependsOn": [
"[resourceId('Microsoft.Cdn/profiles', variables('frontDoorProfileName'))]"
]
},
{
"type": "Microsoft.Cdn/profiles/originGroups",
"apiVersion": "2021-06-01",
"name": "[format('{0}/{1}', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'))]",
"properties": {
"loadBalancingSettings": {
"sampleSize": 4,
"successfulSamplesRequired": 3
},
"healthProbeSettings": {
"probePath": "/",
"probeRequestType": "HEAD",
"probeProtocol": "Http",
"probeIntervalInSeconds": 100
}
},
"dependsOn": [
"[resourceId('Microsoft.Cdn/profiles', variables('frontDoorProfileName'))]"
]
},
{
"type": "Microsoft.Cdn/profiles/originGroups/origins",
"apiVersion": "2021-06-01",
"name": "[format('{0}/{1}/{2}', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'), variables('frontDoorOriginName'))]",
"properties": {
"hostName": "[reference(resourceId('Microsoft.Web/sites', parameters('appName'))).defaultHostName]",
"httpPort": 80,
"httpsPort": 443,
"originHostHeader": "[reference(resourceId('Microsoft.Web/sites', parameters('appName'))).defaultHostName]",
"priority": 1,
"weight": 1000
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('appName'))]",
"[resourceId('Microsoft.Cdn/profiles/originGroups', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'))]"
]
},
{
"type": "Microsoft.Cdn/profiles/afdEndpoints/routes",
"apiVersion": "2021-06-01",
"name": "[format('{0}/{1}/{2}', variables('frontDoorProfileName'), parameters('frontDoorEndpointName'), variables('frontDoorRouteName'))]",
"properties": {
"originGroup": {
"id": "[resourceId('Microsoft.Cdn/profiles/originGroups', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'))]"
},
"supportedProtocols": [
"Http",
"Https"
],
"patternsToMatch": [
"/*"
],
"forwardingProtocol": "HttpsOnly",
"linkToDefaultDomain": "Enabled",
"httpsRedirect": "Enabled"
},
"dependsOn": [
"[resourceId('Microsoft.Cdn/profiles/afdEndpoints', variables('frontDoorProfileName'), parameters('frontDoorEndpointName'))]",
"[resourceId('Microsoft.Cdn/profiles/originGroups/origins', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'), variables('frontDoorOriginName'))]",
"[resourceId('Microsoft.Cdn/profiles/originGroups', variables('frontDoorProfileName'), variables('frontDoorOriginGroupName'))]"
]
}
],
"outputs": {
"appServiceHostName": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Web/sites', parameters('appName'))).defaultHostName]"
},
"frontDoorEndpointHostName": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Cdn/profiles/afdEndpoints', variables('frontDoorProfileName'), parameters('frontDoorEndpointName'))).hostName]"
}
}
}
O modelo define múltiplos recursos do Azure:
- Microsoft.Network/frontDoors
- Microsoft.Web/serverfarms (Plano do Serviço de Aplicativo para os aplicativos Web do host)
- Microsoft.Web/sites (solicitação de manutenção de origem do aplicativo Web para o Front Door)
Implantar o modelo
Clique em Experimentar no bloco de código a seguir para abrir o Azure Cloud Shell e então acompanhe as instruções para entrar no Azure.
Observação
Se você quiser implantar um Azure Front Door Premium em vez de Standard, substitua o parâmetro de SKY por
Premium_AzureFrontDoor. Para uma comparação detalhada, veja a comparação de camadas do Azure Front Door.$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names" $location = Read-Host -Prompt "Enter the location (i.e. centralus)" $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.cdn/front-door-standard-premium-app-service-public/azuredeploy.json" $resourceGroupName = "${projectName}rg" New-AzResourceGroup -Name $resourceGroupName -Location "$location" New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri -frontDoorSkuName Standard_AzureFrontDoor Read-Host -Prompt "Press [ENTER] to continue ..."Aguarde até ver o prompt do console.
Selecione Copiar no bloco de códigos anterior para copiar o script do PowerShell.
Clique com o botão direito do mouse no painel do console do shell e selecione Colar.
Insira os valores.
A implantação de modelo cria um Front Door com um aplicativo Web como origem
O nome do grupo de recursos é o nome do projeto com o acréscimo de rg.
Observação
frontDoorName precisa ser um nome global exclusivo para que o modelo seja implantado com êxito. Se a implantação falhar, comece novamente com a Etapa 1.
O modelo leva alguns minutos para ser implantado. Quando tiver concluído, a saída deverá ser semelhante a:
O Azure PowerShell é usado para implantar o modelo. Além do Azure PowerShell, você também pode usar o portal do Azure, a CLI do Azure e a API REST. Para saber mais sobre outros métodos de implantação, confira Implantar modelos.
Validar a implantação
Entre no portal do Azure.
Escolha Grupos de recursos no painel esquerdo.
Selecione o grupo de recursos criado na seção anterior. O nome do grupo de recursos padrão é o nome do projeto com o acréscimo de rg.
Selecione o Front Door criado anteriormente e você poderá ver o nome do host do ponto de extremidade. Copie o nome do host e cole na barra de endereços de um navegador. Pressione Enter e a solicitação será encaminhada automaticamente para o aplicativo Web.
Limpar os recursos
Quando não precisar mais do serviço de Front Door, exclua o grupo de recursos. Isso removerá o Front Door e todos os recursos relacionados.
Para excluir o grupo de recursos, chame o cmdlet Remove-AzResourceGroup:
Remove-AzResourceGroup -Name <your resource group name>
Próximas etapas
Neste início rápido, você criou:
- Azure Front Door
- Plano do Serviço de Aplicativo
- Aplicativo Web
Para saber como adicionar um domínio personalizado ao Front Door, avance para os tutoriais do Front Door.