r - 如何将环境变量传递给 Shinyapps

标签 r shiny

我想将安全参数传递给 shinyapps.io 部署,以便我的应用程序可以通过以下方式获取它们:
Sys.getenv('PASSWORD_X')
我在 deployApp 中找不到任何相关信息rsconnect 中的函数包裹。

最佳答案

您可以使用 Renviron.site .Renviron 将私有(private)数据存储和访问到您 Shiny 的应用程序中。 (see here for Hadley Wickham's recommendations and instructions - ref example below)。

解决方案:

存储 API 身份验证 key / token (Attribution: Hadley Wickham)

如果您的包支持基于 API key 或 token 的身份验证工作流程,请鼓励用户将其存储在环境变量中。我们使用包装了 Github v3 API 的 github R 包来说明这一点。根据您的 API + 包定制此模板,并包含在 README.md 或小插图中。

  • 在个人访问 token 区域中创建个人访问 token
    您的 GitHub 个人设置。将 token 复制到剪贴板。
  • 确定您的主目录。没有把握?在 R 中输入 normalizePath("~/")
    安慰。
  • 创建一个新的文本文件。如果在 RStudio 中,请执行 File > New File >
    文本文件。
  • 像这样创建一行:

    GITHUB_PAT=blahblahblahblahblahblah

  • 名称GITHUB_PAT提醒您这是针对哪个 API 和 blahblahblahblahblahblah是您的个人访问 token ,从剪贴板粘贴。
  • 确保文件中的最后一行为空(如果不是,R 将静默加载文件失败。如果您使用显示行号的编辑器,则应该有两行,其中第二行为空。
  • 使用文件名 .Renviron 保存在您的主目录中。如果被问到,
    是的,您确实想使用以点开头的文件名 ..
  • 请注意,默认情况下,点文件通常是隐藏的。但在 RStudio 中,文件浏览器将使 .Renviron 可见,因此将来易于编辑。
  • 重新启动 R。.Renviron 仅在 R session 开始时处理。
  • 使用 Sys.getenv() 访问您的 token 。例如,以下是如何将 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 的方式的组合,其中 .Renviron 方法“正常工作”而 bash 的东西没有。当 R 是 Emacs 或 RStudio 的子进程时,您不能总是指望将环境变量传递给 R。将它们放在特定于 R 的启动文件中,这样可以省去一些麻烦。

    关于r - 如何将环境变量传递给 Shinyapps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39084284/

    相关文章:

    r - R图中的 Axis 如何获得Λ

    r - 如何格式化 R Shiny 中的文本显示?

    r - Shiny 中赋值错误的左侧无效(NULL)

    r - 将所有列名及其索引对保存为数据框/字典

    r - 有没有一种方法可以识别重叠区域的地理区域,而不仅仅是边界?

    r - 如何将季度和每月观察标签的常规字符串分配给数据框的行名称?

    r - eta平方是如何计算的?

    javascript - sweetalert2 文本输入,并在 R Shiny 中使用 javascript 验证文本

    在 Shiny 的主面板中右对齐元素

    r - 在 Shiny 页面中使用可变数量的输入字段