ListenerArgs

data class ListenerArgs(val aclId: Output<String>? = null, val aclStatus: Output<String>? = null, val aclType: Output<String>? = null, val backendPort: Output<Int>? = null, val bandwidth: Output<Int>? = null, val caCertificateId: Output<String>? = null, val cookie: Output<String>? = null, val cookieTimeout: Output<Int>? = null, val deleteProtectionValidation: Output<Boolean>? = null, val description: Output<String>? = null, val enableHttp2: Output<String>? = null, val establishedTimeout: Output<Int>? = null, val forwardPort: Output<Int>? = null, val frontendPort: Output<Int>? = null, val gzip: Output<Boolean>? = null, val healthCheck: Output<String>? = null, val healthCheckConnectPort: Output<Int>? = null, val healthCheckDomain: Output<String>? = null, val healthCheckHttpCode: Output<String>? = null, val healthCheckInterval: Output<Int>? = null, val healthCheckMethod: Output<String>? = null, val healthCheckTimeout: Output<Int>? = null, val healthCheckType: Output<String>? = null, val healthCheckUri: Output<String>? = null, val healthyThreshold: Output<Int>? = null, val idleTimeout: Output<Int>? = null, val lbPort: Output<Int>? = null, val lbProtocol: Output<String>? = null, val listenerForward: Output<String>? = null, val loadBalancerId: Output<String>? = null, val masterSlaveServerGroupId: Output<String>? = null, val persistenceTimeout: Output<Int>? = null, val protocol: Output<String>? = null, val proxyProtocolV2Enabled: Output<Boolean>? = null, val requestTimeout: Output<Int>? = null, val scheduler: Output<String>? = null, val serverCertificateId: Output<String>? = null, val serverGroupId: Output<String>? = null, val sslCertificateId: Output<String>? = null, val stickySession: Output<String>? = null, val stickySessionType: Output<String>? = null, val tlsCipherPolicy: Output<String>? = null, val unhealthyThreshold: Output<Int>? = null, val xForwardedFor: Output<ListenerXForwardedForArgs>? = null) : ConvertibleToJava<ListenerArgs>

Provides a Classic Load Balancer (SLB) Load Balancer Listener resource. For information about Classic Load Balancer (SLB) and how to use it, see What is Classic Load Balancer. For information about listener and how to use it, please see the following:

