Frontdoor Args
!>IMPORTANT This deploys an Azure Front Door (classic) resource which has been deprecated and will receive security updates only. Please migrate your existing Azure Front Door (classic) deployments to the new Azure Front Door (standard/premium) resources. For your convenience, the service team has exposed a Front Door Classic
to Front Door Standard/Premium
migration tool to allow you to migrate your existing Front Door Classic
instances to the new Front Door Standard/Premium
product tiers. Manages an Azure Front Door (classic) instance. Azure Front Door Service is Microsoft's highly available and scalable web application acceleration platform and global HTTP(S) load balancer. It provides built-in DDoS protection and application layer security and caching. Front Door enables you to build applications that maximize and automate high-availability and performance for your end-users. Use Front Door with Azure services including Web/Mobile Apps, Cloud Services and Virtual Machines – or combine it with on-premises services for hybrid deployments and smooth cloud migration. Below are some of the key scenarios that Azure Front Door Service addresses:
Use Front Door to improve application scale and availability with instant multi-region failover
Use Front Door to improve application performance with SSL offload and routing requests to the fastest available application backend.
Use Front Door for application layer security and DDoS protection for your application.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "FrontDoorExampleResourceGroup",
location: "West Europe",
});
const exampleFrontdoor = new azure.frontdoor.Frontdoor("example", {
name: "example-FrontDoor",
resourceGroupName: example.name,
routingRules: [{
name: "exampleRoutingRule1",
acceptedProtocols: [
"Http",
"Https",
],
patternsToMatches: ["/*"],
frontendEndpoints: ["exampleFrontendEndpoint1"],
forwardingConfiguration: {
forwardingProtocol: "MatchRequest",
backendPoolName: "exampleBackendBing",
},
}],
backendPoolLoadBalancings: [{
name: "exampleLoadBalancingSettings1",
}],
backendPoolHealthProbes: [{
name: "exampleHealthProbeSetting1",
}],
backendPools: [{
name: "exampleBackendBing",
backends: [{
hostHeader: "www.bing.com",
address: "www.bing.com",
httpPort: 80,
httpsPort: 443,
}],
loadBalancingName: "exampleLoadBalancingSettings1",
healthProbeName: "exampleHealthProbeSetting1",
}],
frontendEndpoints: [{
name: "exampleFrontendEndpoint1",
hostName: "example-FrontDoor.azurefd.net",
}],
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="FrontDoorExampleResourceGroup",
location="West Europe")
example_frontdoor = azure.frontdoor.Frontdoor("example",
name="example-FrontDoor",
resource_group_name=example.name,
routing_rules=[{
"name": "exampleRoutingRule1",
"accepted_protocols": [
"Http",
"Https",
],
"patterns_to_matches": ["/*"],
"frontend_endpoints": ["exampleFrontendEndpoint1"],
"forwarding_configuration": {
"forwarding_protocol": "MatchRequest",
"backend_pool_name": "exampleBackendBing",
},
}],
backend_pool_load_balancings=[{
"name": "exampleLoadBalancingSettings1",
}],
backend_pool_health_probes=[{
"name": "exampleHealthProbeSetting1",
}],
backend_pools=[{
"name": "exampleBackendBing",
"backends": [{
"host_header": "www.bing.com",
"address": "www.bing.com",
"http_port": 80,
"https_port": 443,
}],
"load_balancing_name": "exampleLoadBalancingSettings1",
"health_probe_name": "exampleHealthProbeSetting1",
}],
frontend_endpoints=[{
"name": "exampleFrontendEndpoint1",
"host_name": "example-FrontDoor.azurefd.net",
}])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Azure = Pulumi.Azure;
return await Deployment.RunAsync(() =>
{
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "FrontDoorExampleResourceGroup",
Location = "West Europe",
});
var exampleFrontdoor = new Azure.FrontDoor.Frontdoor("example", new()
{
Name = "example-FrontDoor",
ResourceGroupName = example.Name,
RoutingRules = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorRoutingRuleArgs
{
Name = "exampleRoutingRule1",
AcceptedProtocols = new[]
{
"Http",
"Https",
},
PatternsToMatches = new[]
{
"/*",
},
FrontendEndpoints = new[]
{
"exampleFrontendEndpoint1",
},
ForwardingConfiguration = new Azure.FrontDoor.Inputs.FrontdoorRoutingRuleForwardingConfigurationArgs
{
ForwardingProtocol = "MatchRequest",
BackendPoolName = "exampleBackendBing",
},
},
},
BackendPoolLoadBalancings = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorBackendPoolLoadBalancingArgs
{
Name = "exampleLoadBalancingSettings1",
},
},
BackendPoolHealthProbes = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorBackendPoolHealthProbeArgs
{
Name = "exampleHealthProbeSetting1",
},
},
BackendPools = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorBackendPoolArgs
{
Name = "exampleBackendBing",
Backends = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorBackendPoolBackendArgs
{
HostHeader = "www.bing.com",
Address = "www.bing.com",
HttpPort = 80,
HttpsPort = 443,
},
},
LoadBalancingName = "exampleLoadBalancingSettings1",
HealthProbeName = "exampleHealthProbeSetting1",
},
},
FrontendEndpoints = new[]
{
new Azure.FrontDoor.Inputs.FrontdoorFrontendEndpointArgs
{
Name = "exampleFrontendEndpoint1",
HostName = "example-FrontDoor.azurefd.net",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/frontdoor"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("FrontDoorExampleResourceGroup"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
_, err = frontdoor.NewFrontdoor(ctx, "example", &frontdoor.FrontdoorArgs{
Name: pulumi.String("example-FrontDoor"),
ResourceGroupName: example.Name,
RoutingRules: frontdoor.FrontdoorRoutingRuleArray{
&frontdoor.FrontdoorRoutingRuleArgs{
Name: pulumi.String("exampleRoutingRule1"),
AcceptedProtocols: pulumi.StringArray{
pulumi.String("Http"),
pulumi.String("Https"),
},
PatternsToMatches: pulumi.StringArray{
pulumi.String("/*"),
},
FrontendEndpoints: pulumi.StringArray{
pulumi.String("exampleFrontendEndpoint1"),
},
ForwardingConfiguration: &frontdoor.FrontdoorRoutingRuleForwardingConfigurationArgs{
ForwardingProtocol: pulumi.String("MatchRequest"),
BackendPoolName: pulumi.String("exampleBackendBing"),
},
},
},
BackendPoolLoadBalancings: frontdoor.FrontdoorBackendPoolLoadBalancingArray{
&frontdoor.FrontdoorBackendPoolLoadBalancingArgs{
Name: pulumi.String("exampleLoadBalancingSettings1"),
},
},
BackendPoolHealthProbes: frontdoor.FrontdoorBackendPoolHealthProbeArray{
&frontdoor.FrontdoorBackendPoolHealthProbeArgs{
Name: pulumi.String("exampleHealthProbeSetting1"),
},
},
BackendPools: frontdoor.FrontdoorBackendPoolArray{
&frontdoor.FrontdoorBackendPoolArgs{
Name: pulumi.String("exampleBackendBing"),
Backends: frontdoor.FrontdoorBackendPoolBackendArray{
&frontdoor.FrontdoorBackendPoolBackendArgs{
HostHeader: pulumi.String("www.bing.com"),
Address: pulumi.String("www.bing.com"),
HttpPort: pulumi.Int(80),
HttpsPort: pulumi.Int(443),
},
},
LoadBalancingName: pulumi.String("exampleLoadBalancingSettings1"),
HealthProbeName: pulumi.String("exampleHealthProbeSetting1"),
},
},
FrontendEndpoints: frontdoor.FrontdoorFrontendEndpointArray{
&frontdoor.FrontdoorFrontendEndpointArgs{
Name: pulumi.String("exampleFrontendEndpoint1"),
HostName: pulumi.String("example-FrontDoor.azurefd.net"),
},
},
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.frontdoor.Frontdoor;
import com.pulumi.azure.frontdoor.FrontdoorArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorRoutingRuleArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorRoutingRuleForwardingConfigurationArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorBackendPoolLoadBalancingArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorBackendPoolHealthProbeArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorBackendPoolArgs;
import com.pulumi.azure.frontdoor.inputs.FrontdoorFrontendEndpointArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("FrontDoorExampleResourceGroup")
.location("West Europe")
.build());
var exampleFrontdoor = new Frontdoor("exampleFrontdoor", FrontdoorArgs.builder()
.name("example-FrontDoor")
.resourceGroupName(example.name())
.routingRules(FrontdoorRoutingRuleArgs.builder()
.name("exampleRoutingRule1")
.acceptedProtocols(
"Http",
"Https")
.patternsToMatches("/*")
.frontendEndpoints("exampleFrontendEndpoint1")
.forwardingConfiguration(FrontdoorRoutingRuleForwardingConfigurationArgs.builder()
.forwardingProtocol("MatchRequest")
.backendPoolName("exampleBackendBing")
.build())
.build())
.backendPoolLoadBalancings(FrontdoorBackendPoolLoadBalancingArgs.builder()
.name("exampleLoadBalancingSettings1")
.build())
.backendPoolHealthProbes(FrontdoorBackendPoolHealthProbeArgs.builder()
.name("exampleHealthProbeSetting1")
.build())
.backendPools(FrontdoorBackendPoolArgs.builder()
.name("exampleBackendBing")
.backends(FrontdoorBackendPoolBackendArgs.builder()
.hostHeader("www.bing.com")
.address("www.bing.com")
.httpPort(80)
.httpsPort(443)
.build())
.loadBalancingName("exampleLoadBalancingSettings1")
.healthProbeName("exampleHealthProbeSetting1")
.build())
.frontendEndpoints(FrontdoorFrontendEndpointArgs.builder()
.name("exampleFrontendEndpoint1")
.hostName("example-FrontDoor.azurefd.net")
.build())
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: FrontDoorExampleResourceGroup
location: West Europe
exampleFrontdoor:
type: azure:frontdoor:Frontdoor
name: example
properties:
name: example-FrontDoor
resourceGroupName: ${example.name}
routingRules:
- name: exampleRoutingRule1
acceptedProtocols:
- Http
- Https
patternsToMatches:
- /*
frontendEndpoints:
- exampleFrontendEndpoint1
forwardingConfiguration:
forwardingProtocol: MatchRequest
backendPoolName: exampleBackendBing
backendPoolLoadBalancings:
- name: exampleLoadBalancingSettings1
backendPoolHealthProbes:
- name: exampleHealthProbeSetting1
backendPools:
- name: exampleBackendBing
backends:
- hostHeader: www.bing.com
address: www.bing.com
httpPort: 80
httpsPort: 443
loadBalancingName: exampleLoadBalancingSettings1
healthProbeName: exampleHealthProbeSetting1
frontendEndpoints:
- name: exampleFrontendEndpoint1
hostName: example-FrontDoor.azurefd.net
Import
Front Doors can be imported using the resource id
, e.g.
$ pulumi import azure:frontdoor/frontdoor:Frontdoor example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/frontDoors/frontdoor1
Constructors
Properties
A backend_pool_health_probe
block as defined below.
A backend_pool_load_balancing
block as defined below.
A backend_pool
block as defined below.
A backend_pool_settings
block as defined below.
A friendly name for the Front Door service.
A frontend_endpoint
block as defined below.
Should the Front Door Load Balancer be Enabled? Defaults to true
.
Specifies the name of the Resource Group in which the Front Door service should exist. Changing this forces a new resource to be created.
A routing_rule
block as defined below.