FrontdoorArgs

data class FrontdoorArgs(val backendPoolHealthProbes: Output<List<FrontdoorBackendPoolHealthProbeArgs>>? = null, val backendPoolLoadBalancings: Output<List<FrontdoorBackendPoolLoadBalancingArgs>>? = null, val backendPoolSettings: Output<List<FrontdoorBackendPoolSettingArgs>>? = null, val backendPools: Output<List<FrontdoorBackendPoolArgs>>? = null, val friendlyName: Output<String>? = null, val frontendEndpoints: Output<List<FrontdoorFrontendEndpointArgs>>? = null, val loadBalancerEnabled: Output<Boolean>? = null, val name: Output<String>? = null, val resourceGroupName: Output<String>? = null, val routingRules: Output<List<FrontdoorRoutingRuleArgs>>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<FrontdoorArgs>

!>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

Link copied to clipboard
constructor(backendPoolHealthProbes: Output<List<FrontdoorBackendPoolHealthProbeArgs>>? = null, backendPoolLoadBalancings: Output<List<FrontdoorBackendPoolLoadBalancingArgs>>? = null, backendPoolSettings: Output<List<FrontdoorBackendPoolSettingArgs>>? = null, backendPools: Output<List<FrontdoorBackendPoolArgs>>? = null, friendlyName: Output<String>? = null, frontendEndpoints: Output<List<FrontdoorFrontendEndpointArgs>>? = null, loadBalancerEnabled: Output<Boolean>? = null, name: Output<String>? = null, resourceGroupName: Output<String>? = null, routingRules: Output<List<FrontdoorRoutingRuleArgs>>? = null, tags: Output<Map<String, String>>? = null)

Properties

Link copied to clipboard

A backend_pool_health_probe block as defined below.

Link copied to clipboard

A backend_pool_load_balancing block as defined below.

Link copied to clipboard

A backend_pool block as defined below.

Link copied to clipboard

A backend_pool_settings block as defined below.

Link copied to clipboard
val friendlyName: Output<String>? = null

A friendly name for the Front Door service.

Link copied to clipboard

A frontend_endpoint block as defined below.

Link copied to clipboard
val loadBalancerEnabled: Output<Boolean>? = null

Should the Front Door Load Balancer be Enabled? Defaults to true.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name of the Front Door service. Must be globally unique. Changing this forces a new resource to be created.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

Specifies the name of the Resource Group in which the Front Door service should exist. Changing this forces a new resource to be created.

Link copied to clipboard

A routing_rule block as defined below.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource. //////

Functions

Link copied to clipboard
open override fun toJava(): FrontdoorArgs