我有一个node.js应用程序,该应用程序可写入BigQuery中的表。在大多数情况下,它都能正常工作,但偶尔会出现401“无效凭据”错误。
我正在使用服务帐户。
const BigQuery = require('@google-cloud/bigquery');
let bigQuery;
new BigQuery({ keyFilename: __dirname + '/big_query.json', projectId: config.google.project_id_prod });
const insertToBigQuery = (dataSet, table, object) => {
return new Promise((resolve, reject) => {
if (config.releaseType === config.releaseTypeEnum.DEVELOPMENT || config.releaseType === config.releaseTypeEnum.STAGING) {
logger.info(`Insert started to BigQuery. Dataset - ${dataSet} Table - ${table}`);
}
bigQuery.dataset(dataSet).table(table).insert(object, { ignoreUnknownValues: false })
.then(() => {
resolve({ insertedWithError: false });
})
.catch(err => {
bigQuery.dataset(dataSet).table(table).insert(object, { ignoreUnknownValues: true })
.then(() => {
resolve({ insertedWithError: true, err: JSON.stringify(err) });
})
.catch(err => {
reject(`ERROR: ${JSON.stringify(err)}`);
});
});
});
};
大多数情况下,此代码有效。有时我会收到401“无效凭据”错误