我要编写一个涉及手动运行功能的集成测试,相当于在计时器触发器上按Azure中的此按钮...
这可以通过C#以编程方式从单独的代码库到功能代码本身完成吗?目前,我无法访问功能代码,但可以访问azure。
或者,我可以从代码中更新计划,以便立即触发吗?
到目前为止,我一直在努力寻找通过sdk,api调用或powershell脚本执行此操作的方法。希望我缺少明显的东西
非常感谢,
答案 0 :(得分:3)
您可以创建一个HTTP trigger并从c#代码中调用它。
示例代码:
[FunctionName("HttpTriggerCSharp")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
// parse query parameter
string name = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
.Value;
// Get request body
dynamic data = await req.Content.ReadAsAsync<object>();
// Set name to query string or body data
name = name ?? data?.name;
return name == null
? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
: req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
答案 1 :(得分:2)
我找到了我想要的东西-https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http
这使我能够通过api调用以编程方式在Azure中手动触发非HTTP功能(例如计时器触发)。