发布Azure函数和文件转换

问题描述 投票:0回答:1

我有很多Azure Functions项目要部署在Azure上。我为它们设置了构建和管道。例如,这是一个 释放 的 Azure 功能。

Azure DevOps Release

变量 我为环境定义了所有变量(一个用于开发,一个用于阶段,一个用于生产)。

Variables

在Azure上部署Azure Functions只有一个步骤。我想在 local.settings.json 环境的正确设置。我找不到如何配置。

Deploy Azure Function App

在其他项目中,如果我使用 Azure App Service Deploy有一节 File Transforms & Variable Substitution Options.

File transformations

如何在发布Azure Functions时进行同样的操作?正确的策略或最佳实践是什么?

更新和解决方案

我认为这是很直接的。我想这就是解决办法。在 应用程序设置 在...之下 应用程序和配置设置,我必须指定每个变量和它的值,使用 ... 在那一行。

enter image description here

enter image description here

我可以在这个字段中输入或复制。语法是

-variableName "$(variablename)"

我使用引号是因为如果值中有任何空格(例如在连接字符串中,你有 Initial Catalog) DevOps会引发一个错误。对于数组,我仍然使用 :.

azure azure-functions azure-pipelines-release-pipeline
1个回答
1
投票

另一种方法是使用 文件转换任务 用管道变量替换local.settings.json文件中的变量。参见 此处 了解更多信息。

使用文件转换任务,无需在部署 Azure Functions 任务的 App 设置中指定每个变量及其值。

你可以在部署 Azure Functions 任务之前添加一个 File Transform 任务。然后在你的管道变量中定义变量(例如 KeyVaultSettings.ClientId)中的管道变量。

enter image description here

然后设置 包或文件夹, 文件格式目标文件 在文件转换任务中。请看下面的内容。

enter image description here


0
投票

这是我在我的Azure Functions管道中所做的(这是yaml,但你会明白的)。

  1. 在你的流水线中,每个环境创建一个阶段
  2. 创建您的管道变量,并根据范围(阶段)指定不同的值。
  3. 在你的管道中创建一个配置条目(见图),并将变量值符号化。
  4. 在你的Azure函数中消耗配置条目(在我的例子中,我使用环境变量来实现)。

在您的 azure 功能配置中使用管道环境

© www.soinside.com 2019 - 2024. All rights reserved.