skip to Main Content

I’m trying to create an instance of Application Gateway. While doing so, I get the following error:

Error: creating Application Gateway: (Name "name-gateway-wgrkecswbk" / Resource Group "name03n62mct"): network.ApplicationGatewaysClient#CreateOrUpdate: Failure sending request: StatusCode=400 -- Original Error: Code="InvalidResourceName" Message="Resource name is invalid. The name can be up to 80 characters long. It must begin with a word character, and it must end with a word character or with '_'. The name may contain word characters or '.', '-', '_'." Details=[]

The name used is name-gateway-wgrkecswbk which, looks to be a valid name according the error description.

The location used is

   with module.name.module.gateway[0].azurerm_application_gateway.res,
   on .terraform/modules/name/modules/gateway/main.tf line 20, in resource "azurerm_application_gateway" "name":
   20: resource "azurerm_application_gateway" "name" {

Tried removed dashes and making it shorter, with the same results.

2

Answers


  1. Chosen as BEST ANSWER

    The issue was that under ssl_certificate, the name property was using a variable ssl_certificate_name which turned to be empty.

    Then, the error coming back from Azure was half correct; It was an invalid name used, since it was an empty var, but not at the resource level ( azurerm_application_gateway.name ), instead it was at the inner block azurerm_application_gateway.name.ssl_certificate.name level.

    Code:

    resource "azurerm_application_gateway" "name" {
    
    //....
    
     ssl_certificate {
        // var contents were empty
        name                = var.ssl_certificate_name 
      }
    
    }
    

    Already reported this issue to Azure so hopefully it gets resolved soon.

    Provider version was 3.37


  2. The unicode character [i.e., space] on the gateway name may cause a problem. I have repeated the procedure using the same application gateway name, "name-gateway-wgrkecswbk."

    below code reference from harshicop

    main tf as follows:

    provider "azurerm" {
        features {}
    }
    resource "azurerm_resource_group" "example" {
      name     = "**********"
      location = "West Europe"
    }
    resource "azurerm_virtual_network" "example" {
      name                = "examples-network"
      resource_group_name = azurerm_resource_group.example.name
      location            = azurerm_resource_group.example.location
      address_space       = ["10.254.0.0/16"]
    }
    
    resource "azurerm_subnet" "frontend" {
      name                 = "frontend"
      resource_group_name  = azurerm_resource_group.example.name
      virtual_network_name = azurerm_virtual_network.example.name
      address_prefixes     = ["10.254.0.0/24"]
    }
    
    resource "azurerm_subnet" "backend" {
      name                 = "backend"
      resource_group_name  = azurerm_resource_group.example.name
      virtual_network_name = azurerm_virtual_network.example.name
      address_prefixes     = ["10.254.2.0/24"]
    }
    
    resource "azurerm_public_ip" "example" {
      name                = "examples-pip"
      resource_group_name = azurerm_resource_group.example.name
      location            = azurerm_resource_group.example.location
      allocation_method   = "Dynamic"
    }
    
    locals {
      backend_address_pool_name      = "${azurerm_virtual_network.example.name}-beap"
      frontend_port_name             = "${azurerm_virtual_network.example.name}-feport"
      frontend_ip_configuration_name = "${azurerm_virtual_network.example.name}-feip"
      http_setting_name              = "${azurerm_virtual_network.example.name}-be-htst"
      listener_name                  = "${azurerm_virtual_network.example.name}-httplstn"
      request_routing_rule_name      = "${azurerm_virtual_network.example.name}-rqrt"
      redirect_configuration_name    = "${azurerm_virtual_network.example.name}-rdrcfg"
    }
    
    resource "azurerm_application_gateway" "network" {
      name                = "name-gateway-wgrkecswbk"
      resource_group_name = azurerm_resource_group.example.name
      location            = azurerm_resource_group.example.location
    
      sku {
        name     = "Standard_Small"
        tier     = "Standard"
        capacity = 2
      }
    
      gateway_ip_configuration {
        name      = "my-gateway-ip-configuration"
        subnet_id = azurerm_subnet.frontend.id
      }
    
      frontend_port {
        name = local.frontend_port_name
        port = 80
      }
    
      frontend_ip_configuration {
        name                 = local.frontend_ip_configuration_name
        public_ip_address_id = azurerm_public_ip.example.id
      }
    
      backend_address_pool {
        name = local.backend_address_pool_name
      }
    
      backend_http_settings {
        name                  = local.http_setting_name
        cookie_based_affinity = "Disabled"
        path                  = "/path1/"
        port                  = 80
        protocol              = "Http"
        request_timeout       = 60
      }
    
      http_listener {
        name                           = local.listener_name
        frontend_ip_configuration_name = local.frontend_ip_configuration_name
        frontend_port_name             = local.frontend_port_name
        protocol                       = "Http"
      }
    
      request_routing_rule {
        name                       = local.request_routing_rule_name
        rule_type                  = "Basic"
        http_listener_name         = local.listener_name
        backend_address_pool_name  = local.backend_address_pool_name
        backend_http_settings_name = local.http_setting_name
      }
    }
    

    provide tf as follows:

    terraform {
      
          required_version = "~>1.3.3"
          required_providers {
            azurerm = {
               source = "hashicorp/azurerm"
               version = ">=3.5.0"
                 }
               }
     }
    

    Output while running plan command

    terraform plan 
    

    enter image description here

    upon apply

    terraform apply -auto-approve
    

    enter image description here

    From Portal:
    enter image description here

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search