Необходимо указать учетные данные учетной записи службы в качестве параметра конструктора BigQueryClient
.
Это можно сделать с помощью параметра keyFilePath
:
$bigQuery = new BigQueryClient([
'projectId' => 'project-xxx',
'keyFilePath' => '/path/to/file.json'
]);
Также проверьте с помощью этой команды, что вы предоставили разрешения учетной записи службы:
gcloud projects get-iam-policy yourProjectID
РЕДАКТИРОВАТЬ:
Давайте рассмотрим другой подход: создание учетной записи службы и предоставление ей разрешений с нуля.
Создать новую учетную запись службы:
gcloud iam service-accounts create [NAME]
Предоставить разрешения:
gcloud projects add-iam-policy-binding [PROJECT_ID] --member "serviceAccount:[NAME]@[PROJECT_ID].iam.gserviceaccount.com" --role "roles/bigquery.admin"
Создать файл учетных данных:
gcloud iam service-accounts keys create [FILE_NAME].json --iam-account [NAME]@[PROJECT_ID].iam.gserviceaccount.com
Добавьте путь к этому файлу в конструктор
BigQueryClient
и запустите ваш код.