デプロイ応用

開発環境上の理由により、ARMテンプレートのパラメータで『環境名』を『dev』または『prod』で指定できるようにしました。本番環境(prod)では高い可用性が必要なため、Azure Application Gatewayをデプロイする一方、開発環境(dev)ではコスト削減のためApplication Gatewayは不要です。ARMテンプレートでこの条件分岐を実装する場合、どの要素を使うべきですか?

A.parameters セクションで複数の環境定義を作成し、手動で選択する
✗ parametersは入力値定義であり、デプロイ制御ロジックの実装には向きません。条件分岐をテンプレート内で自動化できません。
B.condition属性を使用して、環境パラメータの値に基づいてリソースのデプロイを制御する← 正解
✓ 正解です。ARMテンプレートのcondition属性は、リソースやモジュールのデプロイ可否を論理式で動的に制御します。
C.variables セクションでif文を記述して条件判定を行う
✗ variablesセクションではif文を直接記述できません。condition属性か関数を使う必要があります。
D.複数の異なるARMテンプレートを用意し、PowerShellで条件判定して実行テンプレートを選択する
✗ 複数テンプレート管理は手間が増え、単一のテンプレートでconditionを使う方が保守性に優れています。

この問題のポイント

ARMテンプレートのcondition属性は、リソースやモジュールのデプロイ可否を論理式で動的に制御します。

AZ-900:Microsoft Azure Fundamentals の問題一覧