0

Ich habe eine Vorlage ich zu einer Ressourcengruppe implementieren bin mit der diesen Parameter nimmt:Parameter an Azure ARM-Vorlagen

"envPrefixName": { 
    "type": "string", 
    "metadata": { 
    "description": "Prefix for the environment (2-5 characters)" 
    }, 
    "defaultValue": "cust1", 
    "minLength": 2, 
    "maxLength": 5 
}, 

Ich mag diese Parameter machen einen Wert, außer Kraft gesetzt werden kann, wenn die cdmlet ist wie so genannt:

$AzureParams = @{ 
     ResourceGroupName = $ResourceGroup 
     TemplateUri = $TemplateUri 
     TemplateParameterUri = $TemplateParamUri 
     Mode = "Complete" 
     envPrefixName = "sunlb" #Override default parameter value 
     Force = $true 
    } 

    New-AzureRmResourceGroupDeployment @AzureParams 

ich habe diesen Ansatz versucht, aber die Lösung weiter zu versuchen, den Wert in der Vorlage festgelegt zu verwenden, und nicht die, die als Parameter in meinem Anruf durchgeleitet.

EDIT: Es ist möglich, dass die TemplateParameterUri Datei verursacht und ausstellen?

Antwort

1

Wenn Sie TemplateParameterUri angeben, wird die Parameterdatei verwendet, um die Vorlage zu implementieren (und den Wert aus der Datei zu übernehmen), und envPrefixName würde "verloren", da die Parameter in der Vorlage nicht ausgewertet werden.

Drop the TemplateParameterUri und es wird funktionieren, wie Sie es erwarten (aber Sie haben alle Parameter in diesem Fall zu liefern, es sei denn, sie Standardwerte haben)

+0

Okay, dachte ich, dass die Ursache sein. Das ist ein Problem, wenn es Stick-Params gibt, die Sie über eine Param-Datei bereitstellen möchten, aber einige Dinge müssen dynamischer sein. Ist das ein unangemessener Anwendungsfall? – Batman

+1

bieten Standardwerte in der Vorlage, nicht in der Parameterdatei (können Sie das auch tun). Eine weitere Option - bearbeiten Sie die Parameter-Datei mit Powershell vor der Bereitstellung – 4c74356b41

+0

Klingt gut, danke für die schnelle Hilfe. – Batman