gpt4 book ai didi

azure - 如何将 HttpTrigger 连接到设计器

转载 作者:行者123 更新时间:2023-12-02 07:10:34 26 4
gpt4 key购买 nike

我是 Azure Functions 新手。我正在尝试编写一个 Http 触发器,它不仅会“失败”错误的 json(与我的架构不匹配,我想向调用者提供有关他们提交的 json 的无效消息的反馈。

好的,首先我提到了 VS2017。

enter image description here

然后我把它编码起来。我可以使用PostMan来测试它,在PostMan测试期间它工作得很好。

using System;
using System.Linq;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;

////using MyExceptionLibrary;

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;

using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Schema;

namespace MyNamespace.AzureFunctionsOne
{
public static class MyFirstHttpTrigger
{
[FunctionName("MyFirstHttpTriggerFunctionName")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
{
log.Info("C# HTTP trigger function MyFirstHttpTriggerFunctionName about to process a request.");

try
{

string jsonSchemaText = @"{
'description': 'A person',
'type': 'object',
'properties':
{
'name': {'type':'string'},
'hobbies': {
'type': 'array',
'items': {'type':'string'}
}
}
}";

JSchema schema = JSchema.Parse(jsonSchemaText);

var content = req.Content;
string jsonContent = content.ReadAsStringAsync().Result;

JObject jobj = JObject.Parse(jsonContent);

IList<string> messages;
bool valid = jobj.IsValid(schema, out messages);
if (!valid)
{
string errorMsg = string.Join(",", messages);
throw new ArgumentOutOfRangeException(string.Format("Bad Json. ({0})", errorMsg));
}
}
catch (Exception ex)
{
string errorMsg = ex.Message; //// ExceptionHelper.GenerateFullFlatMessage(ex);
log.Error(errorMsg);
return req.CreateResponse(HttpStatusCode.BadRequest, errorMsg);
}

log.Info("C# HTTP trigger function MyFirstHttpTriggerFunctionName processed a request.");
return req.CreateResponse(HttpStatusCode.OK);
}
}
}

然后我将此 azure 函数“发布”到云端。

我现在的问题是......我如何将其连接到逻辑应用设计器中作为触发器?

在下面,我可以添加 generic-request-trigger。

enter image description here

在下面,我还查找了我发布的 ~my~ azure http 触发器,但没有成功。

enter image description here

所以我不知道如何让我的自定义 Http-Trigger 在逻辑应用设计器中可用,以便它可以成为入口点触发器。

我是否缺少一些基本概念?

我的最终游戏是:

我希望第三方将一些 json 作为 http 请求发布到我的 azure-logic-app。这应该是触发点。但我只希望触发器在提交有效的 json 时继续运行。 (我知道这可以通过通用请求触发器来完成)。我的警告(以及我的自定义 http 触发器)是我希望第三方获取架构违规消息,以便他们知道自己做错了什么。

最佳答案

如果我理解正确的话,您有一个希望第三方通过 HTTP 请求调用的工作流程,并且当请求正文格式不正确时,您希望返回一个友好错误。

因此,您编写了一个 Azure 函数,将其自身公开为请求端点,并进行验证。

如果是这种情况,您只需让 Azure 函数在成功验证后调用逻辑应用程序,并将原始负载传递给逻辑应用程序即可。因此,您可以使用请求触发器创建逻辑应用,保存并获取 Url,然后让函数调用该 Url。

关于azure - 如何将 HttpTrigger 连接到设计器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45638317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com