Azure Logic应用-获取Blob内容-设置内容类型

5f0d552i  于 2023-01-27  发布在  其他
关注(0)|答案(5)|浏览(154)

Azure Logic应用程序操作“获取Blob内容”不允许我们设置返回内容类型。
默认情况下,它返回的blob是二进制的(八位字节流),这在大多数情况下是无用的。一般来说,有文本(例如json,xml,csv等)会很有用。
我知道行动是在测试版。这是在短期路线图?

hmmo2u0o

hmmo2u0o1#

我找到的解决方法是使用Logic App表达式base64ToString。
例如,使用以下代码创建类型为“Compose”(数据操作组)的操作:

"ComposeToString": {
            "inputs": "@base64ToString(body('Get_blob_content').$content)",
            "runAfter": {
                "Get_blob_content": [
                    "Succeeded"
                ]
            },
            "type": "Compose"
        }

输出将是blob的文本表示。

zd287kbt

zd287kbt2#

所以我在az存储中有一个blob,里面有json,取回blob得到了一个八位字节,这是非常无用的,因为我无法解析它。
BadRequest。属性"content"在"ParseJson"操作输入中必须为JSON类型,但其类型为"application/octet-stream"。
所以我设置了一个"初始化变量",内容类型为字符串,指向GetBlobContent-〉File Content。base64转换发生在幕后,现在我可以通过变量访问我的JSON了。
无需代码。

    • JSON输出...**

    • 流程,无代码...**

好好享受!希利在坦帕...

2cmtqfgy

2cmtqfgy3#

在摆弄了很多逻辑应用程序之后,我终于明白了发生了什么。
HTTP请求的JSON输出是XML有效负载的JSON表示:

{
  "$content-type": "application/xml",
  "$content": "77u/PD94bWwgdm..."
}

所以我们可以解码,但是真的没有用,那是一个LogicApp的XML对象,我们可以用xml函数,比如xpath。

jckbn6z7

jckbn6z74#

1.您需要知道内容类型。
1.使用@{body('Get_blob_content')['$content']}单独获取内容部分。

anauzrmj

anauzrmj5#

就足以“初始化变量”并将获取Blob内容的输出作为类型“String”。这将自动解析内容:

相关问题