У меня есть функция Lambda, работающая в AWS VPC. Этой Lambda требуется доступ как к RDS, так и к DynamoDB, поэтому для нее требуется конечная точка VPC, настроенная для доступа к DynamoDB. Мне удалось заставить его работать, используя ручную настройку, как описано в блоге Amazon здесь, но я изо всех сил пытаюсь определить эквивалентную инфраструктуру в виде кода с использованием Terraform.
Я понимаю, что должен определить aws_vpc_endpoint
в Terraform (документы здесь) , но я немного заблудился, когда дело доходит до настройки таблицы маршрутизации для него.
пока что это то, что у меня есть, я не уверен, что это правильно, и я оставил вопросительный знак в конфигурации route_table_ids
. Что касается записей, если я не настрою никакую таблицу маршрутизации, конечная точка будет создана правильно, но Lambda не получит доступа к DynamoDB.
data "aws_vpc" "default" {
default = true
}
resource "aws_vpc_endpoint" "private-dynamodb" {
vpc_id = "${data.aws_vpc.default.id}"
service_name = "com.amazonaws.${var.region}.dynamodb"
route_table_ids = ["${WHAT_SHOULD_I_PUT_HERE?}"]
policy = <<POLICY
{
"Statement": [
{
"Action": "*",
"Effect": "Allow",
"Resource": "*",
"Principal": "*"
}
]
}
POLICY
}
Я также проверил, как создается конечная точка с ручной настройкой, и вижу, что у нее есть связанная таблица маршрутизации со следующими настройками:
- мой блок cidr vpc -> локальный
- 0.0.0.0/0 -> Интернет gw
- com.amazonaws ... Dynamodb -> vpce -...
поэтому я предполагаю, что мне следует воспроизвести эквивалентную конфигурацию в моем ресурсе terraform, но на самом деле не имею понятия, как это сделать. Любая помощь приветствуется!