Creating a resource record
TXT records have a maximum length of 1024 characters.
To create a resource record in a DNS zone:
- In the management console
, select the folder containing the DNS zone where you want to create a resource record. - Select Cloud DNS.
- Select the zone from the list.
- Click Create record.
- Specify the resource record settings:
- In the Name field, specify the record name.
- Select the record type from the drop-down list.
- In the TTL (in seconds) field, select the record TTL (Time to Live) value from the dropdown list or specify a custom duration in seconds.
- Specify a Data for the record.
- Click Create.
If you do not have the Yandex Cloud CLI installed yet, install and initialize it.
By default, the CLI uses the folder specified when creating the profile. To change the default folder, use the yc config set folder-id <folder_ID>
command. You can also set a different folder for any specific command using the --folder-name
or --folder-id
parameter.
Run this command:
yc dns zone add-records --name <DNS_zone_name> \
--record "<domain_name> <TTL> <record_type> <value>"
Example
Creating a TXT record with a DKIM signature:
yc dns zone add-records test-zone \ --record "test-record TXT v=DKIM1;k=rsa;p=MIIBIjAN...gkH2v1NTgQdTKfPmDK...YdRiwIDAQAB"
If your TXT record contains multiple values, enclose each one in double quotes (""
):
yc dns zone add-records test-zone \ --record "test-record TXT v=DKIM1;k=rsa;p=MIIBIjAN""gkH2v1NTgQdTKfPmDK""YdRiwIDAQAB"
If you do not have Terraform yet, install it and configure its Yandex Cloud provider.
-
In the configuration file, describe the resources you want to create: You can add multiple entries at once.
resource "yandex_vpc_network" "foo" {} resource "yandex_dns_zone" "zone1" { name = "my-private-zone" description = "desc" labels = { label1 = "label-1-value" } zone = "example.com." public = false private_networks = [yandex_vpc_network.foo.id] } resource "yandex_dns_recordset" "rs1" { zone_id = yandex_dns_zone.zone1.id name = "srv.example.com." type = "A" ttl = 200 data = ["10.1.0.1"] } resource "yandex_dns_recordset" "rs2" { zone_id = yandex_dns_zone.zone1.id name = "srv2" type = "A" ttl = 200 data = ["10.1.0.2"] } resource "yandex_dns_recordset" "rs_dkim" { zone_id = yandex_dns_zone.zone1.id name = "dkim" type = "TXT" ttl = 200 data = ["v=DKIM1;k=rsa;t=s;p=MIIBIjAN...gkH2v1NTgQdTKfPmDK...YdRiwIDAQAB"] }
Where:
-
yandex_dns_zone
settings:zone
: Domain zone. Note that the zone name must end with a trailing dot. You cannot create top-level domain (TLD) zones. This is a required setting.folder_id
: ID of the folder where you want to create your zone. If no folder is specified, the system will use the default one. This is an optional setting.name
: Zone name. Note that the zone name must be unique within the folder. This is an optional setting.description
: Zone description. This is an optional setting.labels
: DNS zone labels. This is an optional setting.public
: Zone visibility, public or private. This is an optional setting.private_networks
: For a public zone, specify the Virtual Private Cloud resources that can access this zone. This is an optional setting.
-
yandex_dns_recordset
settings:zone_id
: ID of the zone that will contain your resource records. This is a required setting.name
: Domain name. This is a required setting.type
: DNS record type. This is a required setting.ttl
: Record TTL (Time to Live), i.e., time in seconds before the record updates. This is an optional setting.data
: Record value. This is an optional setting.
For more information about resources you can create with Terraform, see the relevant provider documentation
. -
-
Apply the changes:
-
In the terminal, go to the directory where you edited the configuration file.
-
Make sure the configuration file is correct using this command:
terraform validate
If the configuration is correct, you will get this message:
Success! The configuration is valid.
-
Run this command:
terraform plan
You will see a detailed list of resources. No changes will be made at this step. Terraform will show any errors found in your configuration.
-
Apply the changes:
terraform apply
-
Type
yes
and press Enter to confirm the changes.
Terraform will create all required resources. You can check the new resources in the management console
or using this CLI command:yc dns zone list-records <zone_name>
-
To create a resource record in a DNS zone, use the updateRecordSets REST API method for the DnsZone resource or the DnsZoneService/UpdateRecordSets gRPC API call.
When creating AAAA resource records, the service automatically normalizes IPv6 addresses by filling omitted zeros between :
, e.g., 2001:db8::
→ 2001:db8:0:0:0:0:0:0
.