【问题标题】:How to configure Azure Function with Azure DevOps Pipeline Variables?如何使用 Azure DevOps 管道变量配置 Azure Function?
【发布时间】:2019-12-17 08:51:02
【问题描述】:

我可以通过 Microsoft Azure Functions 应用程序仪表板将 environmental variables 注入 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 管道变量,作为发布管道的一部分,以便可以将值绑定到特定的发布、范围等:

如何做到这一点? 可以做到吗?

【问题讨论】:

    标签: azure azure-devops azure-functions azure-pipelines


    【解决方案1】:

    您可以使用 Azure Key Vault 存储机密并访问您的 Azure 函数,然后您可以从 Azure Devops 获取值并分配它。

    这里是 sample 说明如何操作。

    【讨论】:

    • 这不是完整的答案,但它引导了我。谢谢!
    【解决方案2】:

    Azure Dev Ops (ADO) 通常会将您的管道变量或来自其库的链接的管道变量组作为应用设置提供,但这意味着不同堆栈中的不同内容。

    要将这些 ADO 定义的管道变量用作 System.Environment.EnvironmentVariable,因为 C#/dotnet 使用它们(并且可能需要您使用的库或框架),还有一个额外的步骤。

    在 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"); 检索其值作为环境变量

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 1970-01-01
      • 2021-11-23
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 2023-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多