Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform Google Cloud函数-错误:找不到模块Google Cloud/bigquery_Google Cloud Platform_Google Bigquery_Dependencies_Google Cloud Functions_Google Cloud Storage - Fatal编程技术网

Google cloud platform Google Cloud函数-错误:找不到模块Google Cloud/bigquery

Google cloud platform Google Cloud函数-错误:找不到模块Google Cloud/bigquery,google-cloud-platform,google-bigquery,dependencies,google-cloud-functions,google-cloud-storage,Google Cloud Platform,Google Bigquery,Dependencies,Google Cloud Functions,Google Cloud Storage,我正在努力创建一个云函数,在新文件登陆GCS时,将avro文件从GCS移动到BigQuery。我正在GCP中使用云函数ui。我分配了512MB的内存。触发因素是谷歌存储。如果完成/创建,则为事件类型。源代码是内联编辑器 下面是我的代码。我可以成功部署,但部署后我收到以下错误,并且没有任何内容移动到BigQuery 此外,我正在尝试从bucket中的文件夹中移动avro文件,因此我不会直接从顶部父bucket中提取。这就是下面代码的目的,因为我试图进入名为example_expense的文件夹/

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

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

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

错误:找不到模块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();
}};

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

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


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

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


谢谢你,本。我完全错过了那部分的设置。轻松修复,谢谢您的帮助@Bava总是很乐意投票/接受答案,而不是说谢谢:我以为我得到了答案,但我仍然错过了一些东西。下面是我放在package.json中的内容。部署成功,但我收到了相同的错误:找不到模块google cloud/bigquery。有什么想法吗?{name:abc,version:1.0.0,description:test,main:index.js,脚本:{test:echo\Error:no-test-specified\&exit 1},作者:,许可证:ISC,依赖项:{@google cloud/bigquery:^1.3.0,@google cloud/storage:^1.4.0,google身份验证库:^1.2.1,断言:1.4.1,异步:^2.6.0,事件:^1.1.1,fs:0.0.1-security,记录器:0.0.1,express:^4.16.2,承诺:^8.0.1,util:^0.10.3}谢谢,本。我完全错过了设置的这一部分。简单修复,谢谢你的帮助!@Bava总是很乐意投票/接受答案,而不是说谢谢:我以为我有,但我仍然错过了一些东西。下面是我在package.json中放的东西。部署成功,但我收到了相同的错误:找不到模块google cloud/bigquery.有什么想法吗?{name:abc,版本:1.0.0,描述:test,main:index.js,脚本:{test:echo\Error:no-test-specified\&&exit 1},作者:,许可证:ISC,依赖项:{@google cloud/bigquery:^1.3.0,@google cloud/storage:^1.4.0,google身份验证库:^1.2.1,断言:1.4.1,异步:^2.6.0,事件:^1.1.1,fs:0.0.1-security,记录器:0.0.1,express:^4.16.2,承诺:^8.0.1,util:^0.10.3}你的投票率很低。重要的是,你必须使用投票下方张贴的答案左侧的勾号来标记已接受的答案。这将提高你的投票率。通过访问此链接了解其工作原理:谢谢!我不知道这有多重要。谢谢你让我知道。在BigQuery周围加上括号。api需要注意存储不支持…常量{BigQuery}=需要“@google cloud/bigquery”;你的评分很低。因此,重要的是,你必须使用投递答案左侧投票下方的勾号来标记已接受的答案。这将提高你的评分。通过访问此链接查看此功能:谢谢!我不知道这有多重要。谢谢你让我知道。在B周围放上括号api需要它注意存储不需要…const{BigQuery}=require'@googlecloud/BigQuery';