Здравствуйте, я в отчаянии.
Я пытаюсь импортировать данные в Google BigQuery, используя Cron и NodeJS скрипт. Но я получаю сообщение об отказе в доступе:
Access Denied: Dataset arcane-pillar-XXX:MyProj: User does not have bigquery.datasets.get permission for dataset arcane-pillar-XXX:MyProj
- Я создал служебную учетную запись bq-data-import-user@arcane-pillar-XXX.iam.gserviceaccount.com
- Я создал ключ, скачал его как JSON файл и установите переменную среды
- Когда я запускаю сценарий NodeJS на локальном компьютере, я получаю сообщение об ошибке.
- Я проверил учетную запись с помощью Policy Troubleshooter. Устранитель неполадок говорит, что разрешение предоставлено.
Я много раз пытался восстановить учетную запись, но ничего не помогло. Я проверил, что нет несоответствия проекта, потому что ошибка изменяется, когда я удаляю набор данных.
Любые советы?
![enter image description here](https://i.stack.imgur.com/L0OGR.png)
#!/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);
}