Облачная функция: TypeError: Невозможно прочитать свойство 'auth' из неопределенного - PullRequest
0 голосов
/ 07 июня 2018

Я использую Google Cloud Functions и написал функцию в консоли.Но я продолжаю получать эту ошибку:

Ошибка типа: невозможно прочитать свойство 'auth' из неопределенного

Вот мой index.js

var {google} = require('googleapis');
const { auth } = require('google-auth-library');

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();
};

Вот мой package.json.

{
  "name": "sample-cloud-storage",
  "version": "0.0.1",
    "dependencies": {
    "googleapis": "^21.3.0",
    "google-auth-library":  "^1.6.0" 
  }
}

Я создал эту функцию непосредственно в интерфейсе консоли облачных функций Google.Я пытаюсь следовать примеру здесь, но я считаю, что это было построено локально.Принимая во внимание, что я пытаюсь использовать интерфейс консоли Google Cloud Functions напрямую.Поскольку я уже нахожусь в GCP и пишу эту функцию в пользовательском интерфейсе консоли - нужно ли проходить аутентификацию?Разве он не должен получать учетные данные пользователя и идентификатор проекта напрямую?

Облачные функции: Подробная трассировка стека: Ошибка: Не удается найти модуль 'googleapis'

Спасибо!

1 Ответ

0 голосов
/ 08 июня 2018

Я только что сделал быстрый тест и смог заставить его работать, используя

const google = require('googleapis'); 

и удалив

const { auth } = require('google-auth-library');

Кроме того, я использовал следующий package.json

{
  "name": "sample-cloud-storage",
  "version": "0.0.1",
  "dependencies": {
    "googleapis": "24.0.0"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...