首页 文章

为什么无法将队列消息文本发送到Azure功能?

提问于
浏览
0

我有一个带有队列触发器的Azure Logic应用程序 . 队列消息是JSON . 当我将“消息文本”发送到Azure功能时,我得到了

UnsupportedMediaType
{
  "Message": "The WebHook request must contain an entity body formatted as JSON."
}

我以为这会直接工作 . 我试过设置请求体

@{json(<Message text>)}

select动态内容项在哪里,但我收到红色消息“输入有效的json” .

这个连接的诀窍是什么?我是否必须传入然后解析我的函数中的“消息文本”?我再次假设它会自动完成 .

2 回答

  • 0

    @{} 语法表示字符串插值 . 这意味着您的表达式 @{json(<Message text>)} 将消息文本反序列化为json,然后再次序列化它 .

    因此,您要使用的表达式是

    @json(<Message text>)
    
  • 1

    对于未来的读者 .

    我把一些(似乎是有效的)json传递给了我的webhook .

    并继续得到

    "Message": "The WebHook request must contain an entity body formatted as JSON."

    错误 .

    :(

    最后,我找到了一个json“表达式”,它完成了它的伏都教并摆脱了错误 . 我从json-expression的参数是我之前的动作输出,这是有效的json . 它显然只需要一点帮助!

    enter image description here

    原始(非设计者)代码是:

    "GenericWebHookCsharpOne": {
              "type": "Function",
              "inputs": {
                "body": "@json( body('MyPreviousAppLogicActionWhichIsAnAzureFunction'))",
                "method": "POST",
                "function": {
                  "id": "/xxxxxxxxxxxxxxxxxxxxxxxx
                }
    

相关问题