stackdriver в node.js: вызывающая сторона не имеет разрешения - PullRequest
0 голосов
/ 05 октября 2019

Я пытаюсь использовать API регистрации стековых драйверов (googleapi.logging.entries.write) для регистрации ошибок и информации в проекте GCP. Я использую служебную учетную запись (используется также для более чем 20 API без проблем).

Область https://www.googleapis.com/auth/logging.admin была настроена для учетной записи службы, а также роль "администратор входа в систему"в консоли GCP IAM.

Более того, я добавил пользователя superadmin в режиме олицетворения («субъект» в параметрах JWT)

Тем не менее, у меня все еще есть ошибка «Звонящий делаетне иметь разрешения "при вызове API ведения журнала, хотя oAuthClient был правильно настроен.

Какую дополнительную роль, область действия или разрешение добавить для запуска?

Обратите внимание, что существуетОтсутствие примера и документации для использования API журналирования, что приводит к путанице, особенно в том, где установить аутентификацию, так как она появляется в 2 разных местах. Это должно быть установлено в параметрах ведения журнала ({}) и / или в параметрах entry.write ({})? Я перепробовал все комбинации, все они потерпели неудачу с одной и той же ошибкой авторизации.

Спасибо за вашу помощь

    import { google } from "googleapis";
    const t = await google.logging({ version: "v2", auth }).entries.write({
            auth,
            requestBody: {
                logName: "projects/THEPROJECT/logs/THELOGS",
                resource: {
                    type: "project",
                    labels: {
                        projectId: "THEPROJECT",
                    },
                },
                entries: [
                    {
                        severity: "INFO",
                        jsonPayload: {
                            source: "code",
                            value: "test",
                            details: "this is INFO log test",
                        },
                    },
                ],
            },
        });
        console.log(t.status);
...