ForwardingRuleArgs

data class ForwardingRuleArgs(val acceleratorId: Output<String>? = null, val forwardingRuleName: Output<String>? = null, val listenerId: Output<String>? = null, val priority: Output<Int>? = null, val ruleActions: Output<List<ForwardingRuleRuleActionArgs>>? = null, val ruleConditions: Output<List<ForwardingRuleRuleConditionArgs>>? = null) : ConvertibleToJava<ForwardingRuleArgs>

Provides a Global Accelerator (GA) Forwarding Rule resource. For information about Global Accelerator (GA) Forwarding Rule and how to use it, see What is Forwarding Rule.

NOTE: Available since v1.120.0.

Example Usage

Basic Usage

package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.AlicloudFunctions;
import com.pulumi.alicloud.inputs.GetRegionsArgs;
import com.pulumi.alicloud.ga.Accelerator;
import com.pulumi.alicloud.ga.AcceleratorArgs;
import com.pulumi.alicloud.ga.BandwidthPackage;
import com.pulumi.alicloud.ga.BandwidthPackageArgs;
import com.pulumi.alicloud.ga.BandwidthPackageAttachment;
import com.pulumi.alicloud.ga.BandwidthPackageAttachmentArgs;
import com.pulumi.alicloud.ga.Listener;
import com.pulumi.alicloud.ga.ListenerArgs;
import com.pulumi.alicloud.ga.inputs.ListenerPortRangeArgs;
import com.pulumi.alicloud.ecs.EipAddress;
import com.pulumi.alicloud.ecs.EipAddressArgs;
import com.pulumi.alicloud.ga.EndpointGroup;
import com.pulumi.alicloud.ga.EndpointGroupArgs;
import com.pulumi.alicloud.ga.inputs.EndpointGroupEndpointConfigurationArgs;
import com.pulumi.alicloud.ga.inputs.EndpointGroupPortOverridesArgs;
import com.pulumi.alicloud.ga.ForwardingRule;
import com.pulumi.alicloud.ga.ForwardingRuleArgs;
import com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleConditionArgs;
import com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleConditionPathConfigArgs;
import com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleActionArgs;
import com.pulumi.alicloud.ga.inputs.ForwardingRuleRuleActionForwardGroupConfigArgs;
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) {
final var config = ctx.config();
final var region = config.get("region").orElse("cn-hangzhou");
final var name = config.get("name").orElse("tf-example");
final var default = AlicloudFunctions.getRegions(GetRegionsArgs.builder()
.current(true)
.build());
var exampleAccelerator = new Accelerator("exampleAccelerator", AcceleratorArgs.builder()
.duration(3)
.spec("2")
.acceleratorName(name)
.autoUseCoupon(false)
.description(name)
.autoRenewDuration("2")
.renewalStatus("AutoRenewal")
.build());
var exampleBandwidthPackage = new BandwidthPackage("exampleBandwidthPackage", BandwidthPackageArgs.builder()
.type("Basic")
.bandwidth(20)
.bandwidthType("Basic")
.duration(1)
.autoPay(true)
.paymentType("Subscription")
.autoUseCoupon(false)
.bandwidthPackageName(name)
.description(name)
.build());
var exampleBandwidthPackageAttachment = new BandwidthPackageAttachment("exampleBandwidthPackageAttachment", BandwidthPackageAttachmentArgs.builder()
.acceleratorId(exampleAccelerator.id())
.bandwidthPackageId(exampleBandwidthPackage.id())
.build());
var exampleListener = new Listener("exampleListener", ListenerArgs.builder()
.acceleratorId(exampleBandwidthPackageAttachment.acceleratorId())
.clientAffinity("SOURCE_IP")
.description(name)
.protocol("HTTP")
.proxyProtocol(true)
.portRanges(ListenerPortRangeArgs.builder()
.fromPort(60)
.toPort(60)
.build())
.build());
var exampleEipAddress = new EipAddress("exampleEipAddress", EipAddressArgs.builder()
.bandwidth("10")
.internetChargeType("PayByBandwidth")
.build());
var virtual = new EndpointGroup("virtual", EndpointGroupArgs.builder()
.acceleratorId(exampleAccelerator.id())
.endpointConfigurations(EndpointGroupEndpointConfigurationArgs.builder()
.endpoint(exampleEipAddress.ipAddress())
.type("PublicIp")
.weight("20")
.enableClientipPreservation(true)
.build())
.endpointGroupRegion(default_.regions()[0].id())
.listenerId(exampleListener.id())
.description(name)
.endpointGroupType("virtual")
.endpointRequestProtocol("HTTPS")
.healthCheckIntervalSeconds(4)
.healthCheckPath("/path")
.thresholdCount(4)
.trafficPercentage(20)
.portOverrides(EndpointGroupPortOverridesArgs.builder()
.endpointPort(80)
.listenerPort(60)
.build())
.build());
var exampleForwardingRule = new ForwardingRule("exampleForwardingRule", ForwardingRuleArgs.builder()
.acceleratorId(exampleAccelerator.id())
.listenerId(exampleListener.id())
.ruleConditions(
ForwardingRuleRuleConditionArgs.builder()
.ruleConditionType("Path")
.pathConfig(ForwardingRuleRuleConditionPathConfigArgs.builder()
.values("/testpathconfig")
.build())
.build(),
ForwardingRuleRuleConditionArgs.builder()
.ruleConditionType("Host")
.hostConfigs(ForwardingRuleRuleConditionHostConfigArgs.builder()
.values("www.test.com")
.build())
.build())
.ruleActions(ForwardingRuleRuleActionArgs.builder()
.order("40")
.ruleActionType("ForwardGroup")
.forwardGroupConfig(ForwardingRuleRuleActionForwardGroupConfigArgs.builder()
.serverGroupTuples(ForwardingRuleRuleActionForwardGroupConfigServerGroupTupleArgs.builder()
.endpointGroupId(virtual.id())
.build())
.build())
.build())
.priority(2)
.forwardingRuleName(name)
.build());
}
}

Import

Ga Forwarding Rule can be imported using the id, e.g.

$ pulumi import alicloud:ga/forwardingRule:ForwardingRule example <accelerator_id>:<listener_id>:<forwarding_rule_id>

Constructors

Link copied to clipboard
fun ForwardingRuleArgs(acceleratorId: Output<String>? = null, forwardingRuleName: Output<String>? = null, listenerId: Output<String>? = null, priority: Output<Int>? = null, ruleActions: Output<List<ForwardingRuleRuleActionArgs>>? = null, ruleConditions: Output<List<ForwardingRuleRuleConditionArgs>>? = null)

Functions

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

Properties

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

The ID of the Global Accelerator instance.

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

Forwarding policy name. The length of the name is 2-128 English or Chinese characters. It must start with uppercase and lowercase letters or Chinese characters. It can contain numbers, half width period (.), underscores (_) And dash (-).

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

The ID of the listener.

Link copied to clipboard
val priority: Output<Int>? = null

Forwarding policy priority.

Link copied to clipboard

Forward action. See rule_actions below.

Link copied to clipboard

Forwarding condition list. See rule_conditions below.