# 云函数部署指引

## 快速部署步骤

### 方法一：微信开发者工具（推荐）

1. **打开微信开发者工具**
   - 打开项目 `qinling-carbon-app`

2. **上传云函数**
   - 在左侧文件树中，找到 `cloudfunctions` 目录
   - 右键点击 `tif-processor-simple-node` 文件夹
   - 选择 **"上传并部署：云端安装依赖"**
   - 等待部署完成（约1-3分钟）

3. **验证部署**
   - 点击微信开发者工具顶部的 **"云开发"** 按钮
   - 在云开发控制台中，选择 **"云函数"** 标签页
   - 确认 `tif-processor-simple-node` 状态为 **"正常"**
   - 可点击 **"测试"** 按钮进行简单测试

### 方法二：命令行部署（需要 cloudbase-cli）

1. **安装 CloudBase CLI**
   ```bash
   npm install -g @cloudbase/cli
   ```

2. **登录 CloudBase**
   ```bash
   tcb login
   ```

3. **部署云函数**
   ```bash
   cd cloudfunctions/tif-processor-simple-node
   tcb functions:deploy tif-processor-simple-node -e [你的环境ID]
   ```

## 测试云函数

### 测试文件准备
1. 准备测试TIF文件，命名格式：`nep20XXXX.tif`
   - 示例：`nep202301.tif`（2023年1月数据）
   - 可在 `data/` 目录下查找示例文件或使用自己的TIF文件

2. 文件大小建议：小于5MB，分辨率适中

### 测试步骤
1. **启动小程序**
   - 在微信开发者工具中点击 **"编译"**
   - 确保编译成功，无错误

2. **登录管理员页面**
   - 点击小程序底部的 **"管理员"** 标签
   - 使用管理员账号登录：
     - 用户名：`admin`
     - 密码：`admin123`

3. **上传TIF文件**
   - 选择年份：2023
   - 选择月份：1
   - 点击 **"选择TIF文件"**，选择 `nep202301.tif`（或你的测试文件）
   - 点击 **"上传TIF文件"**

4. **观察处理过程**
   - 显示上传进度（0% → 100%）
   - 显示处理状态（上传中 → 处理中 → 完成）
   - 最终显示结果弹窗，包含碳汇统计信息

### 预期结果
- **成功处理**：显示碳汇统计信息和处理模式
- **文件生成**：在云存储中生成PNG文件
- **数据保存**：统计信息保存到本地存储
- **前端更新**：主页图片轮播可显示新生成的图片

## 故障排除

### 常见问题

#### Q1: 云函数部署失败
- **检查**：网络连接是否正常
- **检查**：微信云开发环境是否已开通
- **解决**：在微信开发者工具中重新尝试上传

#### Q2: 依赖安装失败
- **检查**：云函数目录中是否有 `node_modules`
- **解决**：右键点击云函数目录，选择 **"云端安装依赖"**
- **解决**：本地安装依赖：`cd cloudfunctions/tif-processor-simple-node && npm install`

#### Q3: TIF文件上传失败
- **检查**：文件名格式是否正确（nep20XXXX.tif）
- **检查**：文件大小是否过大（建议<10MB）
- **解决**：使用示例文件或减小文件大小

#### Q4: 处理时间过长
- **原因**：TIF文件太大或网络延迟
- **解决**：使用较小的测试文件（1-2MB）
- **解决**：检查云函数超时设置（当前为300秒）

#### Q5: 统计信息未保存
- **检查**：查看浏览器/开发者工具控制台日志
- **检查**：本地存储是否已满
- **解决**：重新上传文件，观察日志输出

## 验证成功

部署成功后，你可以通过以下方式验证：

### 1. 云函数日志验证
- 打开云开发控制台 → 云函数 → 日志
- 查看 `tif-processor-simple-node` 的调用日志
- 确认处理模式为 `real`（真实处理）

### 2. 数据验证
- 在小程序存储中查看碳汇统计信息：
  - 打开微信开发者工具 → 存储
  - 查找 `carbon_stats_2023` 等键值
  - 确认数据格式正确

### 3. 图片验证
- 打开云开发控制台 → 存储
- 查看 `qinling-carbon-data/images/` 目录
- 确认生成的PNG文件存在

## 性能优化提示

1. **首次调用较慢**：云函数冷启动需要时间，后续调用会更快
2. **文件大小限制**：建议TIF文件小于5MB以获得最佳性能
3. **并发处理**：云函数支持并发，但建议逐个文件处理
4. **监控日志**：定期查看云函数日志，了解性能情况

## 下一步

1. **批量处理**：上传多个TIF文件进行批量转换
2. **数据分析**：使用提取的碳汇数据进行图表展示
3. **功能扩展**：添加更多图像处理选项（缩放、裁剪、滤镜等）
4. **自动化**：设置定时任务自动处理新上传的TIF文件

---

**部署状态检查清单**：
- [ ] 云函数已上传并部署
- [ ] 依赖安装成功
- [ ] 测试TIF文件准备就绪
- [ ] 管理员登录成功
- [ ] TIF文件上传成功
- [ ] 碳汇统计信息正确显示
- [ ] PNG文件成功生成

完成以上所有步骤，你的TIF处理云函数就已成功部署并可用！