NOTE: Available since v1.0.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const _default = new random.index.Integer("default", {
min: 10000,
max: 99999,
});
const listener = new alicloud.slb.ApplicationLoadBalancer("listener", {
loadBalancerName: `${name}-${_default.result}`,
internetChargeType: "PayByTraffic",
addressType: "internet",
instanceChargeType: "PayByCLCU",
});
const listenerAcl = new alicloud.slb.Acl("listener", {
name: `${name}-${_default.result}`,
ipVersion: "ipv4",
});
const listenerListener = new alicloud.slb.Listener("listener", {
loadBalancerId: listener.id,
backendPort: 80,
frontendPort: 80,
protocol: "http",
bandwidth: 10,
stickySession: "on",
stickySessionType: "insert",
cookieTimeout: 86400,
cookie: "tfslblistenercookie",
healthCheck: "on",
healthCheckDomain: "ali.com",
healthCheckUri: "/cons",
healthCheckConnectPort: 20,
healthyThreshold: 8,
unhealthyThreshold: 8,
healthCheckTimeout: 8,
healthCheckInterval: 5,
healthCheckHttpCode: "http_2xx,http_3xx",
xForwardedFor: {
retriveSlbIp: true,
retriveSlbId: true,
},
aclStatus: "on",
aclType: "white",
aclId: listenerAcl.id,
requestTimeout: 80,
idleTimeout: 30,
});
const first = new alicloud.slb.AclEntryAttachment("first", {
aclId: listenerAcl.id,
entry: "10.10.10.0/24",
comment: "first",
});
const second = new alicloud.slb.AclEntryAttachment("second", {
aclId: listenerAcl.id,
entry: "168.10.10.0/24",
comment: "second",
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
default = random.index.Integer("default",
min=10000,
max=99999)
listener = alicloud.slb.ApplicationLoadBalancer("listener",
load_balancer_name=f"{name}-{default['result']}",
internet_charge_type="PayByTraffic",
address_type="internet",
instance_charge_type="PayByCLCU")
listener_acl = alicloud.slb.Acl("listener",
name=f"{name}-{default['result']}",
ip_version="ipv4")
listener_listener = alicloud.slb.Listener("listener",
load_balancer_id=listener.id,
backend_port=80,
frontend_port=80,
protocol="http",
bandwidth=10,
sticky_session="on",
sticky_session_type="insert",
cookie_timeout=86400,
cookie="tfslblistenercookie",
health_check="on",
health_check_domain="ali.com",
health_check_uri="/cons",
health_check_connect_port=20,
healthy_threshold=8,
unhealthy_threshold=8,
health_check_timeout=8,
health_check_interval=5,
health_check_http_code="http_2xx,http_3xx",
x_forwarded_for={
"retrive_slb_ip": True,
"retrive_slb_id": True,
},
acl_status="on",
acl_type="white",
acl_id=listener_acl.id,
request_timeout=80,
idle_timeout=30)
first = alicloud.slb.AclEntryAttachment("first",
acl_id=listener_acl.id,
entry="10.10.10.0/24",
comment="first")
second = alicloud.slb.AclEntryAttachment("second",
acl_id=listener_acl.id,
entry="168.10.10.0/24",
comment="second")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var @default = new Random.Index.Integer("default", new()
{
Min = 10000,
Max = 99999,
});
var listener = new AliCloud.Slb.ApplicationLoadBalancer("listener", new()
{
LoadBalancerName = $"{name}-{@default.Result}",
InternetChargeType = "PayByTraffic",
AddressType = "internet",
InstanceChargeType = "PayByCLCU",
});
var listenerAcl = new AliCloud.Slb.Acl("listener", new()
{
Name = $"{name}-{@default.Result}",
IpVersion = "ipv4",
});
var listenerListener = new AliCloud.Slb.Listener("listener", new()
{
LoadBalancerId = listener.Id,
BackendPort = 80,
FrontendPort = 80,
Protocol = "http",
Bandwidth = 10,
StickySession = "on",
StickySessionType = "insert",
CookieTimeout = 86400,
Cookie = "tfslblistenercookie",
HealthCheck = "on",
HealthCheckDomain = "ali.com",
HealthCheckUri = "/cons",
HealthCheckConnectPort = 20,
HealthyThreshold = 8,
UnhealthyThreshold = 8,
HealthCheckTimeout = 8,
HealthCheckInterval = 5,
HealthCheckHttpCode = "http_2xx,http_3xx",
XForwardedFor = new AliCloud.Slb.Inputs.ListenerXForwardedForArgs
{
RetriveSlbIp = true,
RetriveSlbId = true,
},
AclStatus = "on",
AclType = "white",
AclId = listenerAcl.Id,
RequestTimeout = 80,
IdleTimeout = 30,
});
var first = new AliCloud.Slb.AclEntryAttachment("first", new()
{
AclId = listenerAcl.Id,
Entry = "10.10.10.0/24",
Comment = "first",
});
var second = new AliCloud.Slb.AclEntryAttachment("second", new()
{
AclId = listenerAcl.Id,
Entry = "168.10.10.0/24",
Comment = "second",
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/slb"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "tf-example"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Min: 10000,
Max: 99999,
})
if err != nil {
return err
}
listener, err := slb.NewApplicationLoadBalancer(ctx, "listener", &slb.ApplicationLoadBalancerArgs{
LoadBalancerName: pulumi.Sprintf("%v-%v", name, _default.Result),
InternetChargeType: pulumi.String("PayByTraffic"),
AddressType: pulumi.String("internet"),
InstanceChargeType: pulumi.String("PayByCLCU"),
})
if err != nil {
return err
}
listenerAcl, err := slb.NewAcl(ctx, "listener", &slb.AclArgs{
Name: pulumi.Sprintf("%v-%v", name, _default.Result),
IpVersion: pulumi.String("ipv4"),
})
if err != nil {
return err
}
_, err = slb.NewListener(ctx, "listener", &slb.ListenerArgs{
LoadBalancerId: listener.ID(),
BackendPort: pulumi.Int(80),
FrontendPort: pulumi.Int(80),
Protocol: pulumi.String("http"),
Bandwidth: pulumi.Int(10),
StickySession: pulumi.String("on"),
StickySessionType: pulumi.String("insert"),
CookieTimeout: pulumi.Int(86400),
Cookie: pulumi.String("tfslblistenercookie"),
HealthCheck: pulumi.String("on"),
HealthCheckDomain: pulumi.String("ali.com"),
HealthCheckUri: pulumi.String("/cons"),
HealthCheckConnectPort: pulumi.Int(20),
HealthyThreshold: pulumi.Int(8),
UnhealthyThreshold: pulumi.Int(8),
HealthCheckTimeout: pulumi.Int(8),
HealthCheckInterval: pulumi.Int(5),
HealthCheckHttpCode: pulumi.String("http_2xx,http_3xx"),
XForwardedFor: &slb.ListenerXForwardedForArgs{
RetriveSlbIp: pulumi.Bool(true),
RetriveSlbId: pulumi.Bool(true),
},
AclStatus: pulumi.String("on"),
AclType: pulumi.String("white"),
AclId: listenerAcl.ID(),
RequestTimeout: pulumi.Int(80),
IdleTimeout: pulumi.Int(30),
})
if err != nil {
return err
}
_, err = slb.NewAclEntryAttachment(ctx, "first", &slb.AclEntryAttachmentArgs{
AclId: listenerAcl.ID(),
Entry: pulumi.String("10.10.10.0/24"),
Comment: pulumi.String("first"),
})
if err != nil {
return err
}
_, err = slb.NewAclEntryAttachment(ctx, "second", &slb.AclEntryAttachmentArgs{
AclId: listenerAcl.ID(),
Entry: pulumi.String("168.10.10.0/24"),
Comment: pulumi.String("second"),
})
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.random.integer;
import com.pulumi.random.IntegerArgs;
import com.pulumi.alicloud.slb.ApplicationLoadBalancer;
import com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;
import com.pulumi.alicloud.slb.Acl;
import com.pulumi.alicloud.slb.AclArgs;
import com.pulumi.alicloud.slb.Listener;
import com.pulumi.alicloud.slb.ListenerArgs;
import com.pulumi.alicloud.slb.inputs.ListenerXForwardedForArgs;
import com.pulumi.alicloud.slb.AclEntryAttachment;
import com.pulumi.alicloud.slb.AclEntryAttachmentArgs;
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");
var default_ = new Integer("default", IntegerArgs.builder()
.min(10000)
.max(99999)
.build());
var listener = new ApplicationLoadBalancer("listener", ApplicationLoadBalancerArgs.builder()
.loadBalancerName(String.format("%s-%s", name,default_.result()))
.internetChargeType("PayByTraffic")
.addressType("internet")
.instanceChargeType("PayByCLCU")
.build());
var listenerAcl = new Acl("listenerAcl", AclArgs.builder()
.name(String.format("%s-%s", name,default_.result()))
.ipVersion("ipv4")
.build());
var listenerListener = new Listener("listenerListener", ListenerArgs.builder()
.loadBalancerId(listener.id())
.backendPort(80)
.frontendPort(80)
.protocol("http")
.bandwidth(10)
.stickySession("on")
.stickySessionType("insert")
.cookieTimeout(86400)
.cookie("tfslblistenercookie")
.healthCheck("on")
.healthCheckDomain("ali.com")
.healthCheckUri("/cons")
.healthCheckConnectPort(20)
.healthyThreshold(8)
.unhealthyThreshold(8)
.healthCheckTimeout(8)
.healthCheckInterval(5)
.healthCheckHttpCode("http_2xx,http_3xx")
.xForwardedFor(ListenerXForwardedForArgs.builder()
.retriveSlbIp(true)
.retriveSlbId(true)
.build())
.aclStatus("on")
.aclType("white")
.aclId(listenerAcl.id())
.requestTimeout(80)
.idleTimeout(30)
.build());
var first = new AclEntryAttachment("first", AclEntryAttachmentArgs.builder()
.aclId(listenerAcl.id())
.entry("10.10.10.0/24")
.comment("first")
.build());
var second = new AclEntryAttachment("second", AclEntryAttachmentArgs.builder()
.aclId(listenerAcl.id())
.entry("168.10.10.0/24")
.comment("second")
.build());
}
}
configuration:
name:
type: string
default: tf-example
resources:
default:
type: random:integer
properties:
min: 10000
max: 99999
listener:
type: alicloud:slb:ApplicationLoadBalancer
properties:
loadBalancerName: ${name}-${default.result}
internetChargeType: PayByTraffic
addressType: internet
instanceChargeType: PayByCLCU
listenerListener:
type: alicloud:slb:Listener
name: listener
properties:
loadBalancerId: ${listener.id}
backendPort: 80
frontendPort: 80
protocol: http
bandwidth: 10
stickySession: on
stickySessionType: insert
cookieTimeout: 86400
cookie: tfslblistenercookie
healthCheck: on
healthCheckDomain: ali.com
healthCheckUri: /cons
healthCheckConnectPort: 20
healthyThreshold: 8
unhealthyThreshold: 8
healthCheckTimeout: 8
healthCheckInterval: 5
healthCheckHttpCode: http_2xx,http_3xx
xForwardedFor:
retriveSlbIp: true
retriveSlbId: true
aclStatus: on
aclType: white
aclId: ${listenerAcl.id}
requestTimeout: 80
idleTimeout: 30
listenerAcl:
type: alicloud:slb:Acl
name: listener
properties:
name: ${name}-${default.result}
ipVersion: ipv4
first:
type: alicloud:slb:AclEntryAttachment
properties:
aclId: ${listenerAcl.id}
entry: 10.10.10.0/24
comment: first
second:
type: alicloud:slb:AclEntryAttachment
properties:
aclId: ${listenerAcl.id}
entry: 168.10.10.0/24
comment: second

