首页 > 解决方案 > Octopus Deploy - 使用索引从数组中选择对象

问题描述

我创建了一个名为ProcessingScript以下值的变量

#{each SiteKey in BatchProcessing.SiteKeys}
ftp://#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}@
{/each}

这个想法是我遍历我的数组SiteKeys ,看起来像这样SiteKeys ['customer1-a' customer1-b'] ,我的 FtpUsers 看起来像这样['usera', 'userb']

但是,当我预览它打印的变量时

#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}customer1-a 
#{BatchProcessing.FtpUser[#{Octopus.Template.Each.Index}]}customer1-b

它完全忽略了索引

标签: octopus-deploy

解决方案


我认为您不能按索引引用列表变量。

您可以尝试以下变量:

BatchProcessing.SiteKeys = "customer1-a,customer1-b"
BatchProcessing.FtpUser[customer-a] = "usera"
BatchProcessing.FtpUser[customer-b] = "userb"

这个模板:

#{each SiteKey in BatchProcessing.SiteKeys}
ftp://#{BatchProcessing.FtpUser[#{SiteKey}]}@#{SiteKey}
{/each}

我认为如果您仅将 SiteKeys 变量用于循环,您也可以摆脱它。

BatchProcessing[customer-a].FtpUser = "usera"
BatchProcessing[customer-b].FtpUser = "userb"
#{each site in BatchProcessing}
ftp://#{site.FtpUser}@#{site}
{/each}

推荐阅读