Traffic Manager的Terraform脚本会引发未知错误

时间:2017-10-30 12:29:50

标签: azure azure-virtual-network azure-traffic-manager terraform-provider-azure

部署流量管理器时遇到错误。它可能是非常基本的配置。但是,它说未知服务错误我无法解决这个问题。

Terraform Version

Terraform v0.10.0
  

#Service Principle

variable "subscription_id" {}

variable "client_id" {}

variable "client_secret" {}        

variable "tenant_id" {}    
  

资源组

变量“resource_group”{}

变量“location”{}

变量“environment”{}

  

实际脚本

  # Service Principle
    provider "azurerm" {
      subscription_id = "${var.subscription_id}"
      client_id       = "${var.client_id}"
      client_secret   = "${var.client_secret}"
      tenant_id       = "${var.tenant_id}"
    }

    # Traffic Manager Profile

    resource "azurerm_traffic_manager_profile" "profile" {
  name                   = "trafficmanagerprofile"
  resource_group_name    = "production"
  traffic_routing_method = "Weighted"

  dns_config {
    relative_name = "production"
    ttl           = 30
  }

  monitor_config {
    protocol = "http"
    port     = 80
    path     = "/"
  }
}

resource "azurerm_public_ip" "pip" {
  name                         = "ip${count.index}"
  location                     = "${var.azure_region}"
  resource_group_name          = "production"
  public_ip_address_allocation = "dynamic"
  domain_name_label            = "${var.dns_name}${count.index}"
  count                        = "${var.num_vms}"
}

resource "azurerm_traffic_manager_endpoint" "endpoint" {
  name                = "endpoint${count.index}"
  resource_group_name = "production"
  profile_name        = "${azurerm_traffic_manager_profile.profile.name}"
  target_resource_id  = "${element(azurerm_public_ip.pip.*.id, count.index)}"
  type                = "azureEndpoints"
  weight              = 1
  count               = "${var.num_vms}"
}

Debug Output

Error: autorest/azure: Service returned an error. Status=400 Code="Unknown" Message="Unknown service error"
  

预期行为

It should be create a Traffic Manager Profile instance on Azure
  

实际行为

Resource Group created but traffic manager profile throws error.

I am struggling with this from long time can anybody help me out here?

1 个答案:

答案 0 :(得分:0)

请使用以下脚本,它适用于我。

  resource "azurerm_traffic_manager_profile" "profile" {
  name                   = "trafficmanagerprofile"
  resource_group_name    = "shuioracle"
  traffic_routing_method = "Weighted"

  dns_config {
    relative_name = "shuioracle"
    ttl           = 30
  }

  monitor_config {
    protocol = "http"
    port     = 80
    path     = "/"
  }
}

resource "azurerm_public_ip" "pip" {
  name                         = "ip${count.index}"
  location                     = "South Central US"
  resource_group_name          = "shuioracle"
  public_ip_address_allocation = "static"
  domain_name_label            = "shuilinux5${count.index}"
  count                        = "3"
}

resource "azurerm_traffic_manager_endpoint" "endpoint" {
  name                = "endpoint${count.index}"
  resource_group_name = "shuioracle"
  profile_name        = "${azurerm_traffic_manager_profile.profile.name}"
  target_resource_id  = "${element(azurerm_public_ip.pip.*.id, count.index)}"
  type                = "azureEndpoints"
  weight              = 1
  count               = "3"
}

在您的脚本中,将public_ip_address_allocation = "dynamic"修改为static

使用static,您的脚本就会成功。创建公共IP时,如果使用动态,则不会关联IP地址,如果使用静态,则会关联IP。

您可以查看此example和此example