Как создать несколько разделов служебной шины с использованием нескольких шаблонов ARM?

Мне было интересно, есть ли быстрый и грязный способ создания новых тем в уже созданной служебной шине с использованием отдельного шаблона?

Предположим, у меня есть 2 шаблона, оба со своими соответствующими ресурсами. Теперь в командной строке у них есть возможность развернуть шаблон1, шаблон2 или ОБА. Если выбран шаблон1, он должен развернуть свои ресурсы вместе с служебной шиной и темой с именем «Тема-шаблон1». А если выбран шаблон2, он должен сделать то же самое, но с темой с именем «Тема-шаблон2». Однако, если в качестве значения параметра выбрано «ОБА», то я хотел бы по-прежнему развернуть ОДНУ служебную шину, но теперь у меня есть ДВЕ темы: «Тема-Шаблон1» и «Тема-Шаблон2».

Есть ли способ сделать это, используя только эти два шаблона без их вложения, а также предполагая, что я делаю это, последовательно вызывая две новые команды развертывания из сценария PowerShell, если выбрано «ОБА»

Предполагая, что это логика сценария PowerShell для развертывания template1 или template2:

# Determine which application to deploy
switch ($ApplicationDeployment.ToLower())
{ 
    #Deploys template1
    "template1" {
        New-AzureRmResourceGroupDeployment -Name "temp1-$(get-date -f yyyy-MM-dd)" -ResourceGroupName $ResourceGroupName `
                                    -TemplateFile $temp1TemplateFile -TemplateParameterFile $temp1TemplateParametersFile `
                                    -Force -Verbose 2>> $temp1ErrorFileName | Out-File $temp1LogFileName -ErrorVariable ErrorMessages
    } 

    #Deploys template2
    "template2" {
        New-AzureRmResourceGroupDeployment -Name "temp2-$(get-date -f yyyy-MM-dd)" -ResourceGroupName $ResourceGroupName `
                                    -TemplateFile $temp2TemplateFile -TemplateParameterFile $temp2TemplateParametersFile `
                                    -Force -Verbose 2>> $temp2ErrorFileName | Out-File $temp2LogFileName -ErrorVariable ErrorMessages 
    } 

    #Deploys both the template1 & template2 templates
    "both" {
        New-AzureRmResourceGroupDeployment -Name "temp1-$(get-date -f yyyy-MM-dd)" -ResourceGroupName $ResourceGroupName `
                                    -TemplateFile $temp1TemplateFile -TemplateParameterFile $temp1TemplateParametersFile `
                                    -Force -Verbose 2>> $temp1ErrorFileName | Out-File $temp1LogFileName -ErrorVariable ErrorMessagess

        New-AzureRmResourceGroupDeployment -Name "temp2-$(get-date -f yyyy-MM-dd)" -ResourceGroupName $ResourceGroupName `
                                    -TemplateFile $temp2TemplateFile -TemplateParameterFile $temp2TemplateParametersFile `
                                    -Force -Verbose 2>> $temp2ErrorFileName | Out-File $temp2LogFileName -ErrorVariable ErrorMessages
    }

person LillaTheHun    schedule 06.07.2017    source источник
comment
см. этот ответ stackoverflow.com/q/44880682/4167200   -  person Thomas    schedule 10.07.2017


Ответы (1)


Я не вижу в этом никакой проблемы, просто создайте 2 шаблона и заставьте их делать то, что вы пытаетесь заставить их делать. Это просто сработает.

Но ваш подход в лучшем случае ошибочен, лучше включить эту логику в шаблон и заставить шаблон решать, что развертывать, на основе вашего ввода.

person 4c74356b41    schedule 07.07.2017