I need help with terraform. I need deploy azure for redis cache using private endpoint. My code:

 resource "azurerm_redis_cache" "redis_cache_example" {
  name                          = "redis-cache-ex"
  location                      = var.location
  resource_group_name           = var.resource_group_name
  capacity                      = var.redis_plan_capacity
  family                        = var.redis_plan_family
  sku_name                      = var.redis_plan_sku_name
  enable_non_ssl_port           = false
  minimum_tls_version           = "1.2"
  public_network_access_enabled = false
}

resource "azurerm_private_dns_zone" "private_dns_zone_example" {
  name                = "example.redis-ex.azure.com"
  resource_group_name = var.resource_group_name
}

resource "azurerm_private_dns_zone_virtual_network_link" "virtual_network_link_example" {
  name                  = "exampleVnet.com"
  private_dns_zone_name = azurerm_private_dns_zone.private_dns_zone_example.name
  virtual_network_id    = var.vnet_id
  resource_group_name   = var.resource_group_name
}

resource "azurerm_private_endpoint" "redis_pe_example" {
  name                = "redis-private-endpoint-ex"
  location            = var.location
  resource_group_name = var.resource_group_name
  subnet_id           = var.subnet_id

   private_dns_zone_group {
    name                 = "privatednsrediszonegroup"
    private_dns_zone_ids = [azurerm_private_dns_zone.private_dns_zone_example.id]
  }

  private_service_connection {
    name                           = "peconnection-example"
    private_connection_resource_id = azurerm_redis_cache.redis_cache_example.id
    is_manual_connection           = false
    subresource_names              = ["redisCache"]
  }
}

After deploying my redis doesn't ping within vnet. What's wrong with my terraform?

1

You can also add an azurerm_private_endpoint resource and link it to azurerm_redis_cache (or i guess other resource as well).


resource "azurerm_redis_cache" "default" {
...
}

resource "azurerm_private_endpoint" "default" {
  count               = 1
  name                = format("%s-redis%d", var.env, count.index + 1)
  resource_group_name = data.azurerm_resource_group.default.name
  location            = data.azurerm_resource_group.default.location
  subnet_id           = data.azurerm_subnet.default.id

  private_service_connection {
    name                           = format("%s-redis%d-pe", var.env, count.index + 1)
    private_connection_resource_id = azurerm_redis_cache.default[count.index].id
    is_manual_connection           = false
    subresource_names              = ["redisCache"]
  }
}

You can find list of other private resources on AZ docs.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.