云功能:详细的堆栈跟踪:错误:找不到模块“googleapis”

And*_*per 1 google-cloud-platform google-cloud-dataflow google-cloud-functions

这与以下 2 个线程相关: Google 云函数 - 无法读取属性“getApplicationDefault” 从云函数触发云数据流管道 - 函数超时

我创建了一个数据流模板,它将数据从 GCS 复制到 BigQuery,作为这两个示例。

作为初始化过程的一部分,我运行

npm init
npm install --save googleapis
Run Code Online (Sandbox Code Playgroud)

这是我的index.js

    var {google} = require('googleapis');

exports.goWithTheDataFlow  = (event, callback) => {


const file = event.data;
  const context = event.context;

  console.log(`Event ${context.eventId}`);
  console.log(`  Event Type: ${context.eventType}`);
  console.log(`  Bucket: ${file.bucket}`);
  console.log(`  File: ${file.name}`);
  console.log(`  Metageneration: ${file.metageneration}`);
  console.log(`  Created: ${file.timeCreated}`);
  console.log(`  Updated: ${file.updated}`);

  google.auth.getApplicationDefault(function (err, authClient, projectId) {
     if (err) {
       throw err;
     }

 console.log(projectId);

 const dataflow = google.dataflow({ version: 'v1b3', auth: authClient });
        console.log(`gs://${file.bucket}/${file.name}`);
 dataflow.projects.templates.create({
   projectId: projectId,
   resource: {
     parameters: {
       inputFile: `gs://${file.bucket}/${file.name}`

     },
     jobName: 'cloud-fn-beam-test',
     gcsPath: 'gs://goldsgymdemo/templates/MyGCStoBQDFTemplate'
   }
 }, function(err, response) {
   if (err) {
     console.error("problem running dataflow template, error was: ", err);
   }
   console.log("Dataflow template response: ", response);
   callback();
 });

   });

 callback();
};
Run Code Online (Sandbox Code Playgroud)

这是我的 package.json (在我运行 npm init 和 npm install --save googleapis 之后)

{
  "name": "sample-cloud-storage",
  "version": "0.0.1"
}
Run Code Online (Sandbox Code Playgroud)

当我使用以下函数运行此函数时:goWithTheDataFlow & Trigger:

我收到错误:

Deployment failure:
Function load error: Code in file index.js can't be loaded.
Did you list all required modules in the package.json dependencies?
Detailed stack trace: Error: Cannot find module 'googleapis'
    at Function.Module._resolveFilename (module.js:476:15)
    at Function.Module._load (module.js:424:25)
    at Module.require (module.js:504:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/user_code/index.js:1:78)
    at Module._compile (module.js:577:32)
    at Object.Module._extensions..js (module.js:586:10)
    at Module.load (module.js:494:32)
    at tryModuleLoad (module.js:453:12)
    at Function.Module._load (module.js:445:3)
Run Code Online (Sandbox Code Playgroud)

你能帮忙吗?我缺少什么?谢谢

kom*_*ich 5

您的文件中缺少依赖项package.jsongoogleapis为其添加依赖:

{
  "name": "sample-cloud-storage",
  "version": "0.0.1",
  "dependencies": {
    "googleapis": "^21.3.0"
  }
}
Run Code Online (Sandbox Code Playgroud)