Alicloud ApiGateway Terraform Module terraform-alicloud-api-gateway
This Terraform module will first creates a Apigateway Api Group , then create an Apigateway Api basing on this group.
These types of resources are supported:
You can use this in your terraform template with the following steps.
-
Adding a module resource to your template, e.g. main.tf
module "apigateway" { source = "terraform-alicloud-modules/api-gateway/alicloud" # ApiGateway api group variables api_group_name = "TerraformApiGatewayGroup" api_group_description = "Module of APi gateway Group" # ApiGateway api variables api_name = "TerraformApiGatewayApi" api_description = "description" api_auth_type = "APP" api_request_config = [ { protocol = "HTTP" method = "GET" path = "/test/path1" mode = "MAPPING" } ] api_service_type = "HTTP" api_http_service_config = [ { address = "http://apigateway-backend.alicloudapi.com:8080" method = "GET" path = "/web/cloudapi" timeout = 12 aone_name = "cloudapi-openapi" } ] api_request_parameters = [ { name = "test" type = "STRING" required = "REQUIRED" in = "QUERY" in_service = "QUERY" name_service = "testparams" } ] api_stage_name = [ "RELEASE", "PRE", "TEST" ]
-
Setting values for the following variables:
through environment variables
- ALICLOUD_ACCESS_KEY
- ALICLOUD_SECRET_KEY
- ALICLOUD_REGION
Name Description Type Default Required api_name The name of the api gateway api. string "" yes api_description The description of the api. string "" no api_auth_type The authorization Type including APP and ANONYMOUS. string "" yes api_request_config Request_config defines how users can send requests to your API. list "" yes api_service_type The type of backend service. Type including HTTP,VPC and MOCK. list "" yes api_http_service_config http_service_config defines the config list "" yes api_request_parameters Request_parameters defines . list "" no api_stage_names Stages that the api need to be deployed. Valid value: RELEASE,PRE and TEST. list "" no api_group_name The name of the api gateway group. string "" yes api_group_description The description of the api group. string "" no Name Description this_api_id the ID of api-gateway API this_api_group_id the ID of api-gateway API Group
From the version v1.2.0, the module has removed the following provider
setting:
provider "alicloud" {
version = ">=1.56.0"
region = var.region != "" ? var.region : null
configuration_source = "terraform-alicloud-modules/api-gateway"
}
If you still want to use the provider
setting to apply this module, you can specify a supported version, like 1.1.0:
module "apigateway" {
source = "terraform-alicloud-modules/api-gateway/alicloud"
version = "1.1.0"
region = "cn-beijing"
api_group_name = "TerraformApiGatewayGroup"
api_group_description = "Module of APi gateway Group"
// ...
}
If you want to upgrade the module to 1.2.0 or higher in-place, you can define a provider which same region with previous region:
provider "alicloud" {
region = "cn-beijing"
}
module "apigateway" {
source = "terraform-alicloud-modules/api-gateway/alicloud"
api_group_name = "TerraformApiGatewayGroup"
api_group_description = "Module of APi gateway Group"
// ...
}
or specify an alias provider with a defined region to the module using providers
:
provider "alicloud" {
region = "cn-beijing"
alias = "bj"
}
module "apigateway" {
source = "terraform-alicloud-modules/api-gateway/alicloud"
providers = {
alicloud = alicloud.bj
}
api_group_name = "TerraformApiGatewayGroup"
api_group_description = "Module of APi gateway Group"
// ...
}
and then run terraform init
and terraform apply
to make the defined provider effect to the existing module state.
More details see How to use provider in the module
Name | Version |
---|---|
terraform | >= 0.13.0 |
alicloud | >= 1.56.0 |
Created and maintained by Alibaba Cloud Terraform Team(terraform@alibabacloud.com)