Search code examples
powershellazurepowershell-3.0azure-resource-managerazure-resource-group

Azure Resource Template Parameters Hell


How do I know which parameters to provide and which parameters are overridden in Azure Resources ?

I am getting these errors and losing lots of time figuring out which parameters I need

Should I just start with the parameters in the parameters file and paste the defaultvalues in templates? ( If so why don't they already do this?)

Is there a way to read the actual parameters of the running system. As when I used the Automation Script part in azure the values are null

enter image description here

"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "virtualMachineScaleSets_Services_name": { "value": null },

The Error comes when I paste the parameters from the old config

14:01:16 - InvalidTemplate: Deployment template validation failed: 'The template parameters 'loadBalancers_LB_xwxservices_MainNode_name, loadBalancers_LB_xwxservices_MainNode_id, loadBalancers_LB_xwxservices_MainNode_id_1, clusters_xwxservices_name, loadBalancers_LB_xwxservices_MainNode_id_5, loadBalancers_LB_xwxservices_MainNode_id_6, loadBalancers_LB_xwxservices_MainNode_id_7, virtualMachineScaleSets_MainNode_name, loadBalancers_LB_xwxservices_MainNode_id_2, loadBalancers_LB_xwxservices_MainNode_id_3, loadBalancers_LB_xwxservices_MainNode_id_4' in the parameters file are not valid;

New-AzureRmResourceGroupDeployment : 12:27:25 PM - Error: Code=InvalidTemplate; Message=Deployment template validation failed: 'The template parameters 'nt1applicationStartPort, nt2applicationEndPort, nt0ephemeralEndPort, clusterName, nt2ephemeralEndPort, nt2InstanceCount, nt0applicationStartPort, nt1fabricHttpGatewayPort, virtualNetworkName, certificateThumbprint, nt0fabricHttpGatewayPort, nt1InstanceCount, adminUserName, applicationDiagnosticsStorageAccountName, nt1ephemeralEndPort, vmNodeType0Size, nt1applicationEndPort, dnsTAName, lbTAIPName, nt0fabricTcpGatewayPort, lbName, dnsName, adminPassword, nicName, nt2fabricTcpGatewayPort, nt1fabricTcpGatewayPort, secondaryCertificateUrlValue, vmNodeType2Size, clusterLocation, nt1ephemeralStartPort, supportLogStorageAccountName, nt2applicationStartPort, sourceVaultValue, nt0ephemeralStartPort, vmStorageAccountName, nt0applicationEndPort, publicIPAddressName, computeLocation, nt2fabricHttpGatewayPort, nt2ephemeralStartPort, vmNodeType1Size, secondaryCertificateThumbprint, certificateUrlValue, nt0InstanceCount, lbIPName' in the parameters file are not valid; they are not present in the original template and can therefore not be provided at deployment time. The only supported parameters for this template are 'virtualMachineScaleSets_Services_name, virtualMachineScaleSets_Stateful_name,


Solution

  • you need to relax.

    Autogenerated arm templates aren't meant to be production ready, they need refinement. that is expected. Azure cannot infer any single parameter value instead of you. Usually most of the parameters are populated, but sometimes - not. Nothing you can do about it, fill them out manually.