Переменная env GOOGLE_APPLICATION_CREDENTIALS длится всего один день в облаке Google - PullRequest
0 голосов
/ 29 мая 2018

В оболочке Google, которая является частью облака Google, я установил переменную среды GOOGLE_APPLICATION_CREDENTIALS, поскольку она необходима для проекта PHP NLP [info: https://cloud.google.com/natural-language/docs/quickstart-client-libraries#client-libraries-install-php]. Мой проект работал нормально, но я заметил, что переменная GOOGLE_APPLICATION_CREDENTIALS сохраняетсямоя система только один день.Это мой третий раз, когда я его настраиваю.Мой проект не работает, когда мне не хватает обязательной переменной.Я делаю что-то неправильно?

РЕДАКТИРОВАТЬ: Это ОС по умолчанию (Debian) при создании нового приложения в движке Google App.Когда я набираю справку в оболочке Google, я получаю информацию: Ваш домашний каталог объемом 5 ГБ будет сохраняться между сеансами, но виртуальная машина эфемерна и будет сброшена примерно через 20 минут после окончания сеанса.Никакие общесистемные изменения не будут сохраняться после этого.

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Вы совершенно правы, Cloud Shell работает на эфемерном экземпляре, который сбрасывается через несколько минут после завершения сеанса, причина, по которой вы теряете содержимое переменной среды, о которой вы упоминали.

Документация о ограничения в Cloud Shell четко указывают, что он предназначен только для интерактивного использования, и любой неинтерактивный сеанс или интенсивное использование может быть автоматически прекращено с (или без) предупреждением.

Следовательно, иИсходя из вашего вопроса, что у вас есть фоновый скрипт, который работает с Cloud Natural Language , я настоятельно рекомендую вам перейти к «реальному» экземпляру Compute Engine , в котором выбудет иметь гораздо больший контроль над тем, что происходит.Это обеспечит большую гибкость, и вы сможете использовать более крупный тип компьютера, учитывая, что Cloud Shell работает на g1-small GCE экземпляре , что, как правило, недостаточно длязапустить приложение.Также, в зависимости от вашего варианта использования, вы можете даже рассмотреть App Engine .

При этом я обнаружил, что при создании экземпляра LanguageClient вы также можете не использовать Application DefaultУчетные данные и вместо этого используйте переменные keyFile или keyFilePath (объяснено в справочник по клиентской библиотеке PHP ), чтобы передать путь к ключу JSON непосредственно к вашему коду вместо чтения его из средыпеременная.

0 голосов
/ 29 мая 2018

Предположим, что вы используете Linux, убедитесь, что:

...