Azure函数调用二进制可执行文件,将标准输出流式传输到响应(例如child_process).Spawn为node.j
本文关键字:process child 例如 Spawn node 响应 可执行文件 二进制 函数调用 标准输出流 传输 | 更新日期: 2023-09-27 18:16:01
我有一个带有HTTP触发器的Azure函数。我想通过node.js和/或c#调用二进制文件,并将其标准输出流式传输到响应,同时在此过程中设置HTTP状态代码。
我无法通过AWS Lambda包装器使用的常用技术(例如child_process)做到这一点。产卵的node.js),虽然我可能错过了一些简单的。通过批处理函数是微不足道的,除了设置状态码,我还没有检查响应是否真正流。有没有通过node.js和/或c#来做这件事的例子?
Aaron,
这应该在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 Functions(至少目前不是)。
希望这对你有帮助!