Import

Classic Load Balancer (SLB) Load Balancer Listener can be imported using the id, e.g.

$ pulumi import alicloud:slb/listener:Listener example <load_balancer_id>:<protocol>:<frontend_port>
$ pulumi import alicloud:slb/listener:Listener example <load_balancer_id>:<frontend_port>

Constructors

Link copied to clipboard
constructor(aclId: Output<String>? = null, aclStatus: Output<String>? = null, aclType: Output<String>? = null, backendPort: Output<Int>? = null, bandwidth: Output<Int>? = null, caCertificateId: Output<String>? = null, cookie: Output<String>? = null, cookieTimeout: Output<Int>? = null, deleteProtectionValidation: Output<Boolean>? = null, description: Output<String>? = null, enableHttp2: Output<String>? = null, establishedTimeout: Output<Int>? = null, forwardPort: Output<Int>? = null, frontendPort: Output<Int>? = null, gzip: Output<Boolean>? = null, healthCheck: Output<String>? = null, healthCheckConnectPort: Output<Int>? = null, healthCheckDomain: Output<String>? = null, healthCheckHttpCode: Output<String>? = null, healthCheckInterval: Output<Int>? = null, healthCheckMethod: Output<String>? = null, healthCheckTimeout: Output<Int>? = null, healthCheckType: Output<String>? = null, healthCheckUri: Output<String>? = null, healthyThreshold: Output<Int>? = null, idleTimeout: Output<Int>? = null, lbPort: Output<Int>? = null, lbProtocol: Output<String>? = null, listenerForward: Output<String>? = null, loadBalancerId: Output<String>? = null, masterSlaveServerGroupId: Output<String>? = null, persistenceTimeout: Output<Int>? = null, protocol: Output<String>? = null, proxyProtocolV2Enabled: Output<Boolean>? = null, requestTimeout: Output<Int>? = null, scheduler: Output<String>? = null, serverCertificateId: Output<String>? = null, serverGroupId: Output<String>? = null, sslCertificateId: Output<String>? = null, stickySession: Output<String>? = null, stickySessionType: Output<String>? = null, tlsCipherPolicy: Output<String>? = null, unhealthyThreshold: Output<Int>? = null, xForwardedFor: Output<ListenerXForwardedForArgs>? = null)

