Azure Functions 代理 - 如果值包含 JSON,则无法设置 HTTP header

Azure Functions Proxy - unable to set a HTTP header if value contains JSON

我正在尝试使用代理功能设置 Report-To HTTP header,但是当 header 的值包含 JSON值。

{
    "$schema": "http://json.schemastore.org/proxies",
    "proxies": {
        "proxy1": {
            "debug": true,
            "matchCondition": {
                "methods": [ "GET" ],
                "route": "/{*all}"
            },
            "backendUri": "https://*****.z6.web.core.windows.net/{all}",
            "responseOverrides": {
                "response.headers.Reply-To": "{{ \"TEST\":0 }}"
            }
        }
    }
}

此功能returns HTTP 错误 503 服务不可用 "Functionhost is not running." 如果我在 Azure 上尝试。如果在本地启动,运行时会显示以下错误消息:

[26. 11. 2018 21:29:45] A ScriptHost error has occurred
[26. 11. 2018 21:29:45] Microsoft.Azure.AppService.Proxy.Common: ; expected
[26. 11. 2018 21:29:45] ; expected
[26. 11. 2018 21:29:45] The name 'TEST' does not exist in the current context
[26. 11. 2018 21:29:45] Only assignment, call, increment, decrement, and new object expressions can be used as a statement.
[26. 11. 2018 21:29:45] Stopping Host

我的代理定义有问题还是 Azure Functions 中的错误?

这是有效的 json,所以我觉得这是一个错误。为此,我在我们的回购协议中记录了一个问题 here

作为解决方法,您可以将 header 值更改为 "{{ 'TEST':0 }}",使用单引号而不是转义双引号。