Skip to content

Support for Azure API Management Backend Load Balancer Pools #30855

@markti

Description

@markti

Is there an existing issue for this?

  • I have searched the existing issues

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request.
  • Please do not leave comments along the lines of "+1", "me too" or "any updates" — they generate extra noise for issue followers and do not help prioritize the request.
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment and review the contribution guide to help.

Feature Request: Support for Azure API Management Backend Load Balancer Pools

Description

Add support in the azurerm_api_management_backend (or a new dedicated resource) for Backend Load Balancer Pools within Azure API Management.
This feature allows users to group multiple backend services into a single logical pool, enabling built-in load balancing, failover, and routing within API Management.

Proposed Resource Example

resource "azurerm_api_management_backend_pool" "example" {
  name                = "example-backend-pool"
  api_management_name = azurerm_api_management.example.name
  resource_group_name = azurerm_resource_group.example.name

  # Optional description
  description = "Load-balanced pool of backend services for internal APIs"

  # One or more backend members
  backends = [
    azurerm_api_management_backend.backend1.id,
    azurerm_api_management_backend.backend2.id
  ]
}

### Description

Azure API Management (APIM) currently allows defining multiple individual backends, but there is no native support in the Terraform provider for grouping those backends into Backend Load Balancer Pools — a logical construct that enables traffic distribution, failover, and routing across multiple backend services.
This feature request proposes adding a new Terraform resource, such as azurerm_api_management_backend_pool, that would allow users to create and manage backend load balancer pools within an API Management instance. A backend pool would act as a single logical target for APIs, simplifying configuration and enabling built-in load balancing behavior within APIM.

Creating a backend pool would involve:
1. Specifying a required name to uniquely identify the pool.
2. Optionally providing a description for documentation and readability.
3. Selecting one or more existing backends (referencing azurerm_api_management_backend resources) to include in the pool.

This enhancement would bring Terraform feature parity with Azure’s native APIM configuration model and enable infrastructure-as-code management of complex backend routing and high availability scenarios. It would particularly benefit users managing microservices or multi-region API deployments, allowing them to declaratively configure pools that distribute traffic across several backend endpoints.

### New or Affected Resource(s)/Data Source(s)

azurerm_api_management_backend_pool

### Potential Terraform Configuration

```hcl
resource "azurerm_api_management_backend_pool" "example" {
  name                = "example-backend-pool"
  api_management_name = azurerm_api_management.example.name
  resource_group_name = azurerm_resource_group.example.name

  # Optional description
  description = "Load-balanced pool of backend services for internal APIs"

  # One or more backend members
  backends = [
    azurerm_api_management_backend.backend1.id,
    azurerm_api_management_backend.backend2.id
  ]
}

References

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions