Удалить ресурсную запись
Чтобы удалить ресурсную запись:
- В консоли управления
выберите каталог, где находится зона DNS из которой требуется удалить запись. - Выберите сервис Cloud DNS.
- Выберите зону из списка.
- Нажмите значок
в строке записи, которую требуется удалить. - В открывшемся меню нажмите кнопку Удалить.
- В открывшемся окне нажмите кнопку Удалить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
-
Посмотрите описание команды CLI для удаления записей:
yc dns zone delete-records --help -
Получите список всех записей в зоне:
yc dns zone list-records --name <имя_зоны> -
Если у записи есть описание, сбросьте его перед удалением:
yc dns zone add-records --name <имя_зоны> \ --record "<доменное_имя> <TTL> <тип_записи> <значение>" \ --description "" -
Удалите запись:
yc dns zone delete-records --name <имя_зоны> \ --record "<доменное_имя> <TTL> <тип_записи> <значение>"
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы удалить из зоны DNS запись, созданную с помощью Terraform:
-
Откройте файл конфигурации Terraform и удалите фрагмент с описанием DNS записи.
Пример описания DNS записи в конфигурации Terraform
... 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"] description = "Web server" } ... -
В командной строке перейдите в папку, где расположен файл конфигурации Terraform.
-
Проверьте конфигурацию командой:
terraform validateЕсли конфигурация является корректной, появится сообщение:
Success! The configuration is valid. -
Выполните команду:
terraform planВ терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
-
Примените изменения конфигурации:
terraform apply -
Подтвердите изменения: введите в терминал слово
yesи нажмите Enter.Проверить изменения можно в консоли управления
или с помощью команды CLI:yc dns zone list-records <имя_зоны>
Чтобы удалить ресурсную запись, воспользуйтесь одним из методов:
-
upsertRecordSets — метод REST API для ресурса DnsZone или вызов gRPC API DnsZoneService/UpsertRecordSets. Метод не требует точного совпадения поля
description. -
updateRecordSets — метод REST API для ресурса DnsZone или вызов gRPC API DnsZoneService/UpdateRecordSets. Метод требует точного совпадения всех полей записи, включая
description.
Пример REST API для метода upsertRecordSets
Ниже описан пример Bash-скрипта для ОС Linux.
Чтобы воспользоваться примером, аутентифицируйтесь в API и установите утилиту cURL
-
Создайте файл для скрипта:
sudo touch <имя_файла> -
Откройте файл для записи:
sudo nano <имя_файла> -
Поместите скрипт в файл:
#!/bin/bash # Создание переменных export IAM_TOKEN=$(yc iam create-token) dnsZoneId='<идентификатор_DNS_зоны>' recordName='<доменное_имя>' recordType='<тип_записи>' recordTtl='<TTL>' recordData='<значение>' # Удаление записи через upsertRecordSets curl \ --request POST \ --header "Authorization: Bearer ${IAM_TOKEN}" \ --header "Content-Type: application/json" \ --data '{ "deletions": [ { "name": "'"${recordName}"'", "type": "'"${recordType}"'", "ttl": "'"${recordTtl}"'", "data": ["'"${recordData}"'"] } ] }' \ "https://dns.api.cloud.yandex.net/dns/v1/zones/${dnsZoneId}:upsertRecordSets"Где:
IAM_TOKEN— IAM-токен для аутентификации в API.dnsZoneId— идентификатор зоны DNS. Чтобы узнать идентификатор, получите список зон DNS.recordName— доменное имя записи, напримерsrv.example.com..recordType— тип записи, напримерA.recordTtl— время жизни записи (TTL) в секундах, например600.recordData— значение записи, например10.1.0.1.
Совет
Чтобы использовать метод
updateRecordSets, замените в URLupsertRecordSetsнаupdateRecordSets. Учтите, что в этом случае все поля записи, включаяdescription, должны точно совпадать. -
Сделайте файл исполняемым:
chmod +x <имя_файла> -
Выполните скрипт:
./<имя_файла>
В ответ вы получите операцию в формате JSON:
{
"id": "dns1234567890abcdef",
"description": "",
"createdAt": "2025-01-15T12:00:00.000000000Z",
"createdBy": "aje1234567890abcdef",
"modifiedAt": "2025-01-15T12:00:00.000000000Z",
"done": true,
"metadata": {},
"response": {
"@type": "type.googleapis.com/yandex.cloud.dns.v1.RecordSetDiff",
"additions": [],
"deletions": [
{
"name": "srv.example.com.",
"type": "A",
"ttl": "600",
"data": ["10.1.0.1"]
}
]
}
}
Где:
id— уникальный идентификатор операции.done— статус завершения операции.response.deletions— список удаленных записей.
Пример gRPC API для метода upsertRecordSets
Ниже описан пример Bash-скрипта для вызова gRPC API с использованием утилиты grpcurl.
-
Установите
grpcurl:-
С помощью Bash:
curl -L https://github.com/fullstorydev/grpcurl/releases/download/v1.9.3/grpcurl_1.9.3_linux_x86_64.tar.gz | tar -xz sudo mv grpcurl /usr/local/bin/ -
С помощью Golang:
go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
-
-
Создайте файл для скрипта:
sudo touch <имя_файла> -
Откройте файл для записи:
nano <имя_файла> -
Поместите скрипт в файл:
#!/bin/bash # Создание переменных export IAM_TOKEN=$(yc iam create-token) dnsZoneId='<идентификатор_DNS_зоны>' recordName='<доменное_имя>' recordType='<тип_записи>' recordTtl='<TTL>' recordData='<значение>' # Удаление записи через UpsertRecordSets grpcurl \ -d "{ \"dns_zone_id\": \"${dnsZoneId}\", \"deletions\": [ { \"name\": \"${recordName}\", \"type\": \"${recordType}\", \"ttl\": \"${recordTtl}\", \"data\": [\"${recordData}\"] } ] }" \ -H "authorization: Bearer ${IAM_TOKEN}" \ -H "x-client-request-id: $(uuidgen)" \ dns.api.cloud.yandex.net:443 \ yandex.cloud.dns.v1.DnsZoneService/UpsertRecordSetsГде:
IAM_TOKEN— IAM-токен для аутентификации в API.dnsZoneId— идентификатор зоны DNS. Чтобы узнать идентификатор, получите список зон DNS.recordName— доменное имя записи, напримерsrv.example.com..recordType— тип записи, напримерA.recordTtl— время жизни записи (TTL) в секундах, например600.recordData— значение записи, например10.1.0.1.x-client-request-id— уникальный идентификатор запроса для трассировки.
Совет
Чтобы использовать метод
UpdateRecordSets, замените в скриптеUpsertRecordSetsнаUpdateRecordSets. Учтите, что в этом случае все поля записи, включаяdescription, должны точно совпадать. -
Сделайте файл исполняемым:
chmod +x <имя_файла> -
Выполните скрипт:
./<имя_файла>
В ответ вы получите операцию в формате JSON:
{
"id": "dns1234567890abcdef",
"description": "",
"createdAt": "2025-01-15T12:00:00.000000000Z",
"createdBy": "aje1234567890abcdef",
"modifiedAt": "2025-01-15T12:00:00.000000000Z",
"done": true,
"metadata": {
"@type": "type.googleapis.com/yandex.cloud.dns.v1.UpsertRecordSetsMetadata"
},
"response": {
"@type": "type.googleapis.com/yandex.cloud.dns.v1.RecordSetDiff",
"additions": [],
"deletions": [
{
"name": "srv.example.com.",
"type": "A",
"ttl": "600",
"data": ["10.1.0.1"]
}
]
}
}
Где:
id— уникальный идентификатор операции.done— статус завершения операции.metadata— метаданные операции.response.deletions— список удаленных записей.
Подробное описание метода см. в справочнике gRPC API.