aws_api_gateway_integration_response:无效或未知密钥:response_parameters

时间:2016-03-30 13:46:44

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

我在Terraform中有以下配置:

// ...

resource "aws_api_gateway_integration_response" "post_pet_200_integration" {
  rest_api_id = "${aws_api_gateway_rest_api.my_pets_api.id}"
  resource_id = "${aws_api_gateway_resource.pets_resource.id}"
  http_method = "${aws_api_gateway_method.post_pet_method.http_method}"
  status_code = "${aws_api_gateway_method_response.post_pet_200.status_code}"

  response_parameters = "foo"
}

运行terraform apply时,我得到:

  

错误:

     
      
  • aws_api_gateway_integration_response.post_pet_200_integration ::   无效或未知密钥:response_parameters
  •   

关于dateValue(Connection)的文档说:

  

response_parameters < - (可选)表示响应参数   可以发回给来电者

为什么我不能使用这个变量?

我尝试了以下操作:camelcase,有/无s,放入aws_api_gateway_method_responseaws_api_gateway_deployment块,而是放置一个terraform map变量类型而不是字符串。但我每次都有同样的错误。我也尝试从这个配置中获取灵感:aws_api_gateway_integration_response,但我仍然遇到了同样的错误。

编辑: terraform的版本是0.6.14。

1 个答案:

答案 0 :(得分:0)

我不确定这是否是terraform中的错误。我会让terraform社区对此做出回应。

如果responseParameters的格式无效,或者如果指定的方法响应参数不存在,则API Gateway会抛出错误。

格式应该是:

$client = new GuzzleHttp\Client();
$res = $client->request('POST', 'https://ancient-test.chargebee.com/api/v1/portal_sessions', [
    'auth' => ['test_rdsfgfgfddsffds', 'password'],
    'json' => [customer => [id => 'EXAMPLE']]
]);

以下是相关的api参考:https://docs.aws.amazon.com/apigateway/api-reference/resource/integration-response/#responseParameters