代码之家  ›  专栏  ›  技术社区  ›  Konzy262

如何以编程方式触发Azure函数在C代码中运行?

  •  0
  • Konzy262  · 技术社区  · 6 年前

    我有一个集成测试要写,包括手动运行一个函数,相当于在azure的计时器触发器上按下这个按钮…

    enter image description here

    这可以从C代码中从单独的代码库到函数代码本身进行编程吗?目前我没有访问功能代码的权限,但有访问azure的权限。

    或者,我可以从代码中更新计划,以便立即触发吗?

    到目前为止,我一直在努力寻找通过某种sdk、api调用或powershell脚本来实现这一点的方法。希望我遗漏了一些显而易见的东西

    多谢,

    2 回复  |  直到 6 年前
        1
  •  3
  •   Albondi    6 年前

    你可以创建一个 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);
    }
    
        2
  •  2
  •   Konzy262    6 年前

    我找到了我想要的 https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http

    这使我能够通过api调用以编程方式手动触发azure中的非http函数(例如计时器触发器)。