Диспетчер секретов GCP выдает: аргумент "путь" должен иметь строковый тип.
Я работаю над использованием GCP Secrets Manager из Node.js 8.x (я знаю, он древний, но это новейшая среда выполнения узла GA в облачных функциях). Однако, когда я запускаю их пример, он продолжает выдавать ошибку gRPC из этой строки:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type object
Строка кода, которую я пытаюсь проверить:
const secretClient = new SecretManagerServiceClient();
Я получаю ту же ошибку, если я работаю на Node 8.x или Node 10.x, и если я использую последнюю версию секретов lib (3.0.0
) или устаревшую версию для Node 8.x (1.2.1
)
1 ответ
Похоже, эта ошибка возникла из-за того, что в библиотеке запущен браузер, а не режим узла, что заставляет ее избегать "резервного" режима, пытаясь неправильно найти путь gRPC. Решение потому чтоwindow
входит в сферу охвата, обманывая isBrowser
логика.
Основная причина
Основная причина в том, что jest
использовался для тестирования, которое по умолчанию выполняется вjsDom
режим, вставив глобальные объекты вродеwindow
.
Исправить
Добавьте следующее в свой jest.config.json
файл.
testEnvironment: 'node',