AgentSkillsCN

alicloud-alidns

使用@alicloud/alidns20150109 TypeScript SDK管理阿里云DNS(Alidns)。在阿里云上进行DNS解析时使用此功能,包括域名管理、DNS记录的增删改查(A、AAAA、CNAME、MX、TXT、SRV、CAA等)、DNS负载均衡(DNSSLB)、自定义解析线路、DNSSEC、域名分组、批量操作、Cloud GTM(全球流量管理器)、DNS GTM、GTM Classic、递归DNS、DNS缓存、公共DNS(PDNS)、DNS over HTTPS(DoH)、ISP缓存刷新、域名统计,以及资源标签化。全面覆盖Alidns 20150109版本的234个API。

SKILL.md
--- frontmatter
name: alicloud-alidns
description: Manage Alibaba Cloud DNS (Alidns) using the @alicloud/alidns20150109 TypeScript SDK. Use when working with DNS resolution on Alibaba Cloud, including domain management, DNS record CRUD (A, AAAA, CNAME, MX, TXT, SRV, CAA, etc.), DNS load balancing (DNSSLB), custom resolution lines, DNSSEC, domain groups, batch operations, Cloud GTM (Global Traffic Manager), DNS GTM, GTM Classic, recursive DNS, DNS cache, Public DNS (PDNS), DNS over HTTPS (DoH), ISP cache flush, domain statistics, and resource tagging. Covers all 234 APIs of the Alidns 20150109 version.
license: Apache-2.0
metadata:
  author: alicloud
  version: "1.0"
  sdk-package: "@alicloud/alidns20150109"
  api-version: "2015-01-09"

Alibaba Cloud DNS (Alidns) Skill

Manage DNS domains, records, traffic management, and resolution services via the @alicloud/alidns20150109 TypeScript SDK.

Prerequisites

bash
npm install @alicloud/alidns20150109 @alicloud/openapi-core @darabonba/typescript
bash
export ALIBABA_CLOUD_ACCESS_KEY_ID="<your-key-id>"
export ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-key-secret>"

See scripts/setup_client.ts for a reusable client factory, and references/quickstart.md for full setup including endpoints, record types, line values, and TTL.

Client Initialization

typescript
import Client from '@alicloud/alidns20150109';
import { Config } from '@alicloud/openapi-core';

const client = new Client(new Config({
  accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
  accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
  endpoint: 'alidns.cn-hangzhou.aliyuncs.com',
}));

API Overview (234 APIs in 13 Domains)

DomainAPIsKey OperationsReference
Domain Management39addDomain, describeDomains, describeDomainInfo, operateBatchDomainreferences/domain.md
DNS Records14addDomainRecord, updateDomainRecord, describeDomainRecordsreferences/record.md
DNSSLB3setDNSSLBStatus, updateDNSSLBWeightreferences/dnsslb.md
Custom Lines6addCustomLine, describeSupportLinesreferences/custom-line.md
Cloud GTM50createCloudGtmAddress, listCloudGtmInstancesreferences/cloud-gtm.md
DNS GTM28addDnsGtmAccessStrategy, describeDnsGtmInstancesreferences/dns-gtm.md
GTM Classic35addGtmAccessStrategy, describeGtmInstancesreferences/gtm-classic.md
Recursion DNS18addRecursionRecord, listRecursionZonesreferences/recursion.md
DNS Cache5addDnsCacheDomain, describeDnsCacheDomainsreferences/dns-cache.md
Public DNS18createPdnsAppKey, describePdnsThreatStatisticsreferences/pdns.md
DoH6describeDohAccountStatistics, describeDohDomainStatisticsreferences/doh.md
ISP Cache Flush6submitIspFlushCacheTask, describeIspFlushCacheTasksreferences/isp-flush.md
Tag & Resource6tagResources, untagResources, describeTagsreferences/tag-resource.md

Core Patterns

Global Service (No regionId Required)

Unlike ECS/FC, Alidns is a global service. Most APIs do not require regionId:

typescript
import * as models from '@alicloud/alidns20150109/dist/models';

// No regionId needed
const { body } = await client.describeDomains(new models.DescribeDomainsRequest({
  pageSize: 100,
  pageNumber: 1,
}));

Record CRUD

DNS records are identified by recordId (returned on creation):

typescript
// Add record
const { body } = await client.addDomainRecord(new models.AddDomainRecordRequest({
  domainName: 'example.com',
  RR: 'www',           // Subdomain prefix (@ for root)
  type: 'A',           // A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
  value: '1.2.3.4',    // Record value
  TTL: 600,            // Time to live in seconds
  line: 'default',     // Resolution line
}));
const recordId = body.recordId;

// Update record
await client.updateDomainRecord(new models.UpdateDomainRecordRequest({
  recordId, RR: 'www', type: 'A', value: '5.6.7.8', TTL: 300,
}));

// Delete record
await client.deleteDomainRecord(new models.DeleteDomainRecordRequest({ recordId }));

Page-Based Pagination

Most Describe APIs use pageNumber + pageSize:

typescript
let pageNumber = 1;
let all: any[] = [];
while (true) {
  const { body } = await client.describeDomainRecords(new models.DescribeDomainRecordsRequest({
    domainName: 'example.com', pageSize: 500, pageNumber,
  }));
  all.push(...(body.domainRecords?.record || []));
  if (all.length >= (body.totalCount || 0)) break;
  pageNumber++;
}

Error Handling

typescript
try {
  await client.addDomainRecord(request);
} catch (err: any) {
  console.error(`Code: ${err.code}, Message: ${err.message}, RequestId: ${err.data?.RequestId}`);
}

Common Workflows

1. Add Domain & Records

code
addDomain → addDomainRecord (A/CNAME/MX) → describeDomainRecords

2. Update & Delete Records

code
describeDomainRecords → updateDomainRecord → setDomainRecordStatus → deleteDomainRecord

3. DNS Load Balancing

code
addDomainRecord (multiple A) → setDNSSLBStatus → updateDNSSLBWeight → describeDNSSLBSubDomains

4. Domain Groups

code
addDomainGroup → changeDomainGroup → describeDomainGroups

5. Enable DNSSEC

code
setDomainDnssecStatus → describeDomainDnssecInfo → add DS at registrar

6. Custom Lines

code
addCustomLine → addDomainRecord (with line) → describeCustomLines

7. Batch Operations

code
operateBatchDomain → describeBatchResultCount → describeBatchResultDetail

8. DNS Statistics

code
describeDomainStatistics → describeRecordStatistics → describeDomainLogs

9. ISP Cache Flush

code
describeIspFlushCacheRemainQuota → submitIspFlushCacheTask → describeIspFlushCacheTasks

See references/workflows.md for detailed workflow examples with full code.

API Reference Quick Index

Load the corresponding reference file for parameter details:

  • Domain CRUD/groups/DNSSEC/batch/stats: references/domain.md
  • DNS record add/update/delete/query: references/record.md
  • DNS load balancing: references/dnsslb.md
  • Custom/ISP resolution lines: references/custom-line.md
  • Cloud GTM instances/configs/pools/monitors: references/cloud-gtm.md
  • DNS GTM strategies/pools/monitors: references/dns-gtm.md
  • GTM Classic strategies/pools/recovery: references/gtm-classic.md
  • Recursive DNS zones/records: references/recursion.md
  • DNS cache domains: references/dns-cache.md
  • Public DNS service/threats/stats: references/pdns.md
  • DNS over HTTPS stats: references/doh.md
  • ISP cache flush tasks: references/isp-flush.md
  • Tags/resources/logs: references/tag-resource.md

Each reference file contains per-API documentation with method signatures and parameter tables.

Code Examples

See scripts/examples.ts for ready-to-use code covering:

  • Domain listing, adding, and deletion
  • DNS record CRUD with all record types
  • DNSSLB enable and weight configuration
  • Domain group management
  • DNSSEC enable and info retrieval
  • Domain statistics queries
  • Resource tagging