Как программно запустить функцию Azure для запуска в коде C #? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть интеграционный тест для написания, который включает ручной запуск функции, эквивалентной нажатию этой кнопки в Azure при срабатывании таймера ...

enter image description here

Может ли это быть сделано программно в C # от отдельной базы кода до самого кода функции?На данный момент у меня нет доступа к коду функции, но есть доступ к лазурной.

В качестве альтернативы, можно ли обновить расписание из кода, чтобы оно сразу срабатывало?

До сих пор я изо всех сил пытался найти способ сделать это с помощью вызовов sdk, api или powershell.скрипт.Надеюсь, я упускаю что-то очевидное

Большое спасибо,

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Я нашел именно то, что искал - https://docs.microsoft.com/en-us/azure/azure-functions/functions-manually-run-non-http

Это позволяет мне вручную запускать не функции HTTP (например, запуск по таймеру) в Azure программно через вызов API.

0 голосов
/ 05 февраля 2019

Вы можете создать HTTP-триггер и вызвать его из кода 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);
}
...