2017-11-30 31 views
0

一連の質問に基づいてVM上にビルドされたAzureテンプレートを作成するプロセスで尋ねられました。現時点では、ネットワーキング側に関連する2つのパラメータフィールドがあります.1つはサブネット名(既存のサブネット)で、もう1つはNSG名(もうすでに存在しています)です。Azure ARMテンプレート - シングル入力パラメータでNSGとサブネットを設定する

このテンプレートでは、新しいサブネットまたはNSGを作成する必要はなく、環境設定を行う方法はネットワークの拡張であるため、各サブネットは特定の目的を持っているため特定のNSGに関連付けられます。 Application Subnet/NSG、SQL Subnet/NSG、Web Subnet/NSGなどのルールを定義しています。

私の質問は、人々がそれぞれサブネットとNSGを選択するのではなく(技術的に2つの別々のものを選ぶことができ、ルールは接続できない=接続なし)、私はそれらをパラメータでプロンプトしたいと思いますサーバーの "目的"(アプリケーション、SQL、Web、DMZなど)とその答えに基づいて自動的に新しいVMを追加する必要があるNSGとサブネットを設定します。

思考?

答えて

0

まあ、application \ sql \ dmzとサブネット\ nsgの間のリンクが固定され、事前定義されていれば、簡単に実行できます。作成した変数と値を計算します。

"subnet": "[concat(parameters('purpose'), ' Subnet')]", 
"nsg": "[concat(parameters('purpose'), ' Subnet/NSG')]", 

あなたがマッピングのためのオブジェクトを使用することができます。

subnets: { 
    "application": "purposesubnet", 
    "sql": "nopurposesubnet", 
    ... 
}, 
subnet: "[variables('subnets')[parameters('applicationPurpose')]]" 

同じことがNSG

+0

例えば行くには、次のとおりです。Application Serverが=用途サブネット=サブEUSアプリNSG = NSG-EUS-App私は次のようなif文を使って、Server Purpose =(Application、Web、DMZなど)変数を使う必要があると感じています: '' nsgName ':{if NSG-E US-App、[ネストされたif]) ' –

+0

私の答えを更新しました。 – 4c74356b41

関連する問題