This Terraform module creates an Azure API Management.
- AzureRM Terraform provider >= 1.32
Module version | Terraform version | AzureRM version |
---|---|---|
>= 5.x.x | 0.15.x & 1.0.x | >= 2.0 |
>= 4.x.x | 0.13.x | >= 2.0 |
>= 3.x.x | 0.12.x | >= 2.0 |
>= 2.x.x | 0.12.x | < 2.0 |
< 2.x.x | 0.11.x | < 2.0 |
This module is optimized to work with the Claranet terraform-wrapper tool
which set some terraform variables in the environment needed by this module.
More details about variables set by the terraform-wrapper
available in the documentation.
module "azure_region" {
source = "claranet/regions/azurerm"
version = "x.x.x"
azure_region = var.azure_region
}
module "rg" {
source = "claranet/rg/azurerm"
version = "x.x.x"
location = module.azure_region.location
client_name = var.client_name
environment = var.environment
stack = var.stack
}
module "logs" {
source = "claranet/run-common/azurerm//modules/logs"
version = "x.x.x"
client_name = var.client_name
environment = var.environment
stack = var.stack
location = module.azure_region.location
location_short = module.azure_region.location_short
resource_group_name = module.rg.resource_group_name
}
module "apim" {
source = "claranet/api-management/azurerm"
version = "x.x.x"
location = module.azure_region.location
location_short = module.azure_region.location_short
client_name = var.client_name
environment = var.environment
stack = var.stack
resource_group_name = module.rg.resource_group_name
sku_name = "Standard_1"
publisher_name = "Contoso ApiManager"
publisher_email = "[email protected]"
named_values = [
{
name = "my_named_value"
value = "my_secret_value"
secret = true
},
{
display_name = "My second value explained"
name = "my_second_value"
value = "my_not_secret_value"
}
]
additional_location = [
{
location = "eastus2"
subnet_id = var.subnet_id
},
]
logs_destinations_ids = [
module.logs.logs_storage_account_id,
module.logs.log_analytics_workspace_id
]
}
Name | Version |
---|---|
azurerm | ~> 2.29 |
Name | Source | Version |
---|---|---|
diagnostics | claranet/diagnostic-settings/azurerm | 5.0.0 |
Name | Type |
---|---|
azurerm_api_management.apim | resource |
azurerm_api_management_group.group | resource |
azurerm_api_management_named_value.named_values | resource |
azurerm_api_management_product.product | resource |
azurerm_api_management_product_group.product_group | resource |
azurerm_network_security_rule.management_apim | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
additional_location | List of the name of the Azure Region in which the API Management Service should be expanded to. | list(map(string)) |
[] |
no |
certificate_configuration | List of certificate configurations | list(map(string)) |
[] |
no |
client_name | Client name/account used in naming | string |
n/a | yes |
create_management_rule | Whether to create the NSG rule for the management port of the APIM. If true, nsg_name variable must be set | bool |
false |
no |
create_product_group_and_relationships | Create local APIM groups with name identical to products and create a relationship between groups and products | bool |
false |
no |
custom_diagnostic_settings_name | Custom name of the diagnostics settings, name will be 'default' if not set. | string |
"default" |
no |
custom_name | Custom API Management name, generated if not set | string |
"" |
no |
default_tags_enabled | Option to enable or disable default tags | bool |
true |
no |
developer_portal_hostname_configuration | Developer portal hostname configurations | list(map(string)) |
[] |
no |
enable_http2 | Should HTTP/2 be supported by the API Management Service? | bool |
false |
no |
enable_sign_in | Should anonymous users be redirected to the sign in page? | bool |
false |
no |
enable_sign_up | Can users sign up on the development portal? | bool |
false |
no |
environment | Project environment | string |
n/a | yes |
extra_tags | Extra tags to add | map(string) |
{} |
no |
identity_ids | A list of IDs for User Assigned Managed Identity resources to be assigned. This is required when type is set to UserAssigned or SystemAssigned, UserAssigned. | list(string) |
[] |
no |
identity_type | Type of Managed Service Identity that should be configured on this API Management Service | string |
"SystemAssigned" |
no |
location | Azure location for Eventhub. | string |
n/a | yes |
location_short | Short string for Azure location. | string |
n/a | yes |
logs_categories | Log categories to send to destinations. | list(string) |
null |
no |
logs_destinations_ids | List of destination resources Ids for logs diagnostics destination. Can be Storage Account, Log Analytics Workspace and Event Hub. No more than one of each can be set. Empty list to disable logging. | list(string) |
n/a | yes |
logs_metrics_categories | Metrics categories to send to destinations. | list(string) |
null |
no |
logs_retention_days | Number of days to keep logs on storage account | number |
30 |
no |
management_hostname_configuration | List of management hostname configurations | list(map(string)) |
[] |
no |
management_nsg_rule_priority | Priority of the NSG rule created for the management port of the APIM | number |
101 |
no |
name_prefix | Optional prefix for the generated name | string |
"" |
no |
name_suffix | Optional suffix for the generated name | string |
"" |
no |
named_values | Map containing the name of the named values as key and value as values | list(map(string)) |
[] |
no |
notification_sender_email | Email address from which the notification will be sent | string |
null |
no |
nsg_name | NSG name of the subnet hosting the APIM to add the rule to allow management if the APIM is private | string |
null |
no |
nsg_rg_name | Name of the RG hosting the NSG if it's different from the one hosting the APIM | string |
null |
no |
policy_configuration | Map of policy configuration | map(string) |
{} |
no |
portal_hostname_configuration | Legacy portal hostname configurations | list(map(string)) |
[] |
no |
products | List of products to create | list(string) |
[] |
no |
proxy_hostname_configuration | List of proxy hostname configurations | list(map(string)) |
[] |
no |
publisher_email | The email of publisher/company. | string |
n/a | yes |
publisher_name | The name of publisher/company. | string |
n/a | yes |
resource_group_name | Name of the resource group | string |
n/a | yes |
scm_hostname_configuration | List of scm hostname configurations | list(map(string)) |
[] |
no |
security_configuration | Map of security configuration | map(string) |
{} |
no |
sku_name | String consisting of two parts separated by an underscore. The fist part is the name, valid values include: Developer, Basic, Standard and Premium. The second part is the capacity | string |
"Basic_1" |
no |
stack | Project stack name | string |
n/a | yes |
terms_of_service_configuration | Map of terms of service configuration | list(map(string)) |
[ |
no |
virtual_network_configuration | The id(s) of the subnet(s) that will be used for the API Management. Required when virtual_network_type is External or Internal | list(string) |
[] |
no |
virtual_network_type | The type of virtual network you want to use, valid values include: None, External, Internal. | string |
null |
no |
Name | Description |
---|---|
api_management_additional_location | Map listing gateway_regional_url and public_ip_addresses associated |
api_management_gateway_regional_url | The Region URL for the Gateway of the API Management Service |
api_management_gateway_url | The URL of the Gateway for the API Management Service |
api_management_id | The ID of the API Management Service |
api_management_identity | The identity of the API Management |
api_management_management_api_url | The URL for the Management API associated with this API Management service |
api_management_name | The name of the API Management Service |
api_management_portal_url | The URL for the Publisher Portal associated with this API Management service |
api_management_private_ip_addresses | The Private IP addresses of the API Management Service |
api_management_public_ip_addresses | The Public IP addresses of the API Management Service |
api_management_scm_url | The URL for the SCM Endpoint associated with this API Management service |
Microsoft Azure documentation: https://docs.microsoft.com/en-us/azure/api-management/