我有一个带有HTTP触发器的Azure函数。我想通过node.js和/或C#调用一个二进制文件,并将其标准输出流式传输到响应,同时在进程中设置HTTP状态代码。
我不能通过AWS Lambda的包装器使用的常用技术(例如node.js的child_process.spawn )做到这一点,尽管我可能遗漏了一些简单的东西。通过批处理函数来做这件事很简单,除了设置状态代码和我还没有检查响应是否真的流。有没有通过node.js和/或C#做到这一点的例子?
发布于 2016-11-02 04:49:52
亚伦
这应该像在Azure Functions环境之外一样工作。
在C#/Node中有很多关于如何执行进程并读取其输出的示例,因此我不会在这方面花费太多时间,但这里有一个运行dir并打印目录的快速函数示例:
using System;
using System.Diagnostics;
public static void Run(string input, TraceWriter log)
{
log.Info("Executing");
using (var process = new Process())
{
process.StartInfo.FileName = @"D:\Program Files (x86)\Git\usr\bin\dir.exe";
process.StartInfo.Arguments = @"D:\home";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
process.WaitForExit();
log.Info(output);
}
}关于流式输出,虽然有可能,但Azure函数不建议这样做(至少现在不是这样)。
希望这能有所帮助!
https://stackoverflow.com/questions/40366166
复制相似问题