Files
DNSPod-Skill/ENV_SETUP.md
OpenClaw 7abea390ad Initial commit: Tencent DNSPod DNS deployment skill
- Support for single record deployment
- Batch deployment from JSON config
- Service quick deployment (Web/API/CDN)
- .env file support for secure credentials
- Complete documentation
2026-03-01 11:44:05 +08:00

4.3 KiB

环境变量配置说明

.env 文件(推荐方式)

.env 文件用于存储敏感配置信息,如API密钥。该文件不会被提交到Git(已添加到 .gitignore)。

配置步骤

  1. 复制示例配置

    cp .env.example .env
    
  2. 编辑 .env 文件

    # 使用你喜欢的编辑器
    vim .env
    # 或
    nano .env
    # 或
    code .env
    
  3. 填入你的腾讯云API密钥

    TENCENT_SECRET_ID=你的SecretId
    TENCENT_SECRET_KEY=你的SecretKey
    
  4. 保存文件

获取API密钥

访问腾讯云控制台: https://console.cloud.tencent.com/cam/capi

  • 点击「新建密钥」或查看现有密钥
  • 复制 SecretIdSecretKey
  • ⚠️ 重要: SecretKey只在创建时显示一次,请妥善保存!

环境变量方式

如果不使用 .env 文件,可以直接设置系统环境变量。

Linux/Mac

临时设置(当前会话有效):

export TENCENT_SECRET_ID="你的SecretId"
export TENCENT_SECRET_KEY="你的SecretKey"

永久设置(添加到 ~/.bashrc 或 ~/.zshrc):

echo 'export TENCENT_SECRET_ID="你的SecretId"' >> ~/.bashrc
echo 'export TENCENT_SECRET_KEY="你的SecretKey"' >> ~/.bashrc
source ~/.bashrc

Windows

PowerShell临时设置:

$env:TENCENT_SECRET_ID="你的SecretId"
$env:TENCENT_SECRET_KEY="你的SecretKey"

PowerShell永久设置:

[System.Environment]::SetEnvironmentVariable('TENCENT_SECRET_ID', '你的SecretId', 'User')
[System.Environment]::SetEnvironmentVariable('TENCENT_SECRET_KEY', '你的SecretKey', 'User')

CMD临时设置:

set TENCENT_SECRET_ID=你的SecretId
set TENCENT_SECRET_KEY=你的SecretKey

验证配置

方式1: 查看 .env 文件

cat .env

方式2: 查看环境变量

# Linux/Mac
echo $TENCENT_SECRET_ID

# Windows PowerShell
echo $env:TENCENT_SECRET_ID

# Windows CMD
echo %TENCENT_SECRET_ID%

方式3: 测试连接

python scripts/list_records.py --domain example.com

如果成功,将显示域名记录列表(可能为空)。

安全建议

推荐做法

  1. 使用 .env 文件 - 方便管理,不会被Git跟踪
  2. 使用 .env.example - 提供配置模板,不含真实密钥
  3. 定期轮换密钥 - 定期更换API密钥提高安全性
  4. 使用子账号 - 创建独立的子账号,只授予必要权限
  5. 设置IP白名单 - 在腾讯云CAM中限制API调用来源IP

避免做法

  1. 不要将密钥硬编码在代码中
  2. 不要在Git仓库中提交 .env 文件
  3. 不要在生产环境使用默认密钥
  4. 不要在公开场合分享密钥
  5. 不要使用弱密钥或重复使用密钥

常见问题

Q1: .env 文件不生效?

原因: 可能是文件权限问题或路径错误。

解决:

# 确认文件存在
ls -la .env

# 确认文件内容
cat .env

# 确认文件格式(无BOM,Unix换行符)
file .env

Q2: 还是提示找不到密钥?

解决: 检查 .env 文件是否在项目根目录:

pwd  # 应该在 tencent-dnspod 目录
ls .env  # 应该能看到 .env 文件

Q3: Git提交时意外包含了 .env?

解决:

# 1. 从Git中移除(但保留本地文件)
git rm --cached .env

# 2. 确认 .gitignore 包含 .env
echo ".env" >> .gitignore

# 3. 提交修改
git add .gitignore
git commit -m "Remove .env from tracking"

# 4. 更换已泄露的密钥!
# 访问: https://console.cloud.tencent.com/cam/capi

Q4: 多个项目需要不同的密钥?

解决: 每个项目使用独立的 .env 文件:

# 项目A
cd /path/to/project-a
echo "TENCENT_SECRET_ID=项目A的ID" > .env

# 项目B
cd /path/to/project-b
echo "TENCENT_SECRET_ID=项目B的ID" > .env

权限管理建议

创建专用子账号

  1. 访问: https://console.cloud.tencent.com/cam
  2. 创建子账号,只授予DNSPod权限
  3. 为子账号创建API密钥
  4. 使用子账号密钥而非主账号密钥

最小权限原则

只授予必要的权限:

  • DNSPod只读权限(查询记录)
  • DNSPod读写权限(管理记录)
  • 避免授予所有产品的访问权限

参考文档