get Master Slave Server Groups
suspend fun getMasterSlaveServerGroups(argument: GetMasterSlaveServerGroupsPlainArgs): GetMasterSlaveServerGroupsResult
This data source provides the master slave server groups related to a server load balancer.
NOTE: Available in 1.54.0+
Example 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.GetZonesArgs;
import com.pulumi.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetInstanceTypesArgs;
import com.pulumi.alicloud.ecs.inputs.GetImagesArgs;
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.ecs.Instance;
import com.pulumi.alicloud.ecs.InstanceArgs;
import com.pulumi.alicloud.slb.ApplicationLoadBalancer;
import com.pulumi.alicloud.slb.ApplicationLoadBalancerArgs;
import com.pulumi.alicloud.slb.MasterSlaveServerGroup;
import com.pulumi.alicloud.slb.MasterSlaveServerGroupArgs;
import com.pulumi.alicloud.slb.inputs.MasterSlaveServerGroupServerArgs;
import com.pulumi.alicloud.slb.SlbFunctions;
import com.pulumi.alicloud.slb.inputs.GetMasterSlaveServerGroupsArgs;
import com.pulumi.codegen.internal.KeyedValue;
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 defaultZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableDiskCategory("cloud_efficiency")
.availableResourceCreation("VSwitch")
.build());
final var defaultInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.availabilityZone(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.eniAmount(2)
.build());
final var image = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_18.*64")
.mostRecent(true)
.owners("system")
.build());
final var name = config.get("name").orElse("tf-testAccSlbMasterSlaveServerGroupVpc");
final var number = config.get("number").orElse("1");
var mainNetwork = new Network("mainNetwork", NetworkArgs.builder()
.cidrBlock("172.16.0.0/16")
.build());
var mainSwitch = new Switch("mainSwitch", SwitchArgs.builder()
.vpcId(mainNetwork.id())
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.vswitchName(name)
.cidrBlock("172.16.0.0/16")
.build());
var groupSecurityGroup = new SecurityGroup("groupSecurityGroup", SecurityGroupArgs.builder()
.vpcId(mainNetwork.id())
.build());
for (var i = 0; i < "2"; i++) {
new Instance("instanceInstance-" + i, InstanceArgs.builder()
.imageId(image.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType(defaultInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.instanceName(name)
.securityGroups(groupSecurityGroup.id())
.internetChargeType("PayByTraffic")
.internetMaxBandwidthOut("10")
.availabilityZone(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.instanceChargeType("PostPaid")
.systemDiskCategory("cloud_efficiency")
.vswitchId(mainSwitch.id())
.build());
}
var instanceApplicationLoadBalancer = new ApplicationLoadBalancer("instanceApplicationLoadBalancer", ApplicationLoadBalancerArgs.builder()
.loadBalancerName(name)
.vswitchId(mainSwitch.id())
.loadBalancerSpec("slb.s2.small")
.build());
var groupMasterSlaveServerGroup = new MasterSlaveServerGroup("groupMasterSlaveServerGroup", MasterSlaveServerGroupArgs.builder()
.loadBalancerId(instanceApplicationLoadBalancer.id())
.servers(
MasterSlaveServerGroupServerArgs.builder()
.serverId(instanceInstance[0].id())
.port(100)
.weight(100)
.serverType("Master")
.build(),
MasterSlaveServerGroupServerArgs.builder()
.serverId(instanceInstance[1].id())
.port(100)
.weight(100)
.serverType("Slave")
.build())
.build());
final var sampleDs = SlbFunctions.getMasterSlaveServerGroups(GetMasterSlaveServerGroupsArgs.builder()
.loadBalancerId(instanceApplicationLoadBalancer.id())
.build());
ctx.export("firstSlbServerGroupId", sampleDs.applyValue(getMasterSlaveServerGroupsResult -> getMasterSlaveServerGroupsResult).applyValue(sampleDs -> sampleDs.applyValue(getMasterSlaveServerGroupsResult -> getMasterSlaveServerGroupsResult.groups()[0].id())));
}
}
Content copied to clipboard
Return
A collection of values returned by getMasterSlaveServerGroups.
Parameters
argument
A collection of arguments for invoking getMasterSlaveServerGroups.
suspend fun getMasterSlaveServerGroups(ids: List<String>? = null, loadBalancerId: String, nameRegex: String? = null, outputFile: String? = null): GetMasterSlaveServerGroupsResult
Return
A collection of values returned by getMasterSlaveServerGroups.
See also
Parameters
ids
A list of master slave server group IDs to filter results.
load Balancer Id
ID of the SLB.
name Regex
A regex string to filter results by master slave server group name.
output File
suspend fun getMasterSlaveServerGroups(argument: suspend GetMasterSlaveServerGroupsPlainArgsBuilder.() -> Unit): GetMasterSlaveServerGroupsResult
Return
A collection of values returned by getMasterSlaveServerGroups.
See also
Parameters
argument
Builder for com.pulumi.alicloud.slb.kotlin.inputs.GetMasterSlaveServerGroupsPlainArgs.