Azure devops 在PowerShell任务内执行az登录

Azure devops 在PowerShell任务内执行az登录,azure-devops,azure-functions,Azure Devops,Azure Functions,我们有一个Powershell脚本,它在许多JSON配置项上循环,并使用Stop-AzureRmWebApp cmdlet停止Azure函数应用程序 我们现在要做的是从已经使用az functionapp部署cli构建的zip文件中部署函数。然而,我们得到一个错误,说我们需要先登录,例如az登录 我们如何在不使用纯文本用户名或密码的情况下调用az登录?当PowerShell运行时,我们的服务主体已经隐式登录,因此是否有任何方法可以访问PowerShell中的令牌或类似内容以实现此目的?您可以将用

我们有一个Powershell脚本,它在许多JSON配置项上循环,并使用Stop-AzureRmWebApp cmdlet停止Azure函数应用程序

我们现在要做的是从已经使用az functionapp部署cli构建的zip文件中部署函数。然而,我们得到一个错误,说我们需要先登录,例如az登录


我们如何在不使用纯文本用户名或密码的情况下调用az登录?当PowerShell运行时,我们的服务主体已经隐式登录,因此是否有任何方法可以访问PowerShell中的令牌或类似内容以实现此目的?

您可以将用户名和密码存储为变量并将其保密(在变量附近选择锁图标),现在变量将被加密,而不是计划文本


p.S-您只能在设计器中执行此操作,而不能在
.yaml
管道中执行此操作。

使用用户名和密码或使用SP的标识和密码时,有两个选项可供选择

首先是使用@Shayki的建议,将变量用作“秘密”。 使用它就像一个散列,一旦你锁定它,你将只能替换它,而不能得到返回的值。所以它是相当安全的

第二种选择是使用KeyVault,这将是最好的选择,因为它使用Azure AD进行保护,并且也可以轻松更新和/或检索(使用正确的凭据)。以下是简单的步骤

  • 在Azure中创建一个KeyVault,并将服务主体的访问密钥/机密存储为“机密”——这是一个很好的开始
  • 在Azure Devops管道上创建一个称为“Azure密钥库”的新步骤
  • 填写详细信息,如Azure订阅和密钥库名称(这是步骤1中密钥库的名称)
  • 请注意秘密过滤器,如果您在密钥库中存储了多个秘密,则使用“*”将显示所有秘密。所以我建议你使用你需要的。您还可以提供以逗号分隔的机密列表。
  • 下载机密后,您将能够像管道中的任何其他变量一样使用它们,即$secretname

  • 希望这些步骤足够解释您做出选择,如果您有任何问题,请告诉我

    您使用的是托管代理还是私有代理?这是我们最终成功使用的方法。