当前位置: 首页 > 知识库问答 >
问题:

如何通过Azure运营模式管道在Azure WebApp上部署容器映像时传递动态变量/机密?

陈宜修
2023-03-14

我正在部署docker镜像,并希望在运行时修改一些应用程序设置。我使用Azure运营模式构建和发布Docker映像。

构建管道:能够使用默认应用程序设置创建构建镜像。

发布管道:希望使用更新的应用程序设置部署生成映像。(要修改某些变量)

这是否可行?这样做的最佳方法是什么?

共有1个答案

微生毅
2023-03-14

您应该使用要设置的值创建库变量:

https://docs.microsoft.com/en-us/azure/devops/pipelines/library/variable-groups?view=azure-devops

之后,您将能够使用以下方法检索值:

$(customer)

我建议您将机密内容存储到Azure Key Vault中,并从中检索机密(也使用库变量)。

最后,您需要做的就是获取这些值并设置应用程序服务设置(我通过powershell任务来实现这一点):

$myResourceGroup = 'PartsUnlimitedMRP'
$mySite = 'centpartsunlimited'

$webApp = Get-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -Slot production
$appSettingList = $webApp.SiteConfig.AppSettings

$hash = @{}
ForEach ($kvp in $appSettingList) {
    $hash[$kvp.Name] = $kvp.Value
}

$hash['customer'] = $(customer)

Set-AzureRMWebAppSlot -ResourceGroupName $myResourceGroup -Name $mySite -AppSettings $hash -Slot production
 类似资料:
  • 我在Azure DevOps中有一个发布管道。这是从ACR中提取docker映像并发布到Web应用程序(linux容器)。所有工作都很好(容器按预期发布和运行),但是我似乎不能在运行时向容器传递任何自定义环境变量。 释放管道 在管道“Deploy Azure App Service”中的变量选项卡下,我添加了,然后在“App Settings”下添加了 有人知道如何在运行时通过Azure DevO

  • 我在运行Azure DevOps管道时遇到问题。 我现在正在使用SpringBootMaven项目。我希望在不生成测试(src/test)文件的情况下运行构建管道,因为项目将在生成测试文件时失败,并且可以在没有测试文件的情况下成功构建。 是否有任何设置或配置?非常感谢。 您可以查看图像以查看详细信息,谢谢。请查看日志的图像

  • 问题内容: 我有一个以结尾的Dockerfile 该可以采取一些不同的论点,我也需要暴露口容器,所以如果我运行手动我做这样的事情: 如何在Jenkinsfile中执行此操作?我的测试将与此容器通信,因此它需要在运行测试之前运行。我在测试运行之前先让它运行,但我看不到如何指定 问题答案: 您可以使用withRun的第二个参数

  • 我的任务是开发现有遗留应用程序的Azure DevOps实现。应用程序有一个QA团队,该团队使用500个自动化测试用例。此测试用例是使用量角器开发的。所有测试用例都是使用JavaScript开发的。 对于现有设置,以下是所采取的步骤:a.发布管道部署ASP。NET应用程序到Azure app services b。QA人员手动登录到VM并启动量角器测试。 我们可以使用Azure devOps管道中

  • Azure文档(https://docs.microsoft.com/en-us/Azure/devops/pipelines/tasks/build/docker?view=azure-devops)没有指定如何在Azure pipeline中运行docker容器。我们可以使用docker@2任务来构建/推送docker图像,但它没有运行容器的命令。通过查看旧版本Docker task的源代码,

  • 问题内容: 我的代码: 为什么不引用元素? Python:除非明确复制,否则所有内容都将作为参考传递[这不是True吗?] 请说明.. python如何确定 引用和复制 ? 更新: 怎么做 ? locs必须包含最终处理后的响应! 我不想使用,没有它可能吗? 问题答案: Python中的所有内容都是通过值传递和分配的,与Java中的所有值都传递和分配的方式相同。Python中的每个值都是对对象的引用