gpt4 book ai didi

azure - 托管环境为什么设置为Production,host.json和local.settings.json之间的区别

转载 作者:行者123 更新时间:2023-12-03 16:53:26 25 4
gpt4 key购买 nike

我有两个关于 .net core 函数应用程序的问题。我正在使用 blobtrigger。

1)当我在本地运行我的项目时,我在命令提示符控制台上得到这个“托管环境”,我想了解这个变量集在哪里以及如何将其更改为开发。这是误导,因为我只是在本地开发。

[5/23/2019 7:00:20 PM] 主机已启动(773ms)[2019年5月23日 7:00:20 PM] 作业主机启动托管环境:生产环境内容根路径:C:Myproject\bin\Debug\netcoreapp2.1现在收听:http://0.0.0.0:7071

2) host.json 和 local.settings.json 有什么区别。什么时候可以使用host.json?到目前为止,我只使用了 local.settings.json,当我发布到 azure 时,我正在创建 local.settings.json 中提到的配置,但看起来没有使用 Host.json。 host.json 文件的用途是什么。

最佳答案

控制台上的“托管环境”来自环境变量 ASPNETCORE_ENVIRONMENT。如果未设置此变量,则默认为“Production”。

设置在这里:HostingEnvironment.cs

此默认值背后的原因在 github issue 中有描述。 .

这个变量在 dotnet core web 应用程序中很流行,但在 Azure 函数的官方文档中没有提及(我不确定为什么)。如果您编写一个 for 循环并将所有环境变量从函数内输出到控制台,您会发现默认情况下不会设置此变量 - 无论是在生产中还是在 Visual Studio 中运行时。

如果您希望在本地定义此变量,可以采用几种不同的方法。

通过命令行设置环境变量:

setx ASPNETCORE_ENVIRONMENT "Development"

在 Properties\launchSettings.json 中定义:

  "commandName": "Project",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

在 local.settings.json 中定义:

  "Values": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

请注意,当您将应用程序发布到 azure 时,此变量不会自动定义到生产环境。您必须在 Azure 门户中的“配置”->“应用程序设置”中定义此变量。

在 azure 函数中似乎还有另一个类似的环境变量,称为 AZURE_FUNCTIONS_ENVIRONMENT。这是默认在本地定义的。

AZURE_FUNCTIONS_ENVIRONMENT = Development

默认情况下,这在生产中未定义,可以在 Azure 门户中定义。

host.json 和 local.settings.json 之间的区别:

host.json 用于配置函数应用基础结构可以理解的预定义设置。它适用于本地和生产环境。但它不允许自定义设置。另一方面,local.settings.json 对于定义自定义设置很有用。 host.json 被提交到源代码管理中,但 local.settings.json 通常被排除在源代码管理之外,并且被认为是存储开发 secret 和连接字符串的好位置。

有关差异的更多详细信息:https://learn.microsoft.com/en-us/azure/azure-functions/functions-develop-vs#create-an-azure-functions-project (滚动到该部分的末尾)

host.json reference

local.settings.json reference

关于azure - 托管环境为什么设置为Production,host.json和local.settings.json之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56283270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com