Properties

Link copied to clipboard
val aclId: Output<String>? = null
Link copied to clipboard
val aclStatus: Output<String>? = null
Link copied to clipboard
val aclType: Output<String>? = null
Link copied to clipboard
val backendPort: Output<Int>? = null
Link copied to clipboard
val bandwidth: Output<Int>? = null
Link copied to clipboard
val caCertificateId: Output<String>? = null
Link copied to clipboard
val cookie: Output<String>? = null
Link copied to clipboard
val cookieTimeout: Output<Int>? = null
Link copied to clipboard
val deleteProtectionValidation: Output<Boolean>? = null
Link copied to clipboard
val description: Output<String>? = null
Link copied to clipboard
val enableHttp2: Output<String>? = null
Link copied to clipboard
val establishedTimeout: Output<Int>? = null
Link copied to clipboard
val forwardPort: Output<Int>? = null
Link copied to clipboard
val frontendPort: Output<Int>? = null
Link copied to clipboard
val gzip: Output<Boolean>? = null
Link copied to clipboard
val healthCheck: Output<String>? = null
Link copied to clipboard
val healthCheckConnectPort: Output<Int>? = null
Link copied to clipboard
val healthCheckDomain: Output<String>? = null
Link copied to clipboard
val healthCheckHttpCode: Output<String>? = null
Link copied to clipboard
val healthCheckInterval: Output<Int>? = null
Link copied to clipboard
val healthCheckMethod: Output<String>? = null
Link copied to clipboard
val healthCheckTimeout: Output<Int>? = null
Link copied to clipboard
val healthCheckType: Output<String>? = null
Link copied to clipboard
val healthCheckUri: Output<String>? = null
Link copied to clipboard
val healthyThreshold: Output<Int>? = null
Link copied to clipboard
val idleTimeout: Output<Int>? = null
Link copied to clipboard
val lbPort: Output<Int>? = null
Link copied to clipboard
val lbProtocol: Output<String>? = null
Link copied to clipboard
val listenerForward: Output<String>? = null
Link copied to clipboard
val loadBalancerId: Output<String>? = null
Link copied to clipboard
val masterSlaveServerGroupId: Output<String>? = null
Link copied to clipboard
val persistenceTimeout: Output<Int>? = null
Link copied to clipboard
val protocol: Output<String>? = null
Link copied to clipboard
val proxyProtocolV2Enabled: Output<Boolean>? = null
Link copied to clipboard
val requestTimeout: Output<Int>? = null
Link copied to clipboard
val scheduler: Output<String>? = null
Link copied to clipboard
val serverCertificateId: Output<String>? = null
Link copied to clipboard
val serverGroupId: Output<String>? = null
Link copied to clipboard
val sslCertificateId: Output<String>? = null
Link copied to clipboard
val stickySession: Output<String>? = null
Link copied to clipboard
val stickySessionType: Output<String>? = null
Link copied to clipboard
val tlsCipherPolicy: Output<String>? = null
Link copied to clipboard
val unhealthyThreshold: Output<Int>? = null
Link copied to clipboard

Whether to set additional HTTP Header field "X-Forwarded-For".

Functions

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