GOOGLE_APPLICATION_CREDENTIALS не найдено? - PullRequest
0 голосов
/ 04 апреля 2020

Я установил для своего GOOGLE_APPLICATION_CREDENTIALS значение ~ / mailcreds. json примерно так

export GOOGLE_APPLICATION_CREDENTIALS="~/mailcreds.json"

Однако каждый раз, когда я запускаю свой проект DialogFlow, который влечет за собой его запрос, я получаю этот

{
"timestamp": "2020-04-04T19:50:12.350+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Error reading credential file from environment variable GOOGLE_APPLICATION_CREDENTIALS, value '~/mailcreds.json': File does not exist."}

Я озадачен этим! Файл находится в моем домашнем каталоге!

1 Ответ

0 голосов
/ 04 апреля 2020

Когда вы делаете что-то вроде cat ~/mailcreds.json, тильда ~ обрабатывается оболочкой и преобразуется в значение в переменной окружения $HOME. Однако не все среды выполнения обрабатывают это правильно.

Лучше всего изменить это на что-то вроде

export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"

, это работает, потому что оболочка интерпретирует $HOME немедленно, поэтому GOOGLE_APPLICATION_CREDENTIALS будет задан полный путь к файлу.

Однако еще лучше будет просто установить полный путь к файлу напрямую.

Убедитесь, что вы также запускаете проект используя учетную запись, которой разрешен доступ к файлу. Если вы работаете над проектом самостоятельно (потому что вы разрабатываете / тестируете его), то на данный момент вы должны быть в порядке, но это плохая практика для чего-то в процессе производства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...