Я хочу передать безопасные параметры для развертывания shinyapps.io, чтобы мое приложение могло получить их через:
Sys.getenv('PASSWORD_X')
Я не могу найти ничего для этого в deployApp
функции в пакете rsconnect
.
Я хочу передать безопасные параметры для развертывания shinyapps.io, чтобы мое приложение могло получить их через:
Sys.getenv('PASSWORD_X')
Я не могу найти ничего для этого в deployApp
функции в пакете rsconnect
.
Вы можете использовать Renviron.site или .Renviron для хранения и доступа к конфиденциальным данным в своем блестящем приложении. (см. здесь рекомендации и инструкции Hadley Wickham - пример ниже).
Если ваш пакет поддерживает процесс проверки подлинности на основе ключа или маркера API, рекомендуется пользователям хранить его в переменной окружения. Мы проиллюстрируем это с помощью пакета github R, который обертывает API Github v3. Создайте этот шаблон для вашего пакета API + и включите его в README.md или виньетку.
Создайте такую строку:
GITHUB_PAT = blahblahblahblahblahblah
где имя GITHUB_PAT
напоминает вам, для какого API это, и blahblahblahblahblahblah
- ваш токен доступа, вставленный из буфера обмена.
Удостоверьтесь, что последняя строка в файле пуста (если это не будет, R будет тихо загружать файл. Если вы используете редактор, который показывает номера строк, должны быть две строки, где вторая пустой.
Сохраните в своем домашнем каталоге имя файла .Renviron. Если допросить, ДА, вы хотите использовать имя файла, начинающееся с точки.
Перезагрузите R..Renviron обрабатывается только в начале сеанса R.
Используйте Sys.getenv() для доступа к токену. Например, heres, как использовать ваш GITHUB_PAT с пакетом github:
library(github)
ctx <- create.github.context(access_token = Sys.getenv("GITHUB_PAT"))
# ... proceed to use other package functions to open issues, etc.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ: зачем определять эту переменную среды через .Renviron, а не в .bash_profile или .bashrc?
Поскольку существует множество комбинаций ОС и способов запуска R, где подход "Reneviron" "просто работает", а bash - нет. Когда R является дочерним процессом, скажем, Emacs или RStudio, вы всегда можете рассчитывать на переменные среды, передаваемые R. Поместите их в файл запуска, специфичный для R, и сберегите себе некоторое горе.