【发布时间】:2019-12-11 08:36:20
【问题描述】:
我的任务是在 AWS Lambda(无服务器计算)上运行 R 和 Knitr,但由于 Lambda 的文件夹结构不同,我遇到了一些问题。
这是我目前所拥有的(Lambda 自动调用 my_function):
library(knitr)
?knit
my_function <- function() {
knit("./test.Rnw")
}
我得到的错误是:
{
"errorMessage": "Error in file(file, ifelse(append, \"a\", \"w\")): cannot open the connection\n",
"errorType": "simpleError"
}
我几乎可以肯定它与尝试输出文件的方式/位置有关,我认为 .Rnw 文件没有任何问题,因为它达到了 100%:
processing file: ./test.Rnw
|
| | 0%
|
|.................................................................| 100%
inline R code fragments
我的问题是,如何更改 Knitr 的输出,理想情况下还可以检查它尝试创建文件的位置?或者可能只是有关错误的更多信息。
值得注意的是,我是一名 Python 开发人员,并且对 R/Knitr/Sweave/Latex/R-Markdown 的了解为 0,我正在努力让概念证明发挥作用。
【问题讨论】:
-
我不确定这个具体情况,但似乎这个库试图以
'w'模式打开文件,而在 Lambda 容器中,唯一可写的文件系统分区是/tmp.请先尝试将您的文件复制到那里然后打开。 -
@NikolayGrischenko 就是这样!请作为答案发布,以便我标记它
标签: r aws-lambda r-markdown knitr sweave