2017-04-19 52 views
1

我是新Azure的功能,我创建了一个名为 “myfunction的” 蔚蓝的功能,其中包含
1)控制台应用程序文件(.exe)
代码:Azure的功能执行错误

console.writeline("Hello World!"); 

2 )run.ps1(Powershell的)
代码:

.\<consoleappname>.exe 

3)function.json
代码:

{ 
    "bindings": [ 
    { 
     "type": "timerTrigger", 
     "direction": "in", 
     "schedule": "*/15 * * * * *", 
     "runOnStartup": false 
    } 
    ] 
} 

当我运行这个功能,它会引发如下错误:

Error: 
              
Function ($nmfunction) Error: The binding name  is invalid. Please assign a valid name to the binding.  
              
Session Id: 3366132a28a043bab13f1cfa28781c9b 
              
Timestamp: 2017-04-19T14:14:03.962Z 

当我添加"name":"nmfunction"到JSON约束力,但它不会在UI引发任何错误,但仍然不运行控制台应用程序,并在日志中抛出错误,

2017-04-19T14:20:25.618 Function started (Id=9bc53d11-1189-43c1-9497-4438713025fa) 
2017-04-19T14:20:26.009 .\ConsoleApp1.exe : The term '.\ConsoleApp1.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 
at run.ps1: line 1 
+ .\ConsoleApp1.exe 
+ _________________ 
    + CategoryInfo          : ObjectNotFound: (.\ConsoleApp1.exe:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException 
2017-04-19T14:20:26.009 Function completed (Failure, Id=9bc53d11-1189-43c1-9497-4438713025fa, Duration=389ms) 
2017-04-19T14:20:26.024 Exception while executing function: Functions.nmfunction. Microsoft.Azure.WebJobs.Script: PowerShell script error. System.Management.Automation: The term '.\ConsoleApp1.exe' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. 
+2

尝试将'。\ ConsoleApp1.exe'修改为'D:\ home \ site \ wwwroot \ nmfunction \ ConsoleApp1.exe' –

回答

4

把绑定的名字json文件,这的确是一个必需的参数。

您的exe文件未找到,因为您认为当前文件夹是该函数的文件夹,这不正确。默认目录是D:\Windows\system32。你可以看到,通过添加一行.ps1文件:

Write-Output "Current folder: $((Get-Item -Path ".\" -Verbose).FullName)"; 

一种选择是指定要.exe文件,这很可能是你的情况D:\home\site\wwwroot\nmfunction的绝对路径。

有一个开放issue提供了一种更直观的方式来访问本地文件。