node.js - 运行现有数据流模板 GCS_Text_Bigquery 时出现错误 : The template parameters are invalid. Google Cloud 函数

标签 node.js google-cloud-platform google-cloud-functions google-cloud-dataflow

我正在构建一个带有存储触发器的云函数,并尝试从内部运行数据流。我使用现有的 GCS_Text_BigQuery 模板创建了一个数据流作业“jsonbq-1”,创建了一个简单的 uDF 来获取传入的 CSV 数据并将其放入表中。 执行了云函数,调用了Dataflow,没有任何响应,log:Error中显示错误:模板参数无效。

我不确定错误在哪里。

Index.js 看起来像这样。

`const 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}`);
// console.log(err);
//console.log(projectId);
//console.log(authClient);
 google.auth.getApplicationDefault(function (err, authClient, projectId) {
 if (err) {
   throw err;
 }
console.log(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}`,
   output_Table: 'titanium-gamma-212906:np_cf_1.cf1',
   //bigQueryLoadingTemporaryDirectory: 'gs://test-bucket-np'
 },
 jobName: 'json-bq1',
 gcsPath: 'gs://dataflow-templates/latest/GCS_Text_to_BigQuery',
 //jobName: 'json-bq1',
 //gcsPath: 'gs://dataflow-templates/latest/GCS_Text_to_BigQuery',
 //output_Table: 'titanium-gamma-212906:np_cf_1.cf1',
 //javascriptTextTransformFunctionName: 'transform',
 //bigQueryLoadingTemporaryDirectory: 'gs://test-bucket-np'
 }
 }, 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": "24.0.0"
  }
}

日志:

The LOG

提前感谢各位。

最佳答案

GCS_Text_to_Bigquery 模板有几个必需的参数,但您的调用中似乎缺少这些参数:

  1. “您要处理的文本的 GCS 位置” 输入文件模式

  2. “带有 BigQuery 架构描述的 JSON 文件” JSONPath

  3. “要写入的输出主题” 输出表

  4. “用于转换输出的 javascript fn 的 GCS 路径” javascriptTextTransformGcsPath

  5. “UDF Javascript 函数名称” javascriptTextTransformFunctionName

  6. “BigQuery 加载过程的临时目录” bigQueryLoadingTemporaryDirectory

关于node.js - 运行现有数据流模板 GCS_Text_Bigquery 时出现错误 : The template parameters are invalid. Google Cloud 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51811013/

相关文章:

javascript - 在 python 服务器上从 Fabric.js JSON 构造图像

firebase - 在 Firestore 中创建关注者和关注模型的最佳方法是什么?

firebase - 使用 firebase-functions-test 运行离线测试时缺少 `client_secret`

node.js - Babel 模块中必须使用 import 加载 ES 模块 NODEJS 错误

javascript - 如何处理 Node.js/express 中的错误

google-cloud-platform - 传输服务数据不一致: Google Ads (AdWords) <> BigQuery

google-apps-script - GCP App Script API Auth 仅对两个用户不起作用(代码 : 403, "PERMISSION_DENIED")

node.js - 如何从firestore数据库中的云功能更新多个文档?

javascript - 在 Javascript 中将多个 Promise 插入数组时处理单个错误

angularjs - 从输入将数组发布到数据库