首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure函数节点JS无法读取应用程序设置返回process.env.variable_name未定义的

问Azure函数节点JS无法读取应用程序设置返回process.env.variable_name未定义的
EN

Stack Overflow用户
提问于 2022-09-22 00:00:40
回答 2查看 138关注 0票数 0

应用程序设置包含Azure存储帐户连接字符串。函数应用程序被设计成生成SAS令牌。已将Azure存储帐户连接字符串设置为应用程序应用程序的应用程序的一部分。当应用程序托管在Azure上时,它会返回未定义的内容。

但是,存储在local.settings.json中的相同连接字符串能够在本地运行时读取。

Bellow是在Azure函数中读取连接字符串的代码。

代码语言:javascript
复制
let connectionString = process.env.AZURE_STORAGE_CONNECTION_STRING;
 context.log("context - Connection String ", connectionString);

这将在本地运行时返回正确的连接字符串,但在发布到服务器时不会返回正确的连接字符串。Local.Settings.json代码

​

函数应用程序设置

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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对象读取值时,请确保正确地反映了这个值。

票数 0
EN

Stack Overflow用户

发布于 2022-09-22 08:48:10

我也遇到过类似的问题,连接字符串在部署到azure时是空的。

通过将存储帐户的连接字符串粘贴到应用程序设置中,我已经解决了这个问题,如下所示:

我单击了连接字符串名,然后将连接字符串粘贴到那里,如下所示。

​

​

然后,当我在门户中设置值时,它对我有效,尝试这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73808044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档