В упомянутом учебнике эта команда gcloud создает ключ. json:
gcloud iam service-accounts keys create ~/key.json --iam-account my-bigquery-sa@${GOOGLE_CLOUD_PROJECT}.iam.gserviceaccount.com
Затем вы можете использовать следующий код:
// 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/key.json',
projectId: 'my_project',
};
const bigquery = new BigQuery(options);
Аутентификация с использованием файла ключа учетной записи службы
Я не знаю, где вы запускаете свой код, но в учебнике есть строка, в которой вы устанавливаете переменную env, поэтому вам не нужно проходить аутентификацию, используя ключ Файл. json в вашем коде:
export GOOGLE_APPLICATION_CREDENTIALS="/home/${USER}/key.json"
Клиентские библиотеки GCP используют стратегию под названием Учетные данные приложения по умолчанию (AD C) для поиска учетных данных вашего приложения. Когда ваш код использует клиентскую библиотеку, стратегия проверяет ваши учетные данные в следующем порядке:
Сначала AD C проверяет, установлена ли переменная среды GOOGLE_APPLICATION_CREDENTIALS. Если переменная задана, ADC использует файл учетной записи службы, на который указывает переменная. В следующем разделе описано, как установить переменную среды.
Если переменная среды не задана, AD C использует учетную запись службы по умолчанию, которая состоит из Compute Engine, Kubernetes Engine, Cloud Run, App Engine и Cloud. Функции обеспечивают приложения, работающие в этих службах.
Если AD C не может использовать ни один из указанных выше учетных данных, возникает ошибка.