Мне нужно выполнить скрипт PowerShell как часть моего конвейера сборки TFS.Сценарий PowerShell является универсальным и выполняет заданный ему шаблон AWS Cloud Formation.Мне нужно, чтобы разработчик предоставил шаблону список пар ключ / значение, которые представляют параметры шаблона.Поскольку они могут использовать это для выполнения любого шаблона Cloud Formation, входные параметры будут различаться.
Как создать входной параметр на основе ключ / значение, который я могу передать в качестве параметра другому объекту PowerShell, который принимаетхэш-карта параметров?
Следующий псевдокод - это то, чего я пытаюсь достичь
param(
[Parameter(Mandatory=$true)][string]$environment,
[KeyValuePair[]]$templateParameters
)
New-CFNStack -StackName $stackName -TemplateURL $fullTemplateUrlPath -Parameters @( $templateParameters)
Я могу явно создать параметры и передать их следующим образом:
$bucketNameParameter = new-object Amazon.CloudFormation.Model.Parameter
$bucketNameParameter.ParameterKey = "bucketname"
$bucketNameParameter.ParameterValue = "FooBar"
$isVersionedParameter = new-object Amazon.CloudFormation.Model.Parameter
$isVersionedParameter.ParameterKey = "bucketname"
$isVersionedParameter.ParameterValue = "FooBar"
New-CFNStack -StackName $stackName -TemplateURL $fullTemplateUrlPath -Parameters @( $environmentParameter, @isVersionedParameter )
Поскольку каждый шаблон имеет совершенно разные параметры, которые они могут принимать, я хотел бы сделать этот скрипт гибким для облегчения повторного использования.Какой самый подход PowerShell для этого?