I encounter the error when I deploy Traffic manager. It might be very basic configuration. However, it says Unknow service error I have no clue to fix this.
Terraform Version
Terraform v0.10.0
# Service Principle
variable "subscription_id" {}
variable "client_id" {}
variable "client_secret" {}
variable "tenant_id" {}
Resource Group
variable "resource_group" {}
variable "location" {}
variable "environment" {}
Actual script
# 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"
Expected Behavior
It should be create a Traffic Manager Profile instance on Azure
Actual Behavior
Resource Group created but traffic manager profile throws error.
I am struggling with this from long time can anybody help me out here?
Please use the following script, it works for me.
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"
}
In you script , modify public_ip_address_allocation = "dynamic"
to static
.
Use static
, then your script will success. When you create public IP, if you use dynamic, it will not associate IP address, if you use static, it will associate IP.