- Support for single record deployment - Batch deployment from JSON config - Service quick deployment (Web/API/CDN) - .env file support for secure credentials - Complete documentation
193 lines
3.8 KiB
Markdown
193 lines
3.8 KiB
Markdown
# DNSPod API常见错误处理
|
|
|
|
## 错误码说明
|
|
|
|
### 认证相关
|
|
|
|
#### AuthFailure
|
|
**错误:** 签名验证失败
|
|
|
|
**原因:**
|
|
- SecretId或SecretKey错误
|
|
- 签名算法错误
|
|
- 请求时间戳偏差过大
|
|
|
|
**解决方案:**
|
|
1. 检查环境变量 `TENCENT_SECRET_ID` 和 `TENCENT_SECRET_KEY`
|
|
2. 确认密钥未过期且状态正常
|
|
3. 检查系统时间是否准确(误差不超过5分钟)
|
|
|
|
#### AuthFailure.SecretIdNotFound
|
|
**错误:** SecretId不存在
|
|
|
|
**原因:**
|
|
- SecretId输入错误
|
|
- 密钥已被删除
|
|
|
|
**解决方案:**
|
|
- 访问 https://console.cloud.tencent.com/cam/capi 重新获取
|
|
|
|
### 域名相关
|
|
|
|
#### ResourceNotFound.Domain
|
|
**错误:** 域名不存在
|
|
|
|
**原因:**
|
|
- 域名未添加到DNSPod
|
|
- 域名名称输入错误
|
|
|
|
**解决方案:**
|
|
- 检查域名拼写
|
|
- 使用 `--create-domain` 自动创建域名
|
|
- 手动在DNSPod控制台添加域名
|
|
|
|
#### ResourceNotFound.DomainOffline
|
|
**错误:** 域名已停用
|
|
|
|
**原因:**
|
|
- 域名已被禁用
|
|
|
|
**解决方案:**
|
|
- 登录DNSPod控制台重新启用域名
|
|
|
|
### 记录相关
|
|
|
|
#### InvalidParameter.RecordAlreadyExists
|
|
**错误:** 记录已存在
|
|
|
|
**原因:**
|
|
- 相同的主机记录、类型、线路的记录已存在
|
|
|
|
**解决方案:**
|
|
- 使用 `--force` 参数强制更新
|
|
- 先删除现有记录再创建
|
|
|
|
#### InvalidParameter.RecordNotFound
|
|
**错误:** 记录不存在
|
|
|
|
**原因:**
|
|
- RecordId错误
|
|
- 记录已被删除
|
|
|
|
**解决方案:**
|
|
- 使用 `list_records.py` 查询正确的记录ID
|
|
|
|
#### InvalidParameter.RecordValueInvalid
|
|
**错误:** 记录值格式错误
|
|
|
|
**原因:**
|
|
- IP地址格式错误
|
|
- CNAME目标域名格式错误
|
|
- 记录值与类型不匹配
|
|
|
|
**解决方案:**
|
|
- A记录值必须是IPv4地址(如: 1.2.3.4)
|
|
- CNAME记录值必须是域名(如: cdn.example.com)
|
|
- MX记录值格式: `mx.example.com` (优先级单独设置)
|
|
|
|
### 限频相关
|
|
|
|
#### RequestLimitExceeded
|
|
**错误:** 请求频率超限
|
|
|
|
**原因:**
|
|
- API调用超过频率限制(默认: 20次/秒)
|
|
|
|
**解决方案:**
|
|
- 降低请求频率
|
|
- 批量操作时增加 `--delay` 参数
|
|
- 使用批量API代替循环调用
|
|
|
|
#### LimitExceeded.DomainRecord
|
|
**错误:** 域名记录数超限
|
|
|
|
**原因:**
|
|
- 该域名下的记录数超过套餐限制
|
|
|
|
**解决方案:**
|
|
- 删除不需要的记录
|
|
- 升级DNSPod套餐
|
|
|
|
### 参数相关
|
|
|
|
#### InvalidParameter
|
|
**错误:** 参数错误
|
|
|
|
**原因:**
|
|
- 必填参数缺失
|
|
- 参数格式错误
|
|
- 参数值超出范围
|
|
|
|
**解决方案:**
|
|
- 检查命令行参数拼写
|
|
- 确认参数值格式正确
|
|
- 查看API文档确认参数要求
|
|
|
|
#### MissingParameter
|
|
**错误:** 缺少必填参数
|
|
|
|
**原因:**
|
|
- 未提供必要的参数
|
|
|
|
**解决方案:**
|
|
- 使用 `--help` 查看必填参数
|
|
- 补充完整的参数
|
|
|
|
### 其他常见错误
|
|
|
|
#### UnknownParameter
|
|
**错误:** 未知参数
|
|
|
|
**原因:**
|
|
- 传递了不支持的参数
|
|
|
|
**解决方案:**
|
|
- 检查参数名称拼写
|
|
- 确认API版本支持该参数
|
|
|
|
#### UnsupportedOperation
|
|
**错误:** 不支持的操作
|
|
|
|
**原因:**
|
|
- 当前套餐不支持该功能
|
|
- 域名状态不允许该操作
|
|
|
|
**解决方案:**
|
|
- 升级DNSPod套餐
|
|
- 检查域名状态
|
|
|
|
## 调试技巧
|
|
|
|
### 1. 开启详细日志
|
|
在脚本中添加调试输出:
|
|
```python
|
|
import logging
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
```
|
|
|
|
### 2. 打印API响应
|
|
查看完整的API错误信息:
|
|
```python
|
|
print(json.dumps(result, indent=2, ensure_ascii=False))
|
|
```
|
|
|
|
### 3. 验证参数
|
|
在调用API前打印参数:
|
|
```python
|
|
print(f"参数: {params}")
|
|
```
|
|
|
|
### 4. 测试连通性
|
|
检查网络连接:
|
|
```bash
|
|
ping dnspod.tencentcloudapi.com
|
|
curl -I https://dnspod.tencentcloudapi.com
|
|
```
|
|
|
|
## 获取帮助
|
|
|
|
- **API文档:** https://cloud.tencent.com/document/product/1427/56152
|
|
- **错误码参考:** https://cloud.tencent.com/document/product/1427/56190
|
|
- **工单系统:** https://console.cloud.tencent.com/workorder
|
|
- **技术支持:** 95716 (DNSPod技术热线)
|