- Support for single record deployment - Batch deployment from JSON config - Service quick deployment (Web/API/CDN) - .env file support for secure credentials - Complete documentation
4.3 KiB
4.3 KiB
环境变量配置说明
.env 文件(推荐方式)
.env 文件用于存储敏感配置信息,如API密钥。该文件不会被提交到Git(已添加到 .gitignore)。
配置步骤
-
复制示例配置
cp .env.example .env -
编辑 .env 文件
# 使用你喜欢的编辑器 vim .env # 或 nano .env # 或 code .env -
填入你的腾讯云API密钥
TENCENT_SECRET_ID=你的SecretId TENCENT_SECRET_KEY=你的SecretKey -
保存文件
获取API密钥
访问腾讯云控制台: https://console.cloud.tencent.com/cam/capi
- 点击「新建密钥」或查看现有密钥
- 复制
SecretId和SecretKey - ⚠️ 重要: 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
如果成功,将显示域名记录列表(可能为空)。
安全建议
✅ 推荐做法
- 使用 .env 文件 - 方便管理,不会被Git跟踪
- 使用 .env.example - 提供配置模板,不含真实密钥
- 定期轮换密钥 - 定期更换API密钥提高安全性
- 使用子账号 - 创建独立的子账号,只授予必要权限
- 设置IP白名单 - 在腾讯云CAM中限制API调用来源IP
❌ 避免做法
- ❌ 不要将密钥硬编码在代码中
- ❌ 不要在Git仓库中提交 .env 文件
- ❌ 不要在生产环境使用默认密钥
- ❌ 不要在公开场合分享密钥
- ❌ 不要使用弱密钥或重复使用密钥
常见问题
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
权限管理建议
创建专用子账号
- 访问: https://console.cloud.tencent.com/cam
- 创建子账号,只授予DNSPod权限
- 为子账号创建API密钥
- 使用子账号密钥而非主账号密钥
最小权限原则
只授予必要的权限:
- DNSPod只读权限(查询记录)
- DNSPod读写权限(管理记录)
- 避免授予所有产品的访问权限