我已经编写了示例控制台应用程序,它已经编译并且可以很好地获取数据。现在,我想将其作为Azure函数进行测试。以下是控制台应用程序中的代码块。如何将其重写为Azure的时间触发功能?谢谢。
using System;
using System.IO;
using System.Threading.Tasks;
using Newtonsoft.Json.Linq;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
namespace Google.Apis.Samples
internal class MyData
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Blah Blah Blah");
Console.WriteLine("==============");
try
{
new MyData().Run().Wait();
}
catch (AggregateException ex)
{
foreach (var e in ex.InnerExceptions)
{
Console.WriteLine("Error: " + e.Message);
}
}
}
private async Task Run()
{
// I can either use service account or supply api key.
// How do I read a JSON file from Azure function?
// then I can Get data and display results.
}
}
答案 0 :(得分:1)
所以我终于明白了。
我在VS2017中使用了Azure功能模板。
我需要添加NuGet程序包(我必须使用Azure V2来满足依赖性要求)。
而且我只需要将所有代码放入 Console App 的private async Task Run()
中,放入 Azure Function 的public static void Run([TimerTrigger( ...
。
我尚未在Azure上发布和测试它。顺便说一句,必须在Windows CMD中以管理模式初始化和启动Azure存储模拟器。
答案 1 :(得分:0)
我不确定您的意图是什么,但是如果您想使用azure函数对代码进行编码,则可能会对您有所帮助。
为了读取json文件,您可以使用:
FileStream fs = new FileStream(@"your_json", FileMode.Open)
您在此处使用一个Azure函数进行编码
using System.Net;
using System.IO;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
log.Info("Blah Blah Blah");
log.Info("==============");
try
{
await Run_Function();
}
catch (AggregateException ex)
{
foreach (var e in ex.InnerExceptions)
{
log.Info("Error: " + e.Message);
}
}
return req.CreateResponse(HttpStatusCode.OK, "OK");
}
private static Task Run_Function()
{
// I can either use service account or supply api key.
// How do I read a JSON file from Azure function?
using (FileStream fs = new FileStream(@"your_json", FileMode.Open))
{
// then I can Get data and display results.
}
return null;
}