我有一个在 AWS VPC 中运行的 Lambda 函数。此 Lambda 需要同时访问 RDS 和 DynamoDB,因此它需要配置一个 VPC 终端节点以访问 DynamoDB。我已经设法使用手动配置使其工作,如亚马逊博客中所述,但我正在努力使用 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
}
我还检查了如何使用手动配置创建端点,我看到它有一个关联的路由表,其中包含以下设置:
- 我的 vpc cidr 块 --> 本地
- 0.0.0.0/0 --> 互联网网关
- com.amazonaws...dynamodb --> vpce-...
所以我假设我应该在我的 terraform 资源中复制一个等效的配置,但真的不知道如何去做。任何帮助表示赞赏!