Как вызвать функцию App на портале Azure из. NET Core API - PullRequest
0 голосов
/ 23 января 2020

Мне нужно настроить приложение функции на портале Azure и получить доступ через мое. NET Базовое приложение (API).

В основном мне нужна функция, в которой нужно передать 3 параметра функционировать приложение (из C# кода) и принимать возвращаемое значение, которое должно быть в формате с данными.

Поскольку я очень новичок в этом, я мало что знаю о технико-экономических возможностях и методах реализации. Если кто-то объяснит подробными примерами, это будет очень полезно.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 23 января 2020

Вот пример того, как вы можете вызвать вашу функцию azure в базовом API-контроллере. net.

У меня есть простая функция azure, которая возвращает имя и адрес электронной почты после ее вызова. Давайте посмотрим на приведенный ниже пример:

public class InvokeAzureFunctionController : ApiController
    {
        // GET api/<controller>
        public async System.Threading.Tasks.Task<IEnumerable<object>> GetAsync()
        {
            HttpClient _client = new HttpClient();
            HttpRequestMessage newRequest = new HttpRequestMessage(HttpMethod.Get, "http://localhost:7071/api/FunctionForController");
            HttpResponseMessage response = await _client.SendAsync(newRequest);

            dynamic responseResutls = await response.Content.ReadAsAsync<dynamic>();
            return responseResutls;
        }
    }

Примечание: Просто замените локальный хост и поместите azure portal API URL

Функция тестирования для вызова контроллера:

public static class FunctionForController
    {
        [FunctionName("FunctionForController")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            // parse query parameter
            string name = req.GetQueryNameValuePairs()
                .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
                .Value;

            if (name == null)
            {
                // Get request body
                dynamic data = await req.Content.ReadAsAsync<object>();
                name = data?.name;
            }

            ContactInformation objContact = new ContactInformation();

            objContact.Name = "From Azure Function";
            objContact.Email = "fromazure@function.com";

            return req.CreateResponse(HttpStatusCode.OK, objContact);
        }
    }

Простой использованный класс ContactInformation, который я использовал:

   public class ContactInformation
    {
        public string Name { get; set; }
        public string Email { get; set; }
    }

PostMan Test:

Я позвонил controller action из Post Man, и он успешно вернул данные из моей локальной azure функции через local controller action. Смотрите снимок экрана ниже:

enter image description here

Надеюсь, вы понимаете. Просто подключи и играй сейчас.

0 голосов
/ 23 января 2020

Вы можете создать функцию HTTP Triggered Azure. HTTP-триггер Azure Функция имеет общедоступный URL c, который может использоваться вашим приложением для вызова функции Azure.

Затем вы можете отправлять параметры в запросе GET или POST в соответствии с необходимостью ваше приложение.

Функция Azure вернет HTTP-ответ.

Подробнее см. на этой странице документации .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...