Copies a custom image from one region to another. You can use copied images to perform operations in the target region, such as creating instances (RunInstances) and replacing system disks (ReplaceSystemDisk).
provider "alicloud" {
alias = "sh"
region = "cn-shanghai"
}
provider "alicloud" {
alias = "hz"
region = "cn-hangzhou"
}
data "alicloud_zones" "default" {
provider = alicloud.hz
available_resource_creation = "Instance"
}
data "alicloud_instance_types" "default" {
provider = alicloud.hz
instance_type_family = "ecs.sn1ne"
}
data "alicloud_images" "default" {
provider = alicloud.hz
name_regex = "^ubuntu_[0-9]+_[0-9]+_x64*"
owners = "system"
}
resource "alicloud_vpc" "default" {
provider = alicloud.hz
vpc_name = "terraform-example"
cidr_block = "172.17.3.0/24"
}
resource "alicloud_vswitch" "default" {
provider = alicloud.hz
vswitch_name = "terraform-example"
cidr_block = "172.17.3.0/24"
vpc_id = alicloud_vpc.default.id
zone_id = data.alicloud_zones.default.zones.0.id
}
resource "alicloud_security_group" "default" {
provider = alicloud.hz
name = "terraform-example"
vpc_id = alicloud_vpc.default.id
}
resource "alicloud_instance" "default" {
provider = alicloud.hz
availability_zone = data.alicloud_zones.default.zones.0.id
instance_name = "terraform-example"
security_groups = [alicloud_security_group.default.id]
vswitch_id = alicloud_vswitch.default.id
instance_type = data.alicloud_instance_types.default.ids[0]
image_id = data.alicloud_images.default.ids[0]
internet_max_bandwidth_out = 10
}
resource "alicloud_image" "default" {
provider = alicloud.hz
instance_id = alicloud_instance.default.id
image_name = "terraform-example"
description = "terraform-example"
}
resource "alicloud_image_copy" "default" {
provider = alicloud.sh
source_image_id = alicloud_image.default.id
source_region_id = "cn-hangzhou"
image_name = "terraform-example"
description = "terraform-example"
tags = {
FinanceDept = "FinanceDeptJoshua"
}
}
The following arguments are supported:
source_image_id
- (Required, ForceNew) The source image ID.source_region_id
- (Required, ForceNew) The ID of the region to which the source custom image belongs. You can call DescribeRegions to view the latest regions of Alibaba Cloud.image_name
- (Optional) The image name. It must be 2 to 128 characters in length, and must begin with a letter or Chinese character (beginning with http:// or https:// is not allowed). It can contain digits, colons (:), underscores (_), or hyphens (-). Default value: null.description
- (Optional) The description of the image. It must be 2 to 256 characters in length and must not start with http:// or https://. Default value: null.encrypted
- (Optional, ForceNew) Indicates whether to encrypt the image.kms_key_id
- (Optional, ForceNew) Key ID used to encrypt the image.tags
- (Optional) The tag value of an image. The value of N ranges from 1 to 20.force
- (Optional) Indicates whether to force delete the custom image, Default is false
.
The timeouts
block allows you to specify timeouts for certain actions:
create
- (Defaults to 10 mins) Used when copying the image (until it reaches the initial Available
status). delete
- (Defaults to 10 mins) Used when terminating the image.The following attributes are exported:
id
- ID of the image.image can be imported using the id, e.g.
$ terraform import alicloud_image_copy.default m-uf66871ape***yg1q***