Как я могу получить идентификатор vpc из другой учетной записи с terraform
У меня есть существующий VPC в отдельной учетной записи, и я создаю независимые терраформы для большего количества виртуальных частных пользователей в новых учетных записях. Я хотел бы просмотреть конкретные vpc в каждой учетной записи, но мне сложно программно получить vpc_id от целевых vpc. Поскольку эти vpc являются эфемерными, то vpd_id будут меняться, я хочу кодировать это вместо входа в учетную запись, чтобы получить vpc_id из консоли.
Я пробовал много вариантов источников данных и в сочетании с ресурсом "aws_vpc_peering_connection", ресурсом "aws_vpc_peering_connection_accepter", но до сих пор не удается.
Любая помощь будет оценена.
1 ответ
Если вы используете 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
ресурс.