Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Schnellstart erfahren Sie, wie Sie Bicep zum Erstellen einer Azure Front Door mit einer Web-App als Ursprungsort verwenden.
Hinweis
Für Webworkloads wird dringend empfohlen, Azure DDoS Protection und eine Webanwendungsfirewall zum Schutz vor neuen DDoS-Angriffen zu verwenden. Eine weitere Möglichkeit besteht darin, Azure Front Door zusammen mit einer Webanwendungsfirewall zu verwenden. Azure Front Door bietet Plattformebenenschutz vor DDoS-Angriffen auf Netzwerkebene. Weitere Informationen finden Sie unter "Sicherheitsbasisplan für Azure-Dienste".
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Benutzererfahrung für Ihre Infrastructure-as-Code-Lösungen in Azure.
Voraussetzungen
- Ein aktives Azure-Abonnement. Erstellen Sie ein kostenloses Konto, falls Sie noch keines haben.
- Die IP-Adresse oder der vollqualifizierter Domänenname (FQDN) einer Website oder Webanwendung
Überprüfen Sie die Bicep-Datei
Die in diesem Schnellstart verwendete Bicep-Datei finden Sie unter den Azure-Schnellstartvorlagen.
In diesem Schnellstart erstellen Sie ein Azure Front Door Profil, einen Azure App Service und konfigurieren den App Service, um zu überprüfen, ob der Datenverkehr über den Azure Front Door Ursprung erfolgt.
@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
Die Bicep-Datei definiert mehrere Azure-Ressourcen:
- Microsoft.Cdn/profiles – Azure Front Door Standard-/Premium-Profil
- Microsoft.Web/serverfarms – App Service-Plan zum Hosten von Web-Apps
- Microsoft.Web/sites - Web-App-Ursprung, der Anfragen für Front Door bedient
Bereitstellen der Bicep-Datei
Speichern Sie die Bicep-Datei unter dem Namen main.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit Azure CLI oder mit Azure PowerShell bereit.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicepNachdem die Bereitstellung abgeschlossen ist, sollten Sie eine Ausgabe sehen, die der folgenden ähnelt:
Bereitstellung validieren
Verwenden Sie die Azure-Befehlszeilenschnittstelle oder Azure PowerShell, um die bereitgestellten Ressourcen in der Ressourcengruppe aufzulisten.
az resource list --resource-group exampleRG
Sie können die Bereitstellung auch über das Azure-Portal überprüfen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie im linken Bereich Ressourcengruppen aus.
Wählen Sie die Ressourcengruppe aus, die Sie im vorherigen Abschnitt erstellt haben.
Wählen Sie die von Ihnen erstellte Front Door aus. Der Endpunkt-Hostname wird angezeigt. Kopieren Sie den Hostnamen, und fügen Sie ihn auf der Adressleiste eines Browsers ein. Drücken Sie die EINGABETASTE. Ihre Anforderungen werden an die Web-App weitergeleitet.
Bereinigen von Ressourcen
Wenn der Front Door-Service und die Ressourcengruppe nicht mehr benötigt werden, löschen Sie sie über das Azure-Portal, die Azure CLI oder Azure PowerShell. Die Front Door und alle dazugehörigen Ressourcen werden entfernt.
az group delete --name exampleRG
Nächste Schritte
In diesem Schnellstart haben Sie Folgendes erstellt:
- Vordertür
- App Service-Plan
- Webanwendung
Gehen Sie zu den Front Door-Tutorials über, um zu erfahren, wie Sie Ihrer Front Door eine benutzerdefinierte Domäne hinzufügen.