Traffic Manager Nested Endpoint
Manages a Nested Endpoint within a Traffic Manager Profile.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const examplePublicIp = new azure.network.PublicIp("example", {
name: "example-publicip",
location: example.location,
resourceGroupName: example.name,
allocationMethod: "Static",
domainNameLabel: "example-pip",
});
const parent = new azure.network.TrafficManagerProfile("parent", {
name: "parent-profile",
resourceGroupName: example.name,
trafficRoutingMethod: "Weighted",
dnsConfig: {
relativeName: "parent-profile",
ttl: 100,
},
monitorConfig: {
protocol: "HTTP",
port: 80,
path: "/",
intervalInSeconds: 30,
timeoutInSeconds: 9,
toleratedNumberOfFailures: 3,
},
tags: {
environment: "Production",
},
});
const nested = new azure.network.TrafficManagerProfile("nested", {
name: "nested-profile",
resourceGroupName: example.name,
trafficRoutingMethod: "Priority",
dnsConfig: {
relativeName: "nested-profile",
ttl: 30,
},
monitorConfig: {
protocol: "HTTP",
port: 443,
path: "/",
},
});
const exampleTrafficManagerNestedEndpoint = new azure.network.TrafficManagerNestedEndpoint("example", {
name: "example-endpoint",
targetResourceId: nested.id,
priority: 1,
profileId: parent.id,
minimumChildEndpoints: 9,
weight: 5,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_public_ip = azure.network.PublicIp("example",
name="example-publicip",
location=example.location,
resource_group_name=example.name,
allocation_method="Static",
domain_name_label="example-pip")
parent = azure.network.TrafficManagerProfile("parent",
name="parent-profile",
resource_group_name=example.name,
traffic_routing_method="Weighted",
dns_config={
"relative_name": "parent-profile",
"ttl": 100,
},
monitor_config={
"protocol": "HTTP",
"port": 80,
"path": "/",
"interval_in_seconds": 30,
"timeout_in_seconds": 9,
"tolerated_number_of_failures": 3,
},
tags={
"environment": "Production",
})
nested = azure.network.TrafficManagerProfile("nested",
name="nested-profile",
resource_group_name=example.name,
traffic_routing_method="Priority",
dns_config={
"relative_name": "nested-profile",
"ttl": 30,
},
monitor_config={
"protocol": "HTTP",
"port": 443,
"path": "/",
})
example_traffic_manager_nested_endpoint = azure.network.TrafficManagerNestedEndpoint("example",
name="example-endpoint",
target_resource_id=nested.id,
priority=1,
profile_id=parent.id,
minimum_child_endpoints=9,
weight=5)
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 = "example-resources",
Location = "West Europe",
});
var examplePublicIp = new Azure.Network.PublicIp("example", new()
{
Name = "example-publicip",
Location = example.Location,
ResourceGroupName = example.Name,
AllocationMethod = "Static",
DomainNameLabel = "example-pip",
});
var parent = new Azure.Network.TrafficManagerProfile("parent", new()
{
Name = "parent-profile",
ResourceGroupName = example.Name,
TrafficRoutingMethod = "Weighted",
DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs
{
RelativeName = "parent-profile",
Ttl = 100,
},
MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs
{
Protocol = "HTTP",
Port = 80,
Path = "/",
IntervalInSeconds = 30,
TimeoutInSeconds = 9,
ToleratedNumberOfFailures = 3,
},
Tags =
{
{ "environment", "Production" },
},
});
var nested = new Azure.Network.TrafficManagerProfile("nested", new()
{
Name = "nested-profile",
ResourceGroupName = example.Name,
TrafficRoutingMethod = "Priority",
DnsConfig = new Azure.Network.Inputs.TrafficManagerProfileDnsConfigArgs
{
RelativeName = "nested-profile",
Ttl = 30,
},
MonitorConfig = new Azure.Network.Inputs.TrafficManagerProfileMonitorConfigArgs
{
Protocol = "HTTP",
Port = 443,
Path = "/",
},
});
var exampleTrafficManagerNestedEndpoint = new Azure.Network.TrafficManagerNestedEndpoint("example", new()
{
Name = "example-endpoint",
TargetResourceId = nested.Id,
Priority = 1,
ProfileId = parent.Id,
MinimumChildEndpoints = 9,
Weight = 5,
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/network"
"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("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
_, err = network.NewPublicIp(ctx, "example", &network.PublicIpArgs{
Name: pulumi.String("example-publicip"),
Location: example.Location,
ResourceGroupName: example.Name,
AllocationMethod: pulumi.String("Static"),
DomainNameLabel: pulumi.String("example-pip"),
})
if err != nil {
return err
}
parent, err := network.NewTrafficManagerProfile(ctx, "parent", &network.TrafficManagerProfileArgs{
Name: pulumi.String("parent-profile"),
ResourceGroupName: example.Name,
TrafficRoutingMethod: pulumi.String("Weighted"),
DnsConfig: &network.TrafficManagerProfileDnsConfigArgs{
RelativeName: pulumi.String("parent-profile"),
Ttl: pulumi.Int(100),
},
MonitorConfig: &network.TrafficManagerProfileMonitorConfigArgs{
Protocol: pulumi.String("HTTP"),
Port: pulumi.Int(80),
Path: pulumi.String("/"),
IntervalInSeconds: pulumi.Int(30),
TimeoutInSeconds: pulumi.Int(9),
ToleratedNumberOfFailures: pulumi.Int(3),
},
Tags: pulumi.StringMap{
"environment": pulumi.String("Production"),
},
})
if err != nil {
return err
}
nested, err := network.NewTrafficManagerProfile(ctx, "nested", &network.TrafficManagerProfileArgs{
Name: pulumi.String("nested-profile"),
ResourceGroupName: example.Name,
TrafficRoutingMethod: pulumi.String("Priority"),
DnsConfig: &network.TrafficManagerProfileDnsConfigArgs{
RelativeName: pulumi.String("nested-profile"),
Ttl: pulumi.Int(30),
},
MonitorConfig: &network.TrafficManagerProfileMonitorConfigArgs{
Protocol: pulumi.String("HTTP"),
Port: pulumi.Int(443),
Path: pulumi.String("/"),
},
})
if err != nil {
return err
}
_, err = network.NewTrafficManagerNestedEndpoint(ctx, "example", &network.TrafficManagerNestedEndpointArgs{
Name: pulumi.String("example-endpoint"),
TargetResourceId: nested.ID(),
Priority: pulumi.Int(1),
ProfileId: parent.ID(),
MinimumChildEndpoints: pulumi.Int(9),
Weight: pulumi.Int(5),
})
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.network.PublicIp;
import com.pulumi.azure.network.PublicIpArgs;
import com.pulumi.azure.network.TrafficManagerProfile;
import com.pulumi.azure.network.TrafficManagerProfileArgs;
import com.pulumi.azure.network.inputs.TrafficManagerProfileDnsConfigArgs;
import com.pulumi.azure.network.inputs.TrafficManagerProfileMonitorConfigArgs;
import com.pulumi.azure.network.TrafficManagerNestedEndpoint;
import com.pulumi.azure.network.TrafficManagerNestedEndpointArgs;
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("example-resources")
.location("West Europe")
.build());
var examplePublicIp = new PublicIp("examplePublicIp", PublicIpArgs.builder()
.name("example-publicip")
.location(example.location())
.resourceGroupName(example.name())
.allocationMethod("Static")
.domainNameLabel("example-pip")
.build());
var parent = new TrafficManagerProfile("parent", TrafficManagerProfileArgs.builder()
.name("parent-profile")
.resourceGroupName(example.name())
.trafficRoutingMethod("Weighted")
.dnsConfig(TrafficManagerProfileDnsConfigArgs.builder()
.relativeName("parent-profile")
.ttl(100)
.build())
.monitorConfig(TrafficManagerProfileMonitorConfigArgs.builder()
.protocol("HTTP")
.port(80)
.path("/")
.intervalInSeconds(30)
.timeoutInSeconds(9)
.toleratedNumberOfFailures(3)
.build())
.tags(Map.of("environment", "Production"))
.build());
var nested = new TrafficManagerProfile("nested", TrafficManagerProfileArgs.builder()
.name("nested-profile")
.resourceGroupName(example.name())
.trafficRoutingMethod("Priority")
.dnsConfig(TrafficManagerProfileDnsConfigArgs.builder()
.relativeName("nested-profile")
.ttl(30)
.build())
.monitorConfig(TrafficManagerProfileMonitorConfigArgs.builder()
.protocol("HTTP")
.port(443)
.path("/")
.build())
.build());
var exampleTrafficManagerNestedEndpoint = new TrafficManagerNestedEndpoint("exampleTrafficManagerNestedEndpoint", TrafficManagerNestedEndpointArgs.builder()
.name("example-endpoint")
.targetResourceId(nested.id())
.priority(1)
.profileId(parent.id())
.minimumChildEndpoints(9)
.weight(5)
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example-resources
location: West Europe
examplePublicIp:
type: azure:network:PublicIp
name: example
properties:
name: example-publicip
location: ${example.location}
resourceGroupName: ${example.name}
allocationMethod: Static
domainNameLabel: example-pip
parent:
type: azure:network:TrafficManagerProfile
properties:
name: parent-profile
resourceGroupName: ${example.name}
trafficRoutingMethod: Weighted
dnsConfig:
relativeName: parent-profile
ttl: 100
monitorConfig:
protocol: HTTP
port: 80
path: /
intervalInSeconds: 30
timeoutInSeconds: 9
toleratedNumberOfFailures: 3
tags:
environment: Production
nested:
type: azure:network:TrafficManagerProfile
properties:
name: nested-profile
resourceGroupName: ${example.name}
trafficRoutingMethod: Priority
dnsConfig:
relativeName: nested-profile
ttl: 30
monitorConfig:
protocol: HTTP
port: 443
path: /
exampleTrafficManagerNestedEndpoint:
type: azure:network:TrafficManagerNestedEndpoint
name: example
properties:
name: example-endpoint
targetResourceId: ${nested.id}
priority: 1
profileId: ${parent.id}
minimumChildEndpoints: 9
weight: 5
Import
Nested Endpoints can be imported using the resource id
, e.g.
$ pulumi import azure:network/trafficManagerNestedEndpoint:TrafficManagerNestedEndpoint example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-resources/providers/Microsoft.Network/trafficManagerProfiles/example-profile/NestedEndpoints/example-endpoint
Properties
One or more custom_header
blocks as defined below.
Specifies the Azure location of the Endpoint, this must be specified for Profiles using the Performance
routing method.
A list of Geographic Regions used to distribute traffic, such as WORLD
, UK
or DE
. The same location can't be specified in two endpoints. See the Geographic Hierarchies documentation for more information.
This argument specifies the minimum number of endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This value must be larger than 0
. ~>NOTE: If min_child_endpoints
is less than either minimum_required_child_endpoints_ipv4
or minimum_required_child_endpoints_ipv6
, then it won't have any effect.
This argument specifies the minimum number of IPv4 (DNS record type A) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type nestedEndpoints
and
This argument specifies the minimum number of IPv6 (DNS record type AAAA) endpoints that must be ‘online’ in the child profile in order for the parent profile to direct traffic to any of the endpoints in that child profile. This argument only applies to Endpoints of type nestedEndpoints
and
One or more subnet
blocks as defined below. Changing this forces a new resource to be created.
The resource id of an Azure resource to target.