azure-pipelines - Azure Pipelines (YAML) - 运行脚本并传入参数
问题描述
我有一个从命令行运行的 Az Powershell 脚本(我们称之为 ```DeployApps.ps1```),它初始化了几个变量,这些变量作为参数传递到脚本中。该脚本基本上会将命名的应用程序部署到一个或多个受环境变量初始化影响的环境。
变量声明可以描述如下:
$ApplicationName = 'HelloWorldApp'
$Environment = @('DEV','SIT','UAT','PROD')
我必须强调,尽管 $Environment 变量可以初始化为一个或多个值,因此即使单独设置为“DEV”,这仍然应该很好,并且脚本将按预期运行。
ApplicationName 变量也可以初始化为多个应用程序之一,而不仅仅是 HelloWorldApp。
从命令行,脚本执行本身可以描述如下:
DeployApps.ps1 $ApplicationName $Environment
我现在需要将以上所有内容复制到 Azure 管道 (YAML) 中。Powershell 脚本本身在我的 Azure 存储库中进行了版本控制,因此从我的管道中的 Azure Powershell/Cli 任务调用或引用它相当简单直接,如下所示。
我的任务/挑战
我现在想做的是在管道中复制,这正是我从命令行执行脚本的方式。我的意思是能够在管道运行之前或运行时将这两个变量设置为所需的随机值。换句话说,我可以设置两个变量,然后将它们传递给脚本执行。
关于如何做到这一点的任何想法或建议?
解决方案
您可以为每个场景使用变量组(库)和阶段。变量组用于存储值和秘密。它们可以传递到单个 YAML 管道或多个管道以及一个或不同的作业中。您将需要创建一个变量组,初始化所有变量,然后将其链接到您的管道。您将能够执行您的管道(所有阶段)或单个阶段来执行您想要的。
如果您正在寻找更动态的选项,您可以在 YAML 文件中使用运行时参数。运行管道时,参数必须包含名称、数据类型和分配的默认值。如果要在每次运行管道时使用运行时参数手动初始化它们,则必须在管道中将触发器设置为无。
推荐阅读
- hive - 我在 csv 文件中的日期格式为 1989-09-26T09:00:00.000+05:30
- c# - System.TypeLoadException:无法使用令牌 01000115 解析类型
- python - 使用 glob 或 os.walk() 忽略特定目录中的文件
- ruby-on-rails-5 - 获得未经许可的参数警告
- performance - 如何使用硬件性能计数器捕获退役指令事件的准确值?
- powershell - PowerShell 批量转换图像
- excel - 从列表中提取唯一值时要替换为 NA 的空白
- javascript - 定位兄弟元素的子元素
- wso2 - 如何在 wso2 DSS 中查询 HBASE
- vb.net - vb自动将文本框的内容导出到PC上的txt文件中,每个文件具有不同的名称