Mulai cepat ini memandu Anda menggunakan Bicep untuk membuat Azure Front Door dengan Aplikasi Web sebagai asal.
Catatan
Untuk beban kerja web, sebaiknya gunakan perlindungan Azure DDoS dan firewall aplikasi web untuk melindungi dari serangan DDoS yang muncul. Opsi lain adalah menggunakan Azure Front Door bersama dengan firewall aplikasi web. Azure Front Door menawarkan perlindungan tingkat platform terhadap serangan DDoS tingkat jaringan. Untuk informasi selengkapnya, lihat garis besar keamanan untuk layanan Azure.
Bicep adalah bahasa pemrogram khusus domain (DSL) yang menggunakan sintaks deklaratif untuk menyebarkan sumber daya Azure. Bicep menyediakan sintaks ringkas, keamanan jenis yang andal, dan dukungan untuk penggunaan kembali kode. Bicep menawarkan pengalaman penulisan terbaik untuk solusi infrastructure-as-code di Azure.
Prasyarat
Langganan Azure aktif. Buat akun gratis jika Anda tidak memilikinya.
Alamat IP atau FQDN situs web atau aplikasi web.
Tinjau file Bicep
File Bicep yang digunakan dalam mulai cepat ini tersedia dari Templat Mulai Cepat Azure.
Dalam mulai cepat ini, Anda akan membuat profil Azure Front Door, Azure App Service, dan mengonfigurasi layanan aplikasi untuk memvalidasi bahwa lalu lintas datang melalui asal Azure Front Door.
Bicep
@description('The location into which regionally scoped resources should be deployed. Note that Front Door is a global resource.')paramlocationstring = resourceGroup().location
@description('The name of the App Service application to create. This must be globally unique.')paramappNamestring = 'myapp-${uniqueString(resourceGroup().id)}'
@description('The name of the SKU to use when creating the App Service plan.')paramappServicePlanSkuNamestring = 'S1'
@description('The number of worker instances of your App Service plan that should be provisioned.')paramappServicePlanCapacityint = 1
@description('The name of the Front Door endpoint to create. This must be globally unique.')paramfrontDoorEndpointNamestring = 'afd-${uniqueString(resourceGroup().id)}'
@description('The name of the SKU to use when creating the Front Door profile.')
@allowed([
'Standard_AzureFrontDoor''Premium_AzureFrontDoor'
])paramfrontDoorSkuNamestring = 'Standard_AzureFrontDoor'varappServicePlanName = 'AppServicePlan'varfrontDoorProfileName = 'MyFrontDoor'varfrontDoorOriginGroupName = 'MyOriginGroup'varfrontDoorOriginName = 'MyAppServiceOrigin'varfrontDoorRouteName = 'MyRoute'resourcefrontDoorProfile'Microsoft.Cdn/profiles@2021-06-01' = {
name: frontDoorProfileNamelocation: 'global'sku: {
name: frontDoorSkuName
}
}
resourceappServicePlan'Microsoft.Web/serverFarms@2020-06-01' = {
name: appServicePlanNamelocation: locationsku: {
name: appServicePlanSkuNamecapacity: appServicePlanCapacity
}
kind: 'app'
}
resourceapp'Microsoft.Web/sites@2020-06-01' = {
name: appNamelocation: locationkind: 'app'identity: {
type: 'SystemAssigned'
}
properties: {
serverFarmId: appServicePlan.idhttpsOnly: truesiteConfig: {
detailedErrorLoggingEnabled: truehttpLoggingEnabled: truerequestTracingEnabled: trueftpsState: 'Disabled'minTlsVersion: '1.2'ipSecurityRestrictions: [
{
tag: 'ServiceTag'ipAddress: 'AzureFrontDoor.Backend'action: 'Allow'priority: 100headers: {
'x-azure-fdid': [
frontDoorProfile.properties.frontDoorId
]
}
name: 'Allow traffic from Front Door'
}
]
}
}
}
resourcefrontDoorEndpoint'Microsoft.Cdn/profiles/afdEndpoints@2021-06-01' = {
name: frontDoorEndpointNameparent: frontDoorProfilelocation: 'global'properties: {
enabledState: 'Enabled'
}
}
resourcefrontDoorOriginGroup'Microsoft.Cdn/profiles/originGroups@2021-06-01' = {
name: frontDoorOriginGroupNameparent: frontDoorProfileproperties: {
loadBalancingSettings: {
sampleSize: 4successfulSamplesRequired: 3
}
healthProbeSettings: {
probePath: '/'probeRequestType: 'HEAD'probeProtocol: 'Http'probeIntervalInSeconds: 100
}
}
}
resourcefrontDoorOrigin'Microsoft.Cdn/profiles/originGroups/origins@2021-06-01' = {
name: frontDoorOriginNameparent: frontDoorOriginGroupproperties: {
hostName: app.properties.defaultHostNamehttpPort: 80httpsPort: 443originHostHeader: app.properties.defaultHostNamepriority: 1weight: 1000
}
}
resourcefrontDoorRoute'Microsoft.Cdn/profiles/afdEndpoints/routes@2021-06-01' = {
name: frontDoorRouteNameparent: frontDoorEndpointdependsOn: [
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'
}
}
outputappServiceHostNamestring = app.properties.defaultHostNameoutputfrontDoorEndpointHostNamestring = frontDoorEndpoint.properties.hostName
Pilih grup sumber daya yang Anda buat di bagian sebelumnya.
Pilih Front Door yang Anda buat. Anda akan melihat nama host titik akhir. Salin nama host dan tempelkan ke bilah alamat browser. Tekan enter, dan permintaan Anda akan dirutekan ke aplikasi web.
Membersihkan sumber daya
Saat tidak lagi diperlukan, gunakan portal Azure, Azure CLI, atau Azure PowerShell untuk menghapus layanan Front Door dan grup sumber daya. Front Door dan semua sumber daya terkait dihapus.
Bangun solusi end-to-end di Microsoft Azure untuk membuat Azure Functions, menerapkan dan mengelola aplikasi web, mengembangkan solusi yang menggunakan penyimpanan Azure, dan banyak lagi.
Sintaks dan properti Azure Microsoft.Network/frontDoors untuk digunakan dalam templat Azure Resource Manager untuk menyebarkan sumber daya. Versi API terbaru
Pelajari tentang sampel templat Resource Manager untuk Azure Front Door, termasuk templat untuk membuat profil Front Door dasar dan mengonfigurasi pembatasan tarif Front Door.
Sintaks dan properti Azure Microsoft.Cdn/profiles untuk digunakan dalam templat Azure Resource Manager untuk menyebarkan sumber daya. Versi API terbaru
Pelajari cara membuat Azure Front Door menggunakan Azure CLI. Gunakan Azure Front Door untuk mengirimkan konten ke basis pengguna global Anda serta melindungi aplikasi web Anda dari kerentanan.