Azure Devops 发布管道:我能否以某种方式将服务连接传递给 Powershell 脚本?

Azure Devops Release Pipeline: Can I Somehow Pass in a Service Connection to a Powershell Script?

我有一个 Powershell 任务,用于对 Pivotal Cloud Foundry 实例执行多个命令。现在,我无法“手动”传递 URLusernamepassword(作为锁定变量),所以我可以 cf login - 但它们已经存在作为服务连接。

是否可以“传入”服务连接以访问这些值?例如,Cloud Foundry CLI 任务有一个用于选择 Cloud Foundry 端点的下拉列表。当我创建一个任务组时,如果我在任何地方添加 $(someVariable),ADO 足够聪明,可以将它添加到任务组需要的变量列表中。我希望存在类似的东西,我可以在我的 Powershell 脚本中说 $([ServiceConnection]cfConn) 或类似的东西,魔法就会发生。

所以,你可以这样做。你会想要:

  1. 转到“服务连接”并设置“通用”服务连接以与 Cloud Foundry 一起使用. (在这个例子中我们称之为“Cloud Foundry - Dev”)

  2. 完成后,您可以将服务连接设置为根变量:

trigger:
- main
pool:
  vmImage: ubuntu-latest
variables:
  CloudFoundryServiceConnectionName: 'Cloud Foundry - Dev'
steps:
- task: CloudFoundryCLI@0
  inputs:
    cfEndpoint: ${{ variables.CloudFoundryServiceConnectionName }}
    cfCommand: 'YOUR-COMMAND'

但是,如果您尝试在同一个 CloudFoundryCLI 任务中多次登录,则此路径不适合您。该任务仅使用一个字符串来查找服务连接并进行设置。

更新:包括经典编辑器方法 要使用经典编辑器执行此操作:

  1. 转到您的版本(或管道)中的“变量”选项卡:
  2. 添加一个“ServiceConnection”变量
  3. 前往您的 Cloud Foundry CLI 任务
  4. 添加 "$(ServiceConnection)" 作为服务连接:

更新: 如果您希望在 Powershell 中直接访问自定义变量,而不是服务连接,您需要创建一个新的 Variable Azure DevOps 中 中的组

然后,您需要前往您的管道(下例中的经典示例)并绑定变量组:

最后,更新您的 Powershell 脚本以使用变量: