You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中使用pins包对接GCS时遇资源占用错误及后续问题

R语言vetiver+pins操作GCS的问题排查与解决

问题1:vetiver_pin_write报资源占用错误,但模型已写入GCS

可能原因

  • GCS board的操作分为文件上传和元数据同步两个阶段,模型文件上传完成后,后续的元数据写入或连接清理步骤出现异常,触发资源占用报错,但核心模型文件已成功上传。
  • 本地GCS客户端的连接未被正常释放,导致资源占用告警,不影响已完成的文件上传流程。

排查与解决

  1. 捕获详细错误信息,定位问题环节:
tryCatch({
  board %>% vetiver_pin_write(v)
}, error = function(e) {
  message("错误详情: ", e$message)
  print(e$call)
})
  1. 显式管理GCS连接,避免资源泄漏:
    • 初始化board时添加cache = FALSE参数,禁用本地缓存减少资源占用:
      board <- board_gcs(
        "john-mlops-bucket",
        prefix = "iris/",
        cache = FALSE
      )
      
    • 操作完成后手动断开连接:
      pins::board_disconnect(board)
      

问题2:vetiver_write_plumber执行有警告,但plumber文件未写入GCS

核心原因

vetiver_write_plumber的设计逻辑是从指定board读取模型,在本地生成plumber文件,并不会自动将生成的文件上传到远程GCS存储桶。警告通常是模型读取环节的连接问题,或是本地文件生成的权限/路径问题。

解决步骤

  1. 先在本地生成plumber文件:
vetiver_write_plumber(
  board = board, 
  name = "iris_model", 
  rsconnect = FALSE, 
  file = "./plumber.R" # 指定本地输出路径
)
  1. 验证模型是否能正常读取,排查警告来源:
# 测试从GCS读取模型
model <- board %>% pins::pin_read("iris_model")
print(model)
  1. 将生成的plumber文件手动上传到GCS:
board %>% pins::pin_upload("./plumber.R", name = "iris_plumber")

内容的提问来源于stack exchange,提问作者TheGoat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:01:02