如何从可用区域ID查找可用区域名称?

时间:2019-04-16 19:37:34

标签: terraform-provider-aws

在我的tf文件中的某些地方,我提供了availability_zone_id。例如

variable "az_id" { }

resource "aws_subnet" "main" {
  vpc_id     = "${aws_vpc.main.id}"
  cidr_block = "${var.subnet_cidr_block}"
  availability_zone_id = "${var.az_id}"
  map_public_ip_on_launch = true
}

...并在my.tfvars文件中:

az_id              = "euw2-az1"

在其他地方,我需要提供一个availablity_zone名称。例如

resource "aws_ebs_volume" "controller-ebs-sdb" { 
  availability_zone = "${var.az}"  
  size              = 1024 
  type              = "gp2"
}         

在terraform中是否可以从可用区ID查找可用区名称?

2 个答案:

答案 0 :(得分:0)

我通过创建变量 @Bean public FlatFileItemWriter<MyResponse> flatWriter() { FlatFileItemWriter<MyResponse> writer = new FlatFileItemWriter<>(); writer.setResource(new FileSystemResource("writer_queue_remote.csv")); writer.setAppendAllowed(true); writer.setHeaderCallback(new FlatFileHeaderCallback() { @Override public void writeHeader(Writer writer) throws IOException { List<String> headersList = Arrays.asList("id","name"); String headers = headersList.stream().collect(Collectors.joining(",")); writer.write(headers); } }); writer.setLineAggregator(new DelimitedLineAggregator<MyResponse>() { { setDelimiter(","); setFieldExtractor(new MyFieldExtractor()); } }); return writer; } // Worker Integrationflow @Bean public IntegrationFlow chunkIntegrationFlow() { // TODO Auto generated method stub return this.remoteChunkingWorkerBuilder.itemProcessor(chunkProcessor()).itemWriter(flatWriter()) .inputChannel(requestChannel()).outputChannel(repliesChannel()).build(); } 并删除了az

来解决此问题
az_id

...并添加数据元素

az = "eu-west-2a"

答案 1 :(得分:0)

另一种方法是获取该区域支持的可用性区域,然后使用索引。然后可以索引。

示例:

数据“ aws_availability_zones”“ available_az” {}

然后在您的资源上将以下内容与索引一起使用。如果要使用第一个可用区,请使用索引0。如果要使用第二个可用区,请使用索引1。

availability_zone =“ $ {element(data.aws_availability_zones.available_az.names,0)}”