Terraform AWS API 网关集成

Terraform AWS API Gateway integration

我试图从 Terraform 中的 Udemy 课程复制 api 网关的构建

在课程中,导师在控制台上构建了一个 POST 方法集成,选择 "Lambda Function" 作为 "Integration Type" 未选择 "Use Lambda Proxy Integration"。

这在控制台上运行良好,但当我尝试在 Terraform 中复制它时,代码:

resource "aws_api_gateway_integration" "build-table-post-integration" {
  rest_api_id = aws_api_gateway_rest_api.testAPI.id
  resource_id = aws_api_gateway_resource.build-table-resource.id
  http_method = aws_api_gateway_method.build-table-method-post.http_method
  type = "LAMBDA"
}

我收到以下错误:

Error: expected type to be one of [HTTP AWS MOCK HTTP_PROXY AWS_PROXY], got LAMBDA

很公平,但逻辑结论是 Terraform 不支持 Lambda 的非代理集成吗?

还是我没抓住重点?

如果它不受支持,我的选择是代理集成(不太热衷)或使用似乎支持它的无服务器框架(也不太热衷)?

非代理 Lambda 集成要求您使用 AWS 类型。此类型还允许您使用 DynamoDB、SNS、SQS 和其他 AWS 服务。

AWS user guide 也涵盖了这个:

The type of integration with the specified backend. The valid value is

  • http or http_proxy: for integration with an HTTP backend
  • aws_proxy: for integration with AWS Lambda functions;
  • aws: for integration with AWS Lambda functions or other AWS services, such as Amazon DynamoDB, Amazon Simple Notification Service or Amazon Simple Queue Service;
  • mock: for integration with API Gateway without invoking any backend.

For more information about the integration types, see integration:type.