Назад | Перейти на главную страницу

как получить идентификатор vpc из другой учетной записи с помощью terraform

У меня есть существующий 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 ресурс.