У меня есть существующий VPC в отдельной учетной записи, и я создаю независимые терраформы для большего количества виртуальных компьютеров в новых учетных записях. Я хочу подключиться к конкретным vpc в каждой учетной записи, но мне трудно программно получить vpc_id от целевого vpc. Поскольку эти vpc являются эфемерными, vpd_id изменится, я хочу закодировать это вместо входа в учетную запись, чтобы получить vpc_id из консоли.
Я перепробовал множество вариантов источников данных и объединил их с ресурсом «aws_vpc_peering_connection», ресурсом «aws_vpc_peering_connection_accepter», но пока не получается.
Любая помощь будет оценена.
Если вы используете пиринг VPC между учетными записями, вам необходимо создать экземпляр несколько поставщиков AWS в Terraform по одному на каждый аккаунт. После этого вы сможете использовать aws_vpc
источник данных с конкретным экземпляром поставщика для одноранговой учетной записи, чтобы получить идентификатор VPC.
В документация для aws_vpc_peering_connection_accepter
показывает, как использовать несколько экземпляров провайдера. Если одноранговый VPC уже существует, вместо того, чтобы создавать его с помощью Terraform, вы должны иметь возможность сделать что-то вроде:
data "aws_vpc" "peer" {
provider = "peer"
# Whatever combination of filters are necessary to locate the VPC, cidr_block, etc.
}
Затем вы можете обратиться к ${data.aws_vpc.peer.id}
в твоем aws_vpc_peering_connection
ресурс.