azure - 使用 VSTS 设置 Azure Function 应用程序设置,而无需在 Azure 门户中公开

标签 azure azure-functions azure-pipelines-release-pipeline azureportal

我们使用 VSTS 构建各种 Azure Web 应用程序并将它们部署到不同的环境。在发布过程中,我们对 Web.config 文件执行转换,使用 VSTS 中存储的变量来处理每个环境的连接字符串等内容。

我们希望使用 Azure Functions 做类似的事情,但遇到了问题。我们发现对 appsettings.json 文件执行转换不起作用。添加的新键/值对在 Azure 中不起作用,并且对现有键/值对的更改不会加载到 Azure 中。

我查阅了无数文档,只发现文档指出必须使用 Azure 门户存储 Azure Functions 的应用设置,或者在发布过程中使用 PowerShell 脚本进行设置。然而,这些解决方案随后会将连接字符串和其他 secret 暴露给有权访问 Azure 门户的任何人,这不是我们想要的。

如何向 Azure Functions 提供应用设置(例如 AzureWebJobsStorage 和 AzureWebJobsDashboard 值),而不将其公开在 Azure 门户上?

最佳答案

However, these solutions then expose connection strings and other secrets to anyone who has access to the Azure Portal, which is not what we want.

这不是一个正确的假设。只有该 Function App 的贡献者或管理员的用户才能查看应用设置。这些相同的用户可以看到所有已部署的文件,因此如果您在已部署的文件中包含 secret ,它们同样可见。

使用应用程序设置相对于将 secret 保存在文件中的好处是:

  • 应用设置 secret 并静态加密
  • 您不太可能在没有意识到文件包含 secret 的情况下下载已部署的文件而意外泄露 secret 。

关于azure - 使用 VSTS 设置 Azure Function 应用程序设置,而无需在 Azure 门户中公开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43632401/

相关文章:

azure - 将 power bi 连接到 Azure 数据湖第 2 代

azure - Service Fabric 可靠参与者和 I/O 操作

azure - 使用 Azure 函数和 API 连接器 Azure B2C 生成显示名称

azure 功能身份验证

c# - 同一线程可以在 Azure Functions 中同时运行多个函数吗?

azure-devops - 如何加密 Azure Devops Release Pipeline Web 配置

python-3.x - 设置 Azure 环境凭据()

从家里的 Azure ssh 连接

azure-devops - "Package or folder"在发布管道中的文件转换任务中指什么?