【发布时间】:2018-06-11 15:46:59
【问题描述】:
我目前正在将 R 微服务部署到 azure 函数,但我遇到了一些问题。 我从 azure 站点扩展安装了 R 可执行文件,我正在使用 PowerShell 使用这个 R 可执行文件运行我的 R 脚本。
脚本完全运行,但我得到了一些奇怪的错误,这些错误似乎不是来自我的 R 脚本,而是特定的 PowerShell 错误。 这是我得到的日志:
2018-06-11T15:37:14.373 [Info] PowerShell Timer trigger function executed at:06/11/2018 15:37:14
2018-06-11T15:37:17.924 [Info] [1] "Retrieving data"
2018-06-11T15:37:18.158 [Error] D:\home\R-3.3.3\bin\x64\Rscript.exe : Loading required package: methods
at run.ps1: line 4
+ D:\home\R-3.3.3\bin\x64\Rscript.exe
+ ___________________________________
+ CategoryInfo : NotSpecified: (Loading required package: methods:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
at run.ps1: line 4
+ D:\home\R-3.3.3\bin\x64\Rscript.exe
+ ___________________________________
+ CategoryInfo : NotSpecified: (:) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandErrorMessage
at run.ps1: line 4
+ D:\home\R-3.3.3\bin\x64\Rscript.exe
+ ___________________________________
+ CategoryInfo : NotSpecified: (:) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandErrorMessage
2018-06-11T15:37:20.837 [Info] [1] "Finished retrieving data, computing first function"
2018-06-11T15:37:21.040 [Info] [1] "2nd function.."
2018-06-11T15:37:21.040 [Info] [1] "3rd function.."
2018-06-11T15:37:21.061 [Info] [1] "last function.."
2018-06-11T15:37:21.061 [Info] [1] "Finished everything"
at run.ps1: line 4
+ D:\home\R-3.3.3\bin\x64\Rscript.exe
+ ___________________________________
+ CategoryInfo : NotSpecified: (:) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandErrorMessage
2018-06-11T15:37:21.290 [Error] Exception while executing function: Functions.TimerTriggerEngagement. Microsoft.Azure.WebJobs.Script: PowerShell script error. Loading required package: methods.
2018-06-11T15:37:21.337 [Error] Function completed (Failure, Id=..., Duration=7114ms)
我的 PowerShell 脚本运行很简单:
cd D:\home\site\wwwroot\microservices
D:\home\R-3.3.3\bin\x64\Rscript.exe engagement.r
例如,当我在 RStudio 中运行我的脚本时,我没有警告/错误。 有什么线索吗?这些错误的解释?
编辑(回答)
正如 ahmelsayed 指出的,这是 azure 中 powershell 的一种奇怪行为。通过运行一些测试,一个像
这样简单的代码library('httr')
library('parsedate')
library('jsonlite')
print('Testing the azure functions')
for (i in 1:10){
print(i)
}
返回
2018-06-18T09:43:08.204 [Error] D:\home\R-3.3.3\bin\x64\Rscript.exe : Loading required package: methods
at run.ps1: line 4
+ D:\home\R-3.3.3\bin\x64\Rscript.exe
+ ___________________________________
+ CategoryInfo : NotSpecified: (Loading required package: methods:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
2018-06-18T09:43:09.003 [Info] [1] "Testing the azure functions"
2018-06-18T09:43:09.048 [Info] [1] 1
2018-06-18T09:43:09.048 [Info] [1] 2
2018-06-18T09:43:09.048 [Info] [1] 3
2018-06-18T09:43:09.048 [Info] [1] 4
2018-06-18T09:43:09.048 [Info] [1] 5
2018-06-18T09:43:09.048 [Info] [1] 6
2018-06-18T09:43:09.048 [Info] [1] 7
2018-06-18T09:43:09.048 [Info] [1] 8
2018-06-18T09:43:09.081 [Info] [1] 9
2018-06-18T09:43:09.081 [Info] [1] 10
2018-06-18T09:43:09.173 [Error] Exception while executing function: Functions.TimerTriggerTest. Microsoft.Azure.WebJobs.Script: PowerShell script error. Loading required package: methods.
2018-06-18T09:43:09.220 [Error] Function completed (Failure, Id=..., Duration=5223ms)
似乎只是在 R 中加载几个包并运行简单的代码会在 Powershell 中产生错误,即使所有包都正确加载并且代码运行良好。
【问题讨论】:
-
你能发布 engagement.r 脚本或至少一个足够小的例子来重现吗?还要在 R 中使用
cat而不是print以避免向量[1]输出。除了日志文件,控制台是否显示任何内容?
标签: r powershell azure azure-functions