Reputation: 57
I am currently working on Alicloud and wanted to define DNS for GPDB resource using alicloud_pvtz_zone_record
but getting error as below.
Error: [ERROR] terraform-provider-alicloud/alicloud/resource_alicloud_pvtz_zone_record.go:167: Resource alicloud_pvtz_zone_record AddZoneRecord Failed!!! [SDK alibaba-cloud-sdk-go ERROR]:
SDK.ServerError
ErrorCode: Record.Invalid.Value
Recommend:
RequestId: A69A1D2A-19A8-48D9-A5AC-EF3BB85C9CFE
Message: Record value is invalid.
on ../../main.tf line 32, in resource "alicloud_pvtz_zone_record" "pvtz_zone_records":
32: resource "alicloud_pvtz_zone_record" "pvtz_zone_records" {
Below is my terraform code.
resource "alicloud_gpdb_instance" "gpdb_instance" {
description = "tf-gpdb-test"
engine = "gpdb"
engine_version = "4.3"
instance_class = var.gpdb_instance_class
instance_group_count = var.gpdb_instance_group_count
vswitch_id = var.vswitch_id
security_ip_list = var.allowed_ips
}
resource "alicloud_pvtz_zone_record" "pvtz_zone_records" {
zone_id = var.dns_zone_id
resource_record = "server.gpdb"
type = "CNAME"
value = alicloud_gpdb_instance.gpdb_instance.id
ttl = var.dns_ttl
}
Upvotes: 1
Views: 129
Reputation: 1614
In Terraform doc, alicloud_pvtz_zone_record
resource accepts value domain only.
In your example, alicloud_pvtz_zone_record
's value accepts ID from gpdb instance. That's why Terraform produces invalid value.
Here's solution by adding alicloud_gpdb_connection
resource here:
resource "alicloud_gpdb_connection" "gpdb_connection" {
instance_id = alicloud_gpdb_instance.gpdb_instance.id
}
resource "alicloud_pvtz_zone_record" "pvtz_zone_records" {
zone_id = var.dns_zone_id
resource_record = "server.gpdb.pgsoft.local"
type = "CNAME"
value = alicloud_gpdb_connection.gpdb_connection.connection_string
ttl = var.dns_ttl
}
alicloud_gpdb_connection
resource outputs connection_string which is value of domain from particular gpdb instance.
Upvotes: 1