0

我想建立一种方法(使用 GCP)来自动和频繁地下载托管在 mlab 上的一个 MongoDB 实例的副本/备份,并使用它来恢复/填充另一个也在 mlab 上的 MongoDB 实例。我的思考过程如下:

  1. 使用 Cloud Scheduler 在 GCP 上创建一个 cron 作业。这个 cron 作业每周都会触发关于 pub/sub 主题的消息。
  2. 接下来,我将设置一个云函数来监听这个发布/订阅主题,所以云函数每周都会被调用
  3. 最后,在云函数(用 Python 编写)中,我会以某种方式调用mongodump我的 mlab mongodb 实例。然后我会mongorestore用下载的备份打电话

我的问题是它mongodumpmongorestore通用的命令行实用程序,与 Python 并没有真正的关联。在本地,我可以只安装它们,但是,我认为我不能使用云功能来做到这一点。我的问题是这样的,

  1. 有没有办法让我使用mongodumpPython 中的云函数或从云函数下载备份?
  2. 有没有更简单的方法来完成整个过程?(即每周从 GCP 下载一次备份)
4

1 回答 1

0

Cloud Functions 运行时是只读的,但可tmp写目录除外。这意味着无法运行或安装可执行文件,例如mongodumpmongorestore

我为您看到的用例的可能性是:

  1. 使用 Python MongoDB 客户端库通过 Cloud Functions 执行任务。也许pymongo
  2. Cloud Run与包含mongodumpmongorestore通过 HTTP 请求从 Cloud Function 函数调用此 Cloud Run 服务的 Docker 映像一起使用。
于 2020-05-20T10:23:19.937 回答