Я предполагаю, что вы спрашиваете о облачной функции файла JS. это stagingLocation и выглядит как '--jobName = FromACloudFunction', '--project = analytics-project', '--runner = DataflowRunner', '--stagingLocation = gs: // mybucket / staging'

аюсь запустить конвейер потока данных из облачной функции, которая сама запускается при загрузке нового файла в корзину GCS. Когда я загружаю файл, функция Cloud запускается должным образом, но время ожидания истекает через несколько секунд без запуска какого-либо потока данных. Ниже приведен мой код функции:

const google = require('googleapis');
const projectId = "iot-fitness-198120";
 
exports.moveDataFromGCStoPubSub = function(event, callback) {
 const file = event.data;
 if (file.resourceState === 'exists' && file.name) {
   google.auth.getApplicationDefault(function (err, authClient, projectId) {
     if (err) {
       throw err;
     }
 
     if (authClient.createScopedRequired && authClient.createScopedRequired()) {
       authClient = authClient.createScoped([
         'https://www.googleapis.com/auth/cloud-platform',
         'https://www.googleapis.com/auth/userinfo.email'
       ]);
     }
     console.log("File exists and client function is authenticated");
     console.log(file);
     
 
     const dataflow = google.dataflow({ version: 'v1b3', auth: authClient });
     console.log(`Incoming data: ${file.name}`);
 
     dataflow.projects.templates.create({
       projectId: projectId,
       resource: {
         parameters: {
           inputFile: `gs://${file.bucket}/${file.name}`,
           outputTopic: `projects/iot-fitness-198120/topics/MemberFitnessData`
         },
         jobName: 'CStoPubSub',
         gcsPath: 'gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub',
         staginglocation: 'gs://fitnessanalytics-tmp/tmp'
       }
     }, function(err, response) {
       if (err) {
         console.error("problem running dataflow template, error was: ", err);
       }
       console.log("Dataflow template response: ", response);
       callback();
     });
 
   });
 }
};

Выполнение даже не регистрирует следующую строку console.log («Файл существует, а функция клиента аутентифицирована»); что говорит мне, что это не так далеко.

Вот вывод журнала во время выполнения:

2018-03-20 04: 56: 43.283 GST DataflowTriggeringFunction 52957909906492 Выполнение функции заняло 60097 мс, завершено со статусом: «тайм-аут»

2018-03-20 04: 55: 43.188 GST DataflowTriggeringFunction 52957909906492 Запущено выполнение функции

Есть идеи, почему он не запускает поток данных и не выдает сообщение об ошибке?

Ответы на вопрос(1)

Ваш ответ на вопрос