Azure函数:可以在function.json中使用环境变量吗?

Ruf*_*son 9 azure kudu azure-functions

我目前正在使用git push部署选项来部署一些azure函数的副本.函数的function.json文件有多个"连接"条目链接到不同的存储帐户(即blob触发器和表输出).在已部署功能的不同副本中,我想连接到不同的存储帐户.是否有任何特殊语法可以在function.json中用于填充环境变量中的"连接"字符串?

我想另一种方法是将function.json编辑为自定义kudu步骤的一部分,但环境变量似乎与其他azure应用服务产品更加一致.

mat*_*ewc 12

这已经有效了,实际上是您处理连接字符串的推荐方法,因为您不希望使用源代码签入这些字符串.您可以使用应用程序设置名称作为connection值,我们将解决它.在下面的EventHub触发功能,价值MyEventHubReceiver,MyEventHubSenderMyEventHubPath会自动从应用程序设置解决:

    "bindings": [
        {
            "type": "eventHubTrigger",
            "name": "input",
            "direction": "in",
            "connection": "MyEventHubReceiver",
            "path": "%MyEventHubPath%"
        },
        {
            "type": "eventHub",
            "name": "output",
            "direction": "out",
            "connection": "MyEventHubSender",
            "path": "%MyEventHubPath%"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

通常,大多数绑定属性都支持%%分辨率语法,允许您将实际值存储在应用程序设置中,以实现安全性和可配置性.

  • 为了向其他人说明这一点:“连接”参数 = 不包含“%”符号,值将被解析为应用程序设置(使用连接字符串定义应用程序设置作为其值 https://azure.microsoft.com /en-gb/documentation/articles/storage-configure-connection-string/#create-a-connection-string-to-an-azure-storage-account)。对于其他参数 = 使用“%”符号来解析应用程序设置。 (5认同)
  • 在 function.json 中使用环境变量的语法不一致。对于 'connection' 属性,您不需要 '%',但对于其他属性,您需要。 (4认同)
  • 是的,这在过去引起了人们的一些困惑。我在我们的 repo [here](https://github.com/Azure/azure-webjobs-sdk-script/issues/454) 中创建了一个问题,让我们决定是否应该进行任何更改。该问题还描述了当前行为的基本原理:) (2认同)