ListenerArgs

data class ListenerArgs(val alpnEnabled: Output<Boolean>? = null, val alpnPolicy: Output<String>? = null, val caCertificateIds: Output<List<String>>? = null, val caEnabled: Output<Boolean>? = null, val certificateIds: Output<List<String>>? = null, val cps: Output<Int>? = null, val endPort: Output<Int>? = null, val idleTimeout: Output<Int>? = null, val listenerDescription: Output<String>? = null, val listenerPort: Output<Int>? = null, val listenerProtocol: Output<String>? = null, val loadBalancerId: Output<String>? = null, val mss: Output<Int>? = null, val proxyProtocolEnabled: Output<Boolean>? = null, val secSensorEnabled: Output<Boolean>? = null, val securityPolicyId: Output<String>? = null, val serverGroupId: Output<String>? = null, val startPort: Output<Int>? = null, val status: Output<String>? = null) : ConvertibleToJava<ListenerArgs>

Provides a NLB Listener resource. For information about NLB Listener and how to use it, see What is Listener.

NOTE: Available since v1.191.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.resourcemanager.ResourcemanagerFunctions;
import com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;
import com.pulumi.alicloud.nlb.NlbFunctions;
import com.pulumi.alicloud.nlb.inputs.GetZonesArgs;
import com.pulumi.alicloud.vpc.Network;
import com.pulumi.alicloud.vpc.NetworkArgs;
import com.pulumi.alicloud.vpc.Switch;
import com.pulumi.alicloud.vpc.SwitchArgs;
import com.pulumi.alicloud.ecs.SecurityGroup;
import com.pulumi.alicloud.ecs.SecurityGroupArgs;
import com.pulumi.alicloud.nlb.LoadBalancer;
import com.pulumi.alicloud.nlb.LoadBalancerArgs;
import com.pulumi.alicloud.nlb.inputs.LoadBalancerZoneMappingArgs;
import com.pulumi.alicloud.nlb.ServerGroup;
import com.pulumi.alicloud.nlb.ServerGroupArgs;
import com.pulumi.alicloud.nlb.inputs.ServerGroupHealthCheckArgs;
import com.pulumi.alicloud.nlb.Listener;
import com.pulumi.alicloud.nlb.ListenerArgs;
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 name = config.get("name").orElse("tf-example");
final var defaultResourceGroups = ResourcemanagerFunctions.getResourceGroups();
final var defaultZones = NlbFunctions.getZones();
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("10.4.0.0/16")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("10.4.0.0/24")
.vpcId(defaultNetwork.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build());
var default1 = new Switch("default1", SwitchArgs.builder()
.vswitchName(name)
.cidrBlock("10.4.1.0/24")
.vpcId(defaultNetwork.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[1].id()))
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.vpcId(defaultNetwork.id())
.build());
var defaultLoadBalancer = new LoadBalancer("defaultLoadBalancer", LoadBalancerArgs.builder()
.loadBalancerName(name)
.resourceGroupId(defaultResourceGroups.applyValue(getResourceGroupsResult -> getResourceGroupsResult.ids()[0]))
.loadBalancerType("Network")
.addressType("Internet")
.addressIpVersion("Ipv4")
.vpcId(defaultNetwork.id())
.tags(Map.ofEntries(
Map.entry("Created", "TF"),
Map.entry("For", "example")
))
.zoneMappings(
LoadBalancerZoneMappingArgs.builder()
.vswitchId(defaultSwitch.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build(),
LoadBalancerZoneMappingArgs.builder()
.vswitchId(default1.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[1].id()))
.build())
.build());
var defaultServerGroup = new ServerGroup("defaultServerGroup", ServerGroupArgs.builder()
.resourceGroupId(defaultResourceGroups.applyValue(getResourceGroupsResult -> getResourceGroupsResult.ids()[0]))
.serverGroupName(name)
.serverGroupType("Instance")
.vpcId(defaultNetwork.id())
.scheduler("Wrr")
.protocol("TCP")
.connectionDrain(true)
.connectionDrainTimeout(60)
.addressIpVersion("Ipv4")
.healthCheck(ServerGroupHealthCheckArgs.builder()
.healthCheckEnabled(true)
.healthCheckType("TCP")
.healthCheckConnectPort(0)
.healthyThreshold(2)
.unhealthyThreshold(2)
.healthCheckConnectTimeout(5)
.healthCheckInterval(10)
.httpCheckMethod("GET")
.healthCheckHttpCodes(
"http_2xx",
"http_3xx",
"http_4xx")
.build())
.tags(Map.ofEntries(
Map.entry("Created", "TF"),
Map.entry("For", "example")
))
.build());
var defaultListener = new Listener("defaultListener", ListenerArgs.builder()
.listenerProtocol("TCP")
.listenerPort("80")
.listenerDescription(name)
.loadBalancerId(defaultLoadBalancer.id())
.serverGroupId(defaultServerGroup.id())
.idleTimeout("900")
.proxyProtocolEnabled("true")
.secSensorEnabled("true")
.cps("10000")
.mss("0")
.build());
}
}

