Rds Db Proxy Args
data class RdsDbProxyArgs(val dbProxyConnectStringPort: Output<Int>? = null, val dbProxyConnectionPrefix: Output<String>? = null, val dbProxyEndpointReadWriteMode: Output<String>? = null, val dbProxyFeatures: Output<String>? = null, val dbProxyInstanceNum: Output<Int>? = null, val dbProxySslEnabled: Output<String>? = null, val effectiveSpecificTime: Output<String>? = null, val effectiveTime: Output<String>? = null, val instanceId: Output<String>? = null, val instanceNetworkType: Output<String>? = null, val readOnlyInstanceDistributionType: Output<String>? = null, val readOnlyInstanceMaxDelayTime: Output<Int>? = null, val readOnlyInstanceWeights: Output<List<RdsDbProxyReadOnlyInstanceWeightArgs>>? = null, val resourceGroupId: Output<String>? = null, val switchTime: Output<String>? = null, val upgradeTime: Output<String>? = null, val vpcId: Output<String>? = null, val vswitchId: Output<String>? = null) : ConvertibleToJava<RdsDbProxyArgs>
Information about RDS database exclusive agent and its usage, see What is RDS DB Proxy.
NOTE: Available since v1.193.0.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.rds.RdsFunctions;
import com.pulumi.alicloud.rds.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.rds.Instance;
import com.pulumi.alicloud.rds.InstanceArgs;
import com.pulumi.alicloud.rds.ReadOnlyInstance;
import com.pulumi.alicloud.rds.ReadOnlyInstanceArgs;
import com.pulumi.alicloud.rds.RdsDbProxy;
import com.pulumi.alicloud.rds.RdsDbProxyArgs;
import com.pulumi.alicloud.rds.inputs.RdsDbProxyReadOnlyInstanceWeightArgs;
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 defaultZones = RdsFunctions.getZones(GetZonesArgs.builder()
.engine("MySQL")
.engineVersion("5.6")
.build());
var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
.vpcName(name)
.cidrBlock("172.16.0.0/16")
.build());
var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
.vpcId(defaultNetwork.id())
.cidrBlock("172.16.0.0/24")
.zoneId(defaultZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.vswitchName(name)
.build());
var defaultSecurityGroup = new SecurityGroup("defaultSecurityGroup", SecurityGroupArgs.builder()
.vpcId(defaultNetwork.id())
.build());
var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()
.engine("MySQL")
.engineVersion("5.7")
.instanceType("rds.mysql.c1.large")
.instanceStorage("20")
.instanceChargeType("Postpaid")
.instanceName(name)
.vswitchId(defaultSwitch.id())
.dbInstanceStorageType("local_ssd")
.build());
var defaultReadOnlyInstance = new ReadOnlyInstance("defaultReadOnlyInstance", ReadOnlyInstanceArgs.builder()
.zoneId(defaultInstance.zoneId())
.masterDbInstanceId(defaultInstance.id())
.engineVersion(defaultInstance.engineVersion())
.instanceStorage(defaultInstance.instanceStorage())
.instanceType(defaultInstance.instanceType())
.instanceName(String.format("%sreadonly", name))
.vswitchId(defaultSwitch.id())
.build());
var defaultRdsDbProxy = new RdsDbProxy("defaultRdsDbProxy", RdsDbProxyArgs.builder()
.instanceId(defaultInstance.id())
.instanceNetworkType("VPC")
.vpcId(defaultInstance.vpcId())
.vswitchId(defaultInstance.vswitchId())
.dbProxyInstanceNum(2)
.dbProxyConnectionPrefix("example")
.dbProxyConnectStringPort(3306)
.dbProxyEndpointReadWriteMode("ReadWrite")
.readOnlyInstanceMaxDelayTime(90)
.dbProxyFeatures("TransactionReadSqlRouteOptimizeStatus:1;ConnectionPersist:1;ReadWriteSpliting:1")
.readOnlyInstanceDistributionType("Custom")
.readOnlyInstanceWeights(
RdsDbProxyReadOnlyInstanceWeightArgs.builder()
.instanceId(defaultInstance.id())
.weight("100")
.build(),
RdsDbProxyReadOnlyInstanceWeightArgs.builder()
.instanceId(defaultReadOnlyInstance.id())
.weight("500")
.build())
.build());
}
}
Content copied to clipboard
Import
RDS database proxy feature can be imported using the id, e.g.
$ pulumi import alicloud:rds/rdsDbProxy:RdsDbProxy example abc12345678
Content copied to clipboard
Constructors
Link copied to clipboard
fun RdsDbProxyArgs(dbProxyConnectStringPort: Output<Int>? = null, dbProxyConnectionPrefix: Output<String>? = null, dbProxyEndpointReadWriteMode: Output<String>? = null, dbProxyFeatures: Output<String>? = null, dbProxyInstanceNum: Output<Int>? = null, dbProxySslEnabled: Output<String>? = null, effectiveSpecificTime: Output<String>? = null, effectiveTime: Output<String>? = null, instanceId: Output<String>? = null, instanceNetworkType: Output<String>? = null, readOnlyInstanceDistributionType: Output<String>? = null, readOnlyInstanceMaxDelayTime: Output<Int>? = null, readOnlyInstanceWeights: Output<List<RdsDbProxyReadOnlyInstanceWeightArgs>>? = null, resourceGroupId: Output<String>? = null, switchTime: Output<String>? = null, upgradeTime: Output<String>? = null, vpcId: Output<String>? = null, vswitchId: Output<String>? = null)
Functions
Properties
Link copied to clipboard
Link copied to clipboard
The maximum latency threshold that is allowed for read/write splitting. If the latency on a read-only instance exceeds the threshold that you specified, ApsaraDB RDS no longer forwards read requests to the read-only instance. If you do not specify this parameter, the default value of this parameter is retained. Unit: seconds. Valid values: 0 to 3600.
Link copied to clipboard