【问题标题】:Terraform AWS API Gateway integrationTerraform AWS API 网关集成
【发布时间】:2019-12-05 00:58:27
【问题描述】:

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

在课程中,导师在控制台上构建 POST 方法集成,选择“Lambda 函数”作为“集成类型”,而不是选择“使用 Lambda 代理集成”。

这在控制台上运行良好,但是当我尝试在 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 的非代理集成是合乎逻辑的结论吗?

还是我没抓住重点?

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

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway terraform terraform-provider-aws


    【解决方案1】:

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

    AWS user guide 也涵盖了这一点:

    与指定后端的集成类型。有效值为

    • http 或 http_proxy:用于与 HTTP 后端集成
    • aws_proxy:用于与 AWS Lambda 函数集成;
    • aws:用于与 AWS Lambda 函数或其他 AWS 服务集成,例如 Amazon DynamoDB、Amazon Simple Notification Service 或亚马逊简单队列服务;
    • mock:用于在不调用任何后端的情况下与 API Gateway 集成。

    有关集成类型的更多信息,请参阅integration:type

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2020-04-30
      • 2023-03-08
      • 1970-01-01
      • 2020-06-16
      • 2018-08-15
      • 2017-08-03
      • 2019-12-01
      • 2020-11-30
      相关资源
      最近更新 更多