Cloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage

Posted

技术标签:

【中文标题】Cloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage【英文标题】:Problem with Cloud Function deployment to schedule daily Cloud SQL export to 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() 的函数

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

非常感谢!!你的建议停止了。而且我认为问题在于我在要执行的函数名称之后加上“ () ”。无论如何,谢谢!

以上是关于Cloud Function 部署问题以安排每日 Cloud SQL 导出到 Google Cloud Storage的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Cloud DataProc 上安排 cron 作业

Firebase Cloud Function 部署 tslint 错误

Cloud Function 将功能部署到所选项目

Firebase 中的 Function Cloud 是不是免费(Cloud Functions 部署需要按需付费 (Blaze) 计费方案)

在 Google Cloud Function 或 AWS Lambda 上部署 Universal Angular

GCP Gitlab CI Cloud Function NodeJs 部署失败:RESOURCE_ERROR 400