переменная env GOOGLE_APPLICATION_CREDENTIALS длится всего один день в облаке Google

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

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


person Slit    schedule 29.05.2018    source источник


Ответы (2)


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

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

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

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

person dsesto    schedule 29.05.2018
comment
Спасибо за ответ. Еще одна вещь: возникнут ли у меня проблемы с ключом при развертывании приложения через gcloud на моем экземпляре виртуальной машины? - person Slit; 29.05.2018
comment
Я не уверен, что вы имеете в виду под развертыванием приложения через gcloud на моем экземпляре виртуальной машины. Если вы имеете в виду развертывание приложения App Engine из экземпляра GCE, вам необходимо будет соответствующим образом настроить учетные данные. Но, как правило, это происходит с любым продуктом, связанным с GCP, который вы используете, вам нужно будет настроить необходимые учетные данные, чтобы использовать его (учетные записи служб, ключи API ...). - person dsesto; 29.05.2018
comment
В любом случае, не стесняйтесь открывать новый вопрос для этого, если это другая тема, заслуживающая отдельного вопроса, и примите / проголосуйте ответ, если это было полезно для вас. - person dsesto; 29.05.2018

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

person Leonardo Trocato    schedule 29.05.2018
comment
Это Linux. Когда вы создаете приложение на движке приложений, это что-то вроде Debian. - person Slit; 29.05.2018
comment
Когда я набираю справку в оболочке Google, я замечаю предложение: ваш домашний каталог 5 ГБ будет сохраняться во время сеанса, но виртуальная машина недолговечна и будет сброшена примерно через 20 минут после завершения сеанса. После этого никакие общесистемные изменения не сохранятся. - person Slit; 29.05.2018
comment
Вы используете «вытесняемый» экземпляр? Также, если у вас есть способ установить сценарий инициализации, вы можете поместить файл учетных данных в домашний каталог и установить переменную среды в сценарии инициализации. - person Leonardo Trocato; 29.05.2018
comment
Я использую Debian по умолчанию, который вы получаете, когда открываете Shell (верхний правый угол) в разделе App Engine на Google Cloud Platform. - person Slit; 29.05.2018