nbr*_*osz 1 azure azure-devops azure-functions azure-pipelines
我可以从 Microsoft Azure Functions 应用程序仪表板将环境变量注入 Azure Functions 应用程序:
使用System.Environment.GetEnvironmentVariable("AppName"),我可以检索配置的值:
[FunctionName("Status")]
public static async Task<IActionResult> Status(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get")] HttpRequest req)
{
    var appName = System.Environment.GetEnvironmentVariable("AppName");
    return new OkObjectResult($"{appName} - OK");
}
但我希望环境变量来自 Azure DevOps Pipeline Variables 作为发布管道的一部分,以便该值可以与特定版本、范围等相关联:

如何才能做到这一点?能做到吗?
Azure Dev Ops (ADO) 通常会将您的管道变量或来自其库的管道变量链接组作为应用程序设置提供,但这意味着不同堆栈中的不同内容。
要像 C#/dotnet 使用这些 ADO 定义的管道变量一样System.Environment.EnvironmentVariable使用它们(您正在使用的库或框架可能需要这些变量),需要执行一个额外的步骤。
在 ADO 中部署任务“部署 Azure Function App”的选项中,有一个名为“应用程序和配置设置”的部分,在该可扩展部分中有一个“应用程序设置”的文本框。在这里,您可以定义将注入的内容作为System.Environment.EnvironmentVariables,并为它们提供一个引用您在 ADO 中设置的管道变量的值。
语法是-FUNCTION_APP_ENVIRONMENT_VARIABLE_NAME $(PipelineOrGroupVariableName). 其中破折号后面的文本是 dotnet 应用程序中 enviro 变量的最终名称,后跟一个空格和值。要使该值引用我们的 ADO 管道变量的值,请将管道变量名称放在 中的括号之间$()。
多个变量就可以,只需使用空格分隔即可,切勿使用换行符。如果管道变量的值中有空格,则必须在对其引用周围使用双引号,如下所示:"$(PipelineVariableName)"
在OP的情况下,-AppName $(AppName)在该文本框中将允许他们在运行时检索其值作为环境变量var appName = System.Environment.GetEnvironmentVariable("AppName");
| 归档时间: | 
 | 
| 查看次数: | 3043 次 | 
| 最近记录: |