检测 R 代码是否正在从 RStudio Connect 运行

Ral*_*lph 4 r rstudio-connect

我有一些内容(用 R 语言编写)部署到RStudio Connect实例。

我希望能够做类似的事情:

if (isTRUE(is_connect)) {
  print("Running on Connect")
} else {
  print("Not running on Connect")
}
Run Code Online (Sandbox Code Playgroud)

也就是说,我想让我的代码检测它是否从 RStudio Connect 运行,并根据其环境表现不同。

如何使用 R 代码检测它是否在 RStudio Connect 上运行?

r2e*_*ans 5

我一直在使用的另一种选择是R_CONFIG_ACTIVEenvvar。来自https://docs.rstudio.com/connect/admin/process-management/#using-the-config-package,

默认情况下,RStudio Connect 启动的 R 进程设置R_CONFIG_ACTIVE为rsconnect.

这个这个,人们可能会用

if (Sys.getenv("R_CONFIG_ACTIVE") == "rsconnect") {
  print("Running on Connect")
} else {
  print("Not running on Connect")
}
Run Code Online (Sandbox Code Playgroud)

在这里不使用是安全的isTRUE,因为Sys.getenv总是返回长度为 1 的字符串;如果未设置,则返回""(长度仍为 1,只是空)。isTRUE(如果您仍然愿意,可以使用。)

如果您好奇 RSC 环境中还设置了什么,请参阅我的其他答案,了解显示环境变量(以及其他)的快速应用程序。