应用程序设置包含Azure存储帐户连接字符串。函数应用程序被设计成生成SAS令牌。已将Azure存储帐户连接字符串设置为应用程序应用程序的应用程序的一部分。当应用程序托管在Azure上时,它会返回未定义的内容。
但是,存储在local.settings.json中的相同连接字符串能够在本地运行时读取。
Bellow是在Azure函数中读取连接字符串的代码。
let connectionString = process.env.AZURE_STORAGE_CONNECTION_STRING;
context.log("context - Connection String ", connectionString);这将在本地运行时返回正确的连接字符串,但在发布到服务器时不会返回正确的连接字符串。Local.Settings.json代码

函数应用程序设置

发布于 2022-09-22 23:43:30
函数应用程序无法读取应用程序设置的原因是,当使用terraform的azurerm_linux_function_app模块创建应用程序时,我没有提到application_stack设置。但是,已部署的代码能够正常工作,但无法读取应用程序设置。从Azure Portal中的应用程序设置配置页面可以看出这一点。

在上面的图片中,我们找不到FUNCTIONS_WORKER_RUNTIME,如果我们正确地指定了它的application_stack.,这个设置将由Terraform放置另外,请注意,在通过Visual代码部署函数应用程序时,将正确指定这些应用程序。同样,当通过Azure Portal创建函数时,它再次被正确设置。
Bellow是节点函数应用程序azurerm_linux_function_app的正确代码。

在部署上述代码之后,应用程序设置如下所示。

因此,当我们可以从process.env对象读取值时,请确保正确地反映了这个值。
发布于 2022-09-22 08:48:10
我也遇到过类似的问题,连接字符串在部署到azure时是空的。
通过将存储帐户的连接字符串粘贴到应用程序设置中,我已经解决了这个问题,如下所示:
我单击了连接字符串名,然后将连接字符串粘贴到那里,如下所示。

然后,当我在门户中设置值时,它对我有效,尝试这样做。
https://stackoverflow.com/questions/73808044
复制相似问题