Import

NLB Listener can be imported using the id, e.g.

$ pulumi import alicloud:nlb/listener:Listener example <id>

Constructors

Link copied to clipboard
fun ListenerArgs(alpnEnabled: Output<Boolean>? = null, alpnPolicy: Output<String>? = null, caCertificateIds: Output<List<String>>? = null, caEnabled: Output<Boolean>? = null, certificateIds: Output<List<String>>? = null, cps: Output<Int>? = null, endPort: Output<Int>? = null, idleTimeout: Output<Int>? = null, listenerDescription: Output<String>? = null, listenerPort: Output<Int>? = null, listenerProtocol: Output<String>? = null, loadBalancerId: Output<String>? = null, mss: Output<Int>? = null, proxyProtocolEnabled: Output<Boolean>? = null, secSensorEnabled: Output<Boolean>? = null, securityPolicyId: Output<String>? = null, serverGroupId: Output<String>? = null, startPort: Output<Int>? = null, status: Output<String>? = null)

Functions

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

Properties

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

Specifies whether to enable Application-Layer Protocol Negotiation (ALPN).

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

The ALPN policy.

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

The list of certificate authority (CA) certificates. This parameter takes effect only for listeners that use SSL over TCP. Note: Only one CA certificate is supported.

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

Specifies whether to enable mutual authentication.

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

The list of server certificates. This parameter takes effect only for listeners that use SSL over TCP. Note: Only one server certificate is supported.

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

The maximum number of connections that can be created per second on the NLB instance. Valid values: 0 to 1000000. 0 specifies that the number of connections is unlimited.

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

Full port listening end port. Valid values: 0 ~ 65535. The value of the end port is less than the start port.

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

The timeout period of an idle connection. Unit: seconds. Valid values: 1 to 900. Default value: 900.

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

Custom listener name. The length is limited to 2 to 256 characters, supports Chinese and English letters, and can include numbers, commas (,), half-width periods (.), half-width semicolons (;), forward slashes (/), at(@), underscores (_), and dashes (-).

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

Listening port. Valid values: 0 ~ 65535. 0: indicates that full port listening is used. When set to 0, you must configure StartPort and EndPort.

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

The listening protocol. Valid values: TCP, UDP, or TCPSSL.

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

The ID of the network-based server load balancer instance.

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

The maximum size of a TCP segment. Unit: bytes. Valid values: 0 to 1500. 0 specifies that the maximum segment size remains unchanged. Note: This parameter is supported only by listeners that use SSL over TCP.

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

Specifies whether to use the Proxy protocol to pass client IP addresses to backend servers.

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

Specifies whether to enable fine-grained monitoring.

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

The ID of the security policy. System security policies and custom security policies are supported. System security policies valid values: tls_cipher_policy_1_0 (default), tls_cipher_policy_1_1, tls_cipher_policy_1_2, tls_cipher_policy_1_2_strict, and tls_cipher_policy_1_2_strict_with_1_3. Custom security policies can be created by resource alicloud.nlb.SecurityPolicy.

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

The ID of the server group.

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

Full Port listens to the starting port. Valid values: 0 ~ 65535.

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

The status of the resource. Valid values: Running, Stopped.