【问题标题】:Problem with Cloud Function deployment to schedule daily Cloud SQL export to Google Cloud StorageCloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage
【发布时间】:2020-03-17 09:13:20
【问题描述】:

我使用这篇文章制作了一个 Cloud Function 来将 Cloud SQL 数据库导出到 Cloud Storage: https://medium.com/@kennethteh90/how-to-schedule-daily-cloud-sql-export-to-google-cloud-storage-4c1bd360af06

这是我的功能:

const {google} = require("googleapis");
const {auth} = require("google-auth-library");
var sqladmin = google.sqladmin("v1beta4");

exports.exportDatabase = (_req, res) => {
  async function doBackup() {
    const authRes = await auth.getApplicationDefault();
    let authClient = authRes.credential;
    var request = {
      project: "project ID",
      instance: "instance ID",
      resource: {
        // Contains details about the export operation.
        exportContext: {
          kind: "sql#exportContext",
          fileType: "SQL", // CSV
          uri: `gs://bucketName/folderName/backup-${Date.now()}.gz`,
          databases: ["database"]
        }
      },
      // Auth client
      auth: authClient
    };

    // Kick off export with requested arguments.
    sqladmin.instances.export(request, function(err, result) {
      if (err) {
        console.log(err);
      } else {
        console.log(result);
      }
      res.status(200).send("Command completed", err, result); 
    });
  }
  doBackup();
};

package.json:

{
  "name": "export-database",
  "version": "0.0.1",
  "dependencies": {
    "googleapis": "^39.2.0",
    "google-auth-library": "3.1.2"
  }
}

作为运行时,我使用 Node.js 8。 要执行的函数:doBackup()

我在以下期间收到错误:

函数加载用户代码失败。错误信息:文件 index.js 定义的 Node.js 模块应导出名为 doBackup() 的函数

有人可以帮我解决这个错误吗?我不明白为什么我会收到这个并且不能更进一步。

【问题讨论】:

    标签: google-cloud-platform google-cloud-functions google-cloud-storage


    【解决方案1】:

    函数加载用户代码失败。错误信息:文件 index.js 定义的 Node.js 模块应导出名为 doBackup() 的函数

    您要执行的云函数名称,根据错误消息是doBackup,但您在index.js 中调用的函数是exportDatabase。请确保这些名称相同,例如将exportDatabase 更改为doBackup 或将要执行的函数更改为exportDatabase

    【讨论】:

    • 非常感谢!!你的建议停止了。而且我认为问题在于我在要执行的函数名称之后加上“ () ”。无论如何,谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2021-10-17
    • 2019-06-19
    • 2020-01-23
    • 2019-10-06
    相关资源
    最近更新 更多