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

Google Cloud功能-错误:找不到模块google-Cloud/bigQuery

史绍晖
2023-03-14

我正在努力创建一个云函数,将avro文件从GCS移动到BigQuery,每当一个新文件在GCS着陆。我在GCP中使用云函数ui。我有512 MB的内存分配。触发器是谷歌存储。事件类型(如果完成/创建)。源代码是内联编辑器。

下面是我的代码。我可以成功部署,但是我在部署后收到了下面的错误,并且没有任何东西移动到BigQuery。

此外,我正在尝试从bucket中的文件夹中移动avro文件,因此我不会直接从顶部父bucket中提取。这就是下面代码的目的,因为我试图进入名为“example_spend/”的文件夹

错误:找不到模块google cloud/bigquery

'use strict';

exports.createExampleTableFromFile = function(event, callback) {
const file = event.data;
if (file.resourceState === 'exists' && file.name && 
    file.name.indexOf('example_spend/') !== -1) {

console.log('Processing file: ' + event.data.name);


const BigQuery = require('@google-cloud/bigquery');
const Storage = require('@google-cloud/storage');
const assert = require('assert');


 const filename = event.data.name;
 const bucketName = event.data.bucket;


const projectId = "gcp-pilot-192921";
const datasetId = "example_etl";
const tableId = filename.slice(0,filename.indexOf(".")).toLowerCase();  


const bigquery = new BigQuery({
  projectId: projectId,
});

const storage = Storage({
  projectId: projectId
});  


const metadata = {
  sourceFormat: 'AVRO', 
  autodetect: true, 
  writeDisposition: 'WRITE_TRUNCATE'
};

bigquery
  .dataset(datasetId)
  .table(tableId)
  .load(storage.bucket(bucketName).file(filename), metadata)
  .then(results => {
    const job = results[0];


    assert.equal(job.status.state, 'DONE');
    console.log(`Job ${job.id} to load table ${tableId} completed.`);  


    const errors = job.status.errors;
    if (errors && errors.length > 0) {
      throw errors;
    }

  })
  .catch(err => {
    console.error('Error during load job:', err);
  });

callback();
}};

共有1个答案

濮阳振
2023-03-14

看起来您没有向函数添加任何依赖项:

在使用内联编辑器时,单击python的“requirements.txt”或javascript的“package.json”,可以在其中输入函数需要运行的所需包,然后在函数启动时导入这些包。请注意,如果需要,您还可以指定版本,例如在python中:requests==2.19.0

 类似资料:
  • 问题内容: 我已经很长时间没有使用Node.js了,也从未使用过express。当我启动应用程序时,它刚刚返回: 启动test.html时发生错误。这是代码: 我自己的路 : 为什么呢 编辑: 这是我的新app.configure: 但它返回: 问题答案: 我假设test.html是一个静态文件。要渲染静态文件,请像这样使用静态中间件。 这告诉express在应用程序的公共目录中查找静态文件。 指

  • 我刚刚开始使用webpack,很难获得多入口点示例来构建。网页包。配置。示例中的js文件包括以下行 这对我来说是个错误 在四处搜索时,我找到了将CommonChunkPlugin与表达式一起使用的其他示例 失败并出现错误 进一步搜索发现了许多示例,包括 我的构建现在失败了 我不知道该如何进行。

  • 当运行我的项目包时,我有上面的标题错误,在我试图使用 npm安装xml2json 但是,我只有以下错误,你能给我建议或想法,从这个问题中走出来吗... 编辑:: 1 在我安装了更新的Visual Studio 2005到2012后,当我运行npm安装xml2json和npm安装xml2json--unsece-perm时,我得到下面的错误, 提前感谢,戈帕尔·R

  • 运行command:时,出现以下错误: 错误输出:module.js:339 throw err;^错误:在Function.module._resolveFileName(module.js:337:15)在Function.module._load(module.js:287:25)在module.require(module.js:366:17)在require(module.js:385:

  • 问题内容: 我的Node应用程序在本地运行良好,但是在部署到Heroku时遇到错误。该应用程序使用Sequelize在一个文件夹,其中包含,和。在本地,我可以使用中的以下代码导入模型: 这很好,但是,当我部署到Heroku时,应用程序崩溃并显示以下错误: 最初我以为是由于区分大小写(本地mac与heroku linux),但是我移动了文件,进行了git commit,然后又移回并再次提交,以确保在

  • 我的系统似乎不愿意找到mysql模块。在尝试allot之后,我仍然得到Modulenotfound错误:没有名为MySQL的模块。这是我到目前为止所做的: 1. 2. 这似乎不起作用,所以我做了以下操作: 但这似乎也不起作用。 此外,我的系统似乎找不到mysql-connector-python-rf 有什么可能出问题的猜测吗?