--- name: tencent-dnspod description: | 腾讯云 DNSPod 域名快速部署工具 (API 3.0)。用于自动化部署 DNS 记录、批量配置域名解析、快速上线服务。 当用户需要:(1) 快速添加 DNS 记录部署新服务,(2) 批量配置 A/CNAME/MX 等记录, (3) 域名解析自动化管理,(4) DevOps 域名部署流程时触发。 --- # 腾讯云 DNSPod 域名快速部署 ## 快速开始 ### 1. 配置认证 获取 API 密钥:https://console.cloud.tencent.com/cam/capi **方式 1: 使用 .env 文件 (推荐,更安全):** ```bash cp .env.example .env # 编辑 .env 文件,填入你的密钥 ``` **方式 2: 设置环境变量:** ```bash export TENCENT_SECRET_ID="AKIDxxxxxxxxxxxxxxxx" export TENCENT_SECRET_KEY="xxxxxxxxxxxxxxxx" ``` **获取密钥步骤:** 1. 访问:https://console.cloud.tencent.com/cam/capi 2. 登录腾讯云控制台 3. 进入 **访问管理** → **访问密钥** → **API 密钥管理** 4. 点击 **新建密钥** 或查看现有密钥 5. 复制 SecretId 和 SecretKey ### 2. 核心命令 **添加单条记录 (最常用):** ```bash python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.4 \ --line "默认" ``` **批量部署 (从配置文件):** ```bash python scripts/batch_deploy.py \ --domain example.com \ --config dns-config.json ``` **快速配置服务 (常用组合):** ```bash python scripts/deploy_service.py \ --domain example.com \ --service web \ --ip 1.2.3.4 ``` **删除记录:** ```bash python scripts/delete_record.py \ --domain example.com \ --subdomain www ``` ## 域名快速部署流程 ### 场景 1: 部署新 Web 服务 ```bash # 一键部署 www 和主域名 python scripts/deploy_service.py \ --domain example.com \ --service web \ --ip 1.2.3.4 # 自动创建: # - example.com (A 记录) # - www.example.com (A 记录) # - *.example.com (泛域名 A 记录,可选) ``` ### 场景 2: 部署 API 服务 ```bash # 部署 API 子域名 python scripts/deploy_record.py \ --domain example.com \ --subdomain api \ --type A \ --value 1.2.3.4 # 或者使用服务模板 python scripts/deploy_service.py \ --domain example.com \ --service api \ --ip 1.2.3.4 ``` ### 场景 3: 域名验证 (TXT 记录) ```bash # SSL 证书验证 python scripts/deploy_record.py \ --domain example.com \ --subdomain _dnsauth \ --type TXT \ --value "验证字符串" ``` ### 场景 4: 邮件服务 (MX 记录) ```bash # 添加 MX 记录 python scripts/deploy_record.py \ --domain example.com \ --subdomain @ \ --type MX \ --value "mxbiz1.qq.com" \ --line "默认" ``` ## 支持的记录类型 - **A**: IPv4 地址记录 - **AAAA**: IPv6 地址记录 - **CNAME**: 别名记录 - **MX**: 邮件交换记录 - **TXT**: 文本记录 (常用于验证) - **NS**: 域名服务器记录 - **SRV**: 服务定位记录 - **CAA**: 证书颁发机构授权 ## 高级用法 ### 强制更新现有记录 ```bash python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.5 \ --force # 不询问直接更新 ``` ### 域名不存在时自动创建 ```bash python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.4 \ --create-domain # 自动创建域名 ``` ### 自定义 TTL ```bash python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.4 \ --ttl 300 # 5 分钟 ``` ### 添加记录备注 ```bash python scripts/deploy_record.py \ --domain example.com \ --subdomain www \ --type A \ --value 1.2.3.4 \ --remark "生产环境 Web 服务器" ``` ## 配置说明 ### .env 文件配置 ```bash # 腾讯云 DNSPod API 密钥配置 # SecretId (以 AKID 开头) TENCENT_SECRET_ID=AKIDxxxxxxxxxxxxxxxx # SecretKey (32 位字符串) TENCENT_SECRET_KEY=xxxxxxxxxxxxxxxx ``` ### 环境变量 ```bash export TENCENT_SECRET_ID="AKIDxxxxxxxxxxxxxxxx" export TENCENT_SECRET_KEY="xxxxxxxxxxxxxxxx" ``` ## API 说明 本技能使用 **腾讯云 API 3.0**: - API 端点:`dnspod.tencentcloudapi.com` - API 版本:`2021-03-23` - 认证方式:TC3-HMAC-SHA256 签名 - 文档:https://cloud.tencent.com/document/product/1427 **优势:** - ✅ CAM 权限管理,支持子账号 - ✅ 与腾讯云产品深度集成 - ✅ 全面的错误码和 SDK 支持 - ✅ 性能优化,全球部署 **签名方法:** - 算法:TC3-HMAC-SHA256 - 文档:https://cloud.tencent.com/document/product/1427/56189 ## 安全提示 ⚠️ **API 密钥等同于密码,请妥善保管!** - 不要将密钥提交到 Git 仓库 - 不要将密钥分享给他人 - 定期更换密钥 - 如已泄露,立即禁用并重新创建 ## 常见问题 ### Q: 密钥格式错误? A: SecretId 应该以 `AKID` 开头,约 20 位;SecretKey 是 32 位字符串 ### Q: 提示"域名不存在"? A: 使用 `--create-domain` 参数自动创建域名,或先在控制台添加域名 ### Q: 如何查看现有记录? A: 使用 `list_records.py` 脚本: ```bash python scripts/list_records.py --domain example.com ``` ### Q: 支持哪些记录类型? A: 支持 A、AAAA、CNAME、MX、TXT、NS、SRV、CAA 等常见类型 ## 相关文档 - [腾讯云 API 3.0 文档](https://cloud.tencent.com/document/product/1427) - [签名方法 v3](https://cloud.tencent.com/document/product/1427/56189) - [API 密钥管理](https://console.cloud.tencent.com/cam/capi) - [API Explorer](https://console.cloud.tencent.com/api/explorer) --- **版本**: 3.0 (使用腾讯云 API 3.0) **更新**: 2026-03-01 **API**: 腾讯云 API 3.0 (TC3-HMAC-SHA256)