摘自terraform官方文档:
Attributes Reference
The following attributes are exported in addition to the arguments
listed above:
regions - A list of regions. Each element contains the following
attributes:
id - ID of the region.
local_name - Name of the region in the local language.
语法是这样的:
value = "${data.alicloud_regions.current_region_ds.regions.0.id}"
我的第一个问题是我在哪里可以获得我的local_name?
我想我无法从阿里云文档中找到它
第二个问题是地区ID在哪里?
value = "${data.alicloud_regions.current_region_ds.regions.ap-southeast-5.mylocal_name}"
或
value = "${data.alicloud_regions.current_region_ds.regions.mylocal_name.ap-southeast-5}"
答案 0 :(得分:1)
根据Terraform documentation,您应该坚持使用Alibaba Cloud Regions ID。
您不一定需要提供区域ID本身。看一下VPC Terraform sample,在其中您仅输入可用区ID https://github.com/terraform-providers/terraform-provider-alicloud/blob/master/examples/vpc/variables.tf
variable "availability_zones" {
default = "cn-beijing-c"
}
还有许多其他有用的示例代码,说明如何设置阿里云资源。
https://github.com/terraform-providers/terraform-provider-alicloud/tree/master/examples
如果您需要更具体的答案,请告诉我们您要达到的目标。
答案 1 :(得分:0)
您需要在配置AliCloud Provider本身时设置区域。
provider "alicloud" {
access_key = "${var.accesskey}"
secret_key = "${var.secretkey}"
region = "${var.region}"
}
注意:Alicloud提供了几种输入凭据进行身份验证的方法。它们是静态的和动态的。为了使用静态方法进行身份验证,必须在凭据中列出区域ID,但是如果使用的是动态方法,则可以从ALICLOUD_REGION环境变量中获取。
现在,对您的问题
1)最初,您在配置中指定了区域。您将通过遵循
获得配置的区域data "alicloud_regions" "current_region_ds" {
current = true
}
output "current_region_id" {
value = "${data.alicloud_regions.current_region_ds.regions.0.id}"
}
使用current = true
时,它将返回当前区域,否则您必须使用name = region参数手动定义。
value = "${data.alicloud_regions.current_region_ds.regions.0.id}"
它将给出指定区域的ID。如果要使用local_name而不是id,则将id
更改为local_name
。
value = "${data.alicloud_regions.current_region_ds.regions.0.local_name}"
注意:最好使用id
而不是local_name
。
2)您指定的两种方法都是错误的。您已经在要访问的配置中指定了区域。
例如,
data "alicloud_regions" "current_region_ds" {
name="cn-beijing"
}
然后访问它,
value = "${data.alicloud_regions.current_region_ds.regions.0.id}"
或
value = "${data.alicloud_regions.current_region_ds.regions.0.local_name}"