Listener

class Listener : KotlinCustomResource

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>

Properties

Link copied to clipboard
val alpnEnabled: Output<Boolean>

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

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

The ALPN policy.

Link copied to clipboard

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>

Specifies whether to enable mutual authentication.

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

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

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

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 id: Output<String>
Link copied to clipboard
val idleTimeout: Output<Int>

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

Link copied to clipboard

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>

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

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

Link copied to clipboard
val loadBalancerId: Output<String>

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

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

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

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

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Specifies whether to enable fine-grained monitoring.

Link copied to clipboard

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>

The ID of the server group.

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

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

Link copied to clipboard
val status: Output<String>

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

Link copied to clipboard
val urn: Output<String>