2

来自 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}"
4

2 回答 2

1

根据Terraform 文档,您应该坚持使用阿里云区域 ID

您不一定需要提供区域 ID 本身。查看VPC Terraform 示例,您只需输入可用区 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

如果您需要更具体的答案,请告诉我们您想要达到的目标。

于 2019-01-01T21:13:10.667 回答
0

您需要在配置阿里云提供商本身时设置您的区域。

provider "alicloud" {
  access_key = "${var.accesskey}"
  secret_key = "${var.secretkey}"
  region     = "${var.region}"
}

注意:阿里云提供了几种输入凭证进行身份验证的方式。它们是静态的和动态的。区域 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 然后更改idlocal_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}"
于 2019-01-26T06:08:54.467 回答