首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Terraform中,如何使用请求路径中的变量指定API网关端点?

在Terraform中,如何使用请求路径中的变量指定API网关端点?
EN

Stack Overflow用户
提问于 2016-08-19 21:49:52
回答 1查看 17.7K关注 0票数 44

在AWS API Gateway中,我有一个定义为/users/{userId}/someAction的端点,我正在尝试使用terraform重新创建它

我会开始有某种链接的gateway_resource链,就像这样...

代码语言:javascript
复制
resource "aws_api_gateway_resource" "Users" {
  rest_api_id = "${var.rest_api_id}" 
  parent_id = "${var.parent_id}" 
  path_part = "users"
}

//{userId} here?

resource "aws_api_gateway_resource" "SomeAction" {
  rest_api_id = "${var.rest_api_id}" 
  parent_id = "${aws_api_gateway_resource.UserIdReference.id}"
  path_part = "someAction"
}

在其中,我定义了aws_api_gateway_method和其他所有内容。

如何在terraform中定义此端点?terraform文档和示例没有涵盖此用例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 17:36:21

您需要定义一个resource,其path_part是您要使用的参数:

代码语言:javascript
复制
// List
resource "aws_api_gateway_resource" "accounts" {
    rest_api_id = var.gateway_id
    parent_id   = aws_api_gateway_resource.finance.id
    path_part   = "accounts"
}

// Unit
resource "aws_api_gateway_resource" "account" {
  rest_api_id = var.gateway_id
  parent_id   = aws_api_gateway_resource.accounts.id
  path_part   = "{accountId}"
}

然后创建methodenable path参数:

代码语言:javascript
复制
resource "aws_api_gateway_method" "get-account" {
  rest_api_id   = var.gateway_id
  resource_id   = var.resource_id
  http_method   = "GET"
  authorization = "NONE"

  request_parameters = {
    "method.request.path.accountId" = true
  }
}

最后,您可以在integration中成功创建映射

代码语言:javascript
复制
resource "aws_api_gateway_integration" "get-account-integration" {
    rest_api_id             = var.gateway_id
    resource_id             = var.resource_id
    http_method             = aws_api_gateway_method.get-account.http_method
    type                    = "HTTP"
    integration_http_method = "GET"
    uri                     = "/integration/accounts/{id}"
    passthrough_behavior    = "WHEN_NO_MATCH"

    request_parameters = {
        "integration.request.path.id" = "method.request.path.accountId"
    }
}

方法需要在那里-并启用参数-才能使集成映射工作。

票数 67
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39040739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档