Я понимаю, что это может быть глупый вопрос, поэтому спасибо, что нашли время, чтобы прочитать (и, надеюсь, ответить) его. Я не знаком с Javascript и с узлом, поэтому, пожалуйста, предположим, что я знаю v маленький жаргон.
Я пытаюсь удалить таблицу Big Query в node.js (v12.15.0), используя таблицу Функция .delete () из клиентской библиотеки Google (ссылка ниже).
https://googleapis.dev/nodejs/bigquery/latest/Table.html#delete
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
async function deleteTable(
datasetId = 'my_dataset',
tableId = 'my_table',
) {
console.log(`Deleting table ${tableId}`);
try {
const [table] = await bigquery
.dataset(datasetId)
.table(tableId)
.delete();
console.log(`Table ${tableId} deleted.`);
} catch (err){
console.log(err);
}
}
deleteTable();
Для запуска Google требуется аутентификация из вашего Большого запроса учетная запись, которую я скачал как файл json и сохранил в папке «учетные данные». Путь сохраняется в моем ~ / .bash_profile как переменная среды:
export GOOGLE_APPLICATION_CREDENTIALS="/Users/tom/Desktop/work/test/credentials/google_application_credentials.json"
Когда я пытаюсь запустить приведенный выше скрипт, я получаю ошибку ENOENT:
Error: The file at {[contents of google_application_credentials.json]} does not exist, or it is not a file.
ENOENT: no such file or directory, lstat '/Users/tom/Desktop/work/test/{[contents of google_application_credentials.json]}
at Object.realpathSync (fs.js:1529:7)
at GoogleAuth._getApplicationCredentialsFromFilePath (/Users/tom/Desktop/work/test/node_modules/google-auth-library/build/src/auth/googleauth.js:250:27)
at GoogleAuth._tryGetApplicationCredentialsFromEnvironmentVariable (/Users/tom/Desktop/work/test/node_modules/google-auth-library/build/src/auth/googleauth.js:192:25)
at GoogleAuth.getApplicationDefaultAsync (/Users/tom/Desktop/work/test/node_modules/google-auth-library/build/src/auth/googleauth.js:130:33)
at GoogleAuth.getClient (/Users/tom/Desktop/work/test/node_modules/google-auth-library/build/src/auth/googleauth.js:502:28)
at GoogleAuth.authorizeRequest (/Users/tom/Desktop/work/test/node_modules/google-auth-library/build/src/auth/googleauth.js:543:35)
at BigQuery.makeAuthenticatedRequest (/Users/tom/Desktop/work/test/node_modules/@google-cloud/common/build/src/util.js:374:28)
at BigQuery.request_ (/Users/tom/Desktop/work/test/node_modules/@google-cloud/common/build/src/service.js:129:18)
at BigQuery.request (/Users/tom/Desktop/work/test/node_modules/@google-cloud/common/build/src/service.js:140:36)
at Dataset.request_ (/Users/tom/Desktop/work/test/node_modules/@google-cloud/common/build/src/service-object.js:231:21) {
errno: -2,
syscall: 'lstat',
code: 'ENOENT',
path: '/Users/tom/Desktop/work/test/{[contents of google_application_credentials.json]}
Понятно, этот скрипт ищет содержимое файла. json, а не сам файл, в / Users / tom / Desktop / work / test, но я не знаю почему. Путь в профиле bash определенно правильный, а переменные среды корректно обновляются. Если бы кто-нибудь мог мне помочь, я был бы очень благодарен! Дайте мне знать, если вам нужна дополнительная информация.