gpt4 book ai didi

node.js - GCP 服务帐户 - NodeJS 脚本的访问被拒绝

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:10 24 4
gpt4 key购买 nike

你好,我快绝望了。

我正在尝试使用 Cron 和 NodeJS 脚本将数据导入 Google BigQuery。但我收到访问被拒绝错误:

Access Denied: Dataset arcane-pillar-XXX:MyProj: User does not have bigquery.datasets.get permission for dataset arcane-pillar-XXX:MyProj
  1. 我已创建一个服务帐号 bq-data-import-user@arcane-pillar-XXX.iam.gserviceaccount.com
  2. 我已经创建了一个 key ,将其下载为 JSON 文件并设置了环境变量
  3. 当我在本地计算机上运行 NodeJS 脚本时,出现错误。
  4. 我已使用策略问题排查程序测试了该帐户。疑难解答程序显示已授予权限。

我多次尝试重新创建该帐户,但没有任何帮助。我已验证不存在项目不匹配的情况,因为当我删除数据集时错误发生了变化。

有什么建议吗?

enter image description here enter image description here enter image description here enter image description here

#!/usr/bin/env node
"use strict";

const {BigQuery} = require('@google-cloud/bigquery');

process.env["GOOGLE_APPLICATION_CREDENTIALS"] = "/etc/my-app/google-application-credentials.json";


const bq = new BigQuery();
const bqDataset = (await bq.dataset("TheDataset").get({ autoCreate: true }))[0]; // THIS LINE THROWS THE ERROR
const bqTable = (await bqDataset.table("TheTable").get({ autoCreate: true, schema: [ /* The BQ schema */ ] }))[0];

for await (const row of rows) { // Rows is a async generator (cursor in MySQL)
await bqTable.insert(row);
}

最佳答案

这是我们的公众article显示了对云 API 进行身份验证的推荐方法。

基于我们的公众document ,从服务帐户文件在您的应用程序中创建凭据。然后使用凭据通过 BigQuery 客户端库创建服务对象。

// Create a BigQuery client explicitly using service account credentials.
// by specifying the private key file.

const {BigQuery} = require('@google-cloud/bigquery');

const options = {
keyFilename: 'path/to/service_account.json',
projectId: 'my_project',
};

const bigquery = new BigQuery(options);

关于node.js - GCP 服务帐户 - NodeJS 脚本的访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60270628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com