Terraform 0.11

aws_api_gateway_method




terraform

aws_api_gateway_method

एक एपीआई गेटवे संसाधन के लिए एक HTTP विधि प्रदान करता है।

उदाहरण उपयोग

resource "aws_api_gateway_rest_api" "MyDemoAPI" {
  name        = "MyDemoAPI"
  description = "This is my API for demonstration purposes"
}

resource "aws_api_gateway_resource" "MyDemoResource" {
  rest_api_id = "${aws_api_gateway_rest_api.MyDemoAPI.id}"
  parent_id   = "${aws_api_gateway_rest_api.MyDemoAPI.root_resource_id}"
  path_part   = "mydemoresource"
}

resource "aws_api_gateway_method" "MyDemoMethod" {
  rest_api_id   = "${aws_api_gateway_rest_api.MyDemoAPI.id}"
  resource_id   = "${aws_api_gateway_resource.MyDemoResource.id}"
  http_method   = "GET"
  authorization = "NONE"
}

Cognito User पूल ऑथराइज़र के साथ उपयोग

variable "cognito_user_pool_name" {}

data "aws_cognito_user_pools" "this" {
  name = "${var.cognito_user_pool_name}"
}

resource "aws_api_gateway_rest_api" "this" {
  name        = "with-authorizer"
}

resource "aws_api_gateway_resource" "this" {
  rest_api_id = "${aws_api_gateway_rest_api.this.id}"
  parent_id   = "${aws_api_gateway_rest_api.this.root_resource_id}"
  path_part   = "{proxy+}"
}

resource "aws_api_gateway_authorizer" "this" {
  name          = "CognitoUserPoolAuthorizer"
  type          = "COGNITO_USER_POOLS"
  rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
  provider_arns = ["${data.aws_cognito_user_pools.this.arns}"]
}

resource "aws_api_gateway_method" "any" {
  rest_api_id   = "${aws_api_gateway_rest_api.this.id}"
  resource_id   = "${aws_api_gateway_resource.this.id}"
  http_method   = "ANY"
  authorization = "COGNITO_USER_POOLS"
  authorizer_id = "${aws_api_gateway_authorizer.this.id}"

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

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • rest_api_id - (आवश्यक) संबंधित REST API की आईडी
  • resource_id - (आवश्यक) API संसाधन ID
  • http_method - (आवश्यक) HTTP विधि ( GET , POST , PUT , DELETE , HEAD , OPTIONS , ANY )
  • authorization - (आवश्यक) विधि के लिए प्रयुक्त प्राधिकरण का प्रकार ( NONE , CUSTOM , AWS_IAM , COGNITO_USER_POOLS )
  • COGNITO_USER_POOLS - (वैकल्पिक) COGNITO_USER_POOLS आईडी का उपयोग तब किया जाता है जब ऑथराइज़ेशन CUSTOM या COGNITO_USER_POOLS
  • authorization_scopes - (वैकल्पिक) ऑथराइजेशन स्कोप का उपयोग तब किया जाता है जब प्राधिकरण COGNITO_USER_POOLS
  • api_key_required - (वैकल्पिक) निर्दिष्ट करें कि क्या विधि को API कुंजी की आवश्यकता है
  • request_models - (वैकल्पिक) अनुरोध के सामग्री प्रकार के लिए उपयोग किए जाने वाले API मॉडल का एक मानचित्र जहां कुंजी सामग्री प्रकार (जैसे application/json ) है और मान या तो Error , Empty (अंतर्निहित मॉडल) या aws_api_gateway_model - aws_api_gateway_model का name
  • request_validator_id - (वैकल्पिक) aws_api_gateway_request_validator की आईडी
  • request_parameters - (वैकल्पिक) अनुरोध क्वेरी स्ट्रिंग पैरामीटर और हेडर का एक नक्शा जो एकीकरण के लिए पारित किया जाना चाहिए। उदाहरण के लिए: hcl request_parameters = { "method.request.header.X-Some-Header" = true, "method.request.querystring.some-query-param" = true, } यह परिभाषित करेगा कि हेडर X-Some-Header और क्वेरी स्ट्रिंग some-query-param अनुरोध पर प्रदान की जानी चाहिए, या
  • request_parameters_in_json - अस्वीकृत , इसके बजाय request_parameters उपयोग करें।