在我的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查找可用区名称?
答案 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)}”