Ecs Backup Plan
Provides a HBR Ecs Backup Plan resource. For information about HBR Ecs Backup Plan and how to use it, see What is Ecs Backup Plan.
NOTE: Available in v1.132.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.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.hbr.Vault;
import com.pulumi.alicloud.hbr.VaultArgs;
import com.pulumi.alicloud.hbr.EcsBackupPlan;
import com.pulumi.alicloud.hbr.EcsBackupPlanArgs;
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 exampleZones = AlicloudFunctions.getZones(GetZonesArgs.builder()
.availableResourceCreation("Instance")
.build());
final var exampleInstanceTypes = EcsFunctions.getInstanceTypes(GetInstanceTypesArgs.builder()
.availabilityZone(exampleZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.cpuCoreCount(1)
.memorySize(2)
.build());
final var exampleImages = EcsFunctions.getImages(GetImagesArgs.builder()
.nameRegex("^ubuntu_[0-9]+_[0-9]+_x64*")
.owners("system")
.build());
var exampleNetwork = new Network("exampleNetwork", NetworkArgs.builder()
.vpcName("terraform-example")
.cidrBlock("172.17.3.0/24")
.build());
var exampleSwitch = new Switch("exampleSwitch", SwitchArgs.builder()
.vswitchName("terraform-example")
.cidrBlock("172.17.3.0/24")
.vpcId(exampleNetwork.id())
.zoneId(exampleZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.build());
var exampleSecurityGroup = new SecurityGroup("exampleSecurityGroup", SecurityGroupArgs.builder()
.vpcId(exampleNetwork.id())
.build());
var exampleInstance = new Instance("exampleInstance", InstanceArgs.builder()
.imageId(exampleImages.applyValue(getImagesResult -> getImagesResult.images()[0].id()))
.instanceType(exampleInstanceTypes.applyValue(getInstanceTypesResult -> getInstanceTypesResult.instanceTypes()[0].id()))
.availabilityZone(exampleZones.applyValue(getZonesResult -> getZonesResult.zones()[0].id()))
.securityGroups(exampleSecurityGroup.id())
.instanceName("terraform-example")
.internetChargeType("PayByBandwidth")
.vswitchId(exampleSwitch.id())
.build());
var exampleVault = new Vault("exampleVault", VaultArgs.builder()
.vaultName("terraform-example")
.build());
var exampleEcsBackupPlan = new EcsBackupPlan("exampleEcsBackupPlan", EcsBackupPlanArgs.builder()
.ecsBackupPlanName("terraform-example")
.instanceId(exampleInstance.id())
.vaultId(exampleVault.id())
.retention("1")
.schedule("I|1602673264|PT2H")
.backupType("COMPLETE")
.speedLimit("0:24:5120")
.paths(
"/home",
"/var")
.exclude("""
["/home/exclude"]
""")
.include("""
["/home/include"]
""")
.build());
}
}
Notice
About Backup path rules:
If there is no wildcard
*
, you can enter 8 items of path.When using wildcard
*
, only one item of path can be input, and wildcards like/*/*
are supported.Each item of path only supports absolute paths, for example starting with
/
,\
,C:\
,D:\
. About Restrictions:When using
VSS
: multiple paths, UNC paths, wildcards, and excluded files not supported.When using
UNC
: VSS not supported, wildcards not supported, and files to be excluded are not supported. About include/exclude path rules:Supports up to 8 paths, including paths using wildcards
*
.If the path does not contain
/
, then*
matches multiple path names or file names, for example*abc*
will match/abc/
,/d/eabcd/
,/a/abc
;*.txt
will match all files with an extension.txt
.If the path contains
/
, each*
only matches a single-level path or file name. For example,/a/*/*/
share will match/a/b/c/share
, but not/a/d/share
.If the path ends with
/
, it means the folder matches. For example,*tmp/
will match/a/b/aaatmp/
,/tmp/
and so on.The path separator takes Linux system
/
as an example, if it is Windows system, please replace it with\
.
Import
HBR Ecs Backup Plan can be imported using the id, e.g.
$ pulumi import alicloud:hbr/ecsBackupPlan:EcsBackupPlan example <id>
////