#c# #asp.net-core-2.0 #azure-function-app
#c# #asp.net-core-2.0 #azure-function-app
Вопрос:
До сих пор я использовал только одну функцию http-триггера Azure. Однако я получил новое требование для вызова одного функционального приложения Azure F1 в другом функциональном приложении Azure F2. Я хочу использовать функциональное приложение F1, используя dll и файл function.json в azure function app F2.
Функция.json из F1:
{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.24",
"configurationSource": "attributes",
"bindings": [
{
"type": "httpTrigger",
"methods": [
"get",
"post"
],
"authLevel": "anonymous",
"name": "fnRequest"
}
],
"disabled": false,
"scriptFile": "**Function F1 dll path**",
"entryPoint": "FunctionApp1.Function1.Run"
}
Функция 2:
using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using FunctionApp1;
namespace FunctionApp2
{
public static class Function2
{
[FunctionName("Function2")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ExecutionContext executionContext)
{
return await Function1.Run(req, executionContext);
}
}
}
не мог бы кто-нибудь, пожалуйста, помочь мне с процедурой вызова.
Заранее спасибо !.
Комментарии:
1. не могли бы вы немного объяснить, что вы пытаетесь сделать? Вместо вызова другой функции я бы выполнил код, который функция 2 выполняла бы в функции 1. Другим вариантом было бы поместить сообщение в служебную шину или очередь хранения для получения 2-й функции
2. @ejwill, спасибо за ответ, да, я могу использовать служебную шину или очередь хранения. функциональное приложение F2 — это решение отладчика для функционального приложения F1. итак, я хотел бы вызвать функциональное приложение F1 из функционального приложения F2.
3. Я не понимаю, что вы подразумеваете под решением отладчика. Вы можете запустить свою функцию локально, если хотите ее отладить.
Ответ №1:
Поскольку функции function1 и function2 находятся в разных приложениях, а функция function1 отключена, вам необходимо добавить ссылку на проект FunctionApp1:
Тогда ваш function2 должен иметь возможность вызывать function1 с помощью Function1.Run(req, executionContext)
.
Кстати, обычно мы используем URL-адрес функции для вызова функции Azure вместо представления другого проекта.