Как я могу получить идентификатор 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 ресурс.

Другие вопросы по тегам