我正在尝试在Azure存储中上传blob,并且成功上传。现在,下一步是使用C ++代码处理Blob。 由于Azure函数不支持C ++,我该如何处理Blob?
答案 0 :(得分:1)
Azure Function支持运行.exe
可执行文件。因此,我建议生成您的cpp程序exe文件,然后将其上传到Azure Function并运行以下示例代码。
using System;
public static void Run(TimerInfo myTimer, TraceWriter log)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = @"D:\home\site\wwwroot\TimerTriggerCSharp1\testfunc.exe";
process.StartInfo.Arguments = "";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
string err = process.StandardError.ReadToEnd();
process.WaitForExit();
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}
答案 1 :(得分:1)
到现在为止,正如评论所说,在Azure Functions上,支持.NET,Python,Node.js,Java,没有C ++。
但是,如果您在Linux上工作,则可以考虑在Python或Node.js中调用C ++,例如,使用Extending Python with C or C++
遵循Python文档或使用C++ Addons
遵循Node.js文档。我认为将事件网格与Azure Function一起使用更简单。
并且您可以参考有关Calling C/C++ from Python?的现有SO线程。
或者在Windows上工作,另一种解决方案是将C ++代码编译为Visual Studio中的动态库,然后可以从C#代码调用C ++中的dll库。请参考MSDN文档Calling Native Functions from Managed Code
来了解它,或者参考SO线程Possible to call C++ code from C#?。
希望有帮助。