当前位置: 首页 > 知识库问答 >
问题:

云功能部署在调度每日云SQL导出到谷歌云存储时的问题

艾翼
2023-03-14

我使用以下文章创建了一个云函数来将云SQL数据库导出到云存储:https://medium.com/@kennethteh90/how-to-schedure-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.js8。要执行的函数:doBackup()

我在以下期间收到错误:

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

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

共有1个答案

方权
2023-03-14

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

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

 类似资料:
  • 我试图设置一个接收器,将某个特定的谷歌云平台日志导出到谷歌云存储桶,但无法使其工作,文档似乎与GCP控制台上发生的情况不匹配。 2)我选择“创建导出”并填写字段: 接收器名称=defaultServiceToGCSSink 下沉服务=Google Cloud 存储接收器目的地=mylogsbucket 点击OK后,我收到一条消息:未知用户电子邮件地址:defaultServiceTogcssink

  • 我尝试使用my console在谷歌云平台上部署云功能。我使用的命令是, 但我得到了这个错误, 错误:(gcloud.functions.deploy)操作错误:代码=3,消息=Build failed:无法解析存储源:googleapi:错误404:未找到,未找到 我试着在谷歌上搜索,但似乎以前没有人遇到过这个错误消息。我也尝试过改变项目,部署效果很好。 如果有人知道是什么导致了这个错误,以及我

  • 当我运行gcloud函数deploy gcp_test——trigger resource xxx-test-123——trigger event google时。存储对象我发现语法错误。 错误:(gcloud.functions.deploy)操作错误:code=3,message=Function load错误:文件索引中的代码。无法加载js。你的代码中有语法错误吗?详细堆栈跟踪:/user\

  • 从今天开始,我无法使用gCloud cli部署云功能。 下面是我部署云功能的gloud命令: 我有个错误: 部署功能(可能需要一段时间-最多2分钟)...失败。 错误:(gcloud.functions.deploy)操作错误:代码=3,消息=生成失败:生成已超时 我曾经在一个小时前编写过相同的脚本,但现在,团队中没有人能够部署云功能,并得到相同的错误。 在stackDrive日志中,我只看到以下

  • 我们每天都在运行从谷歌云SQL到谷歌云存储(跨项目)的自动化完整数据库导出,使用云函数触发导出。(见本文) 从4天前开始,我们收到一个403错误,日志显示:“服务帐户没有bucket所需的权限。” 我们还没有进行任何权限更改,运行:仍然显示,我们的谷歌云SA具有我们预期的“编写者”角色。 从我们的角度来看,似乎我们已经随机失去了此工作流的权限。有没有人对如何调试这个并让这个工作流重新工作有什么建议

  • 我正在使用cloud函数部署python函数(版本=3.7,内存=1go,超时=1s)。 到目前为止,它非常有效。 但是,我注意到,默认情况下,云函数将其区域设置为。我需要我的函数在中,所以我使用