AWSをメインで利用しているエンジニアがAzure環境の構築をPowerShellで進める連載。
リソースグループの作成から仮想マシンを起動するまでを連載していく予定です。
第3回は、作成したリソースグループに、AWSで言うところのVPCに類似するサービス「仮想ネットワーク」を作成します。
番外編
前提:リソースグループが作成されている事。
# リソースグループ名を設定
$private:resourceGroupName = "rg001"
# ロケーションを設定
$private:location = "japaneast"
# タグを設定
$tags = @{"環境名"="ITC109"}##################################################
Write-Host "■■ ネットワークセキュリティグループの作成処理 ■■"
##################################################
# ネットワークセキュリティグループ名を設定
$script:nwSgPublicName = $private:resourceGroupName + "nwsg-public"  
$script:nwSgPrivateName = $private:resourceGroupName + "nwsg-private" 
# 作成予定のセキュリティグループの有無を確認
$script:nwSgPublic = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPublicName -ErrorAction Ignore
if (-not $script:nwSgPublic) {
    try{
        # パブリック用ネットワークセキュリティグループ作成
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPublicName} を作成中...")
        $script:nsg = New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPublicName -Tag $tags -ErrorAction Stop
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPublicName} を作成しました。")
        Write-Host ""
    }catch{
        Write-Host "${private:resourceGroupName} のネットワークセキュリティグループ作成エラー" -ForegroundColor Red
        Write-Error -Message $_.Exception
        Write-Host ""
    }
} else {
    Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」には、既に ${script:nwSgPublicName} が存在するため作成をスキップしました。") -ForegroundColor Yellow
    Write-Host ""
}
# 作成予定のセキュリティグループの有無を確認
$script:nwSgPrivate = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPrivateName -ErrorAction Ignore
if (-not $script:nwSgPrivate) {
    try{
        # プライベート用ネットワークセキュリティグループ作成
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPrivateName} を作成中...")
        $script:nsg = New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgPrivateName -Tag $tags -ErrorAction Stop
        Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」に ${script:nwSgPrivateName} を作成しました。")
        Write-Host ""
    }catch{
        Write-Host "${private:resourceGroupName} のネットワークセキュリティグループ作成エラー" -ForegroundColor Red
        Write-Error -Message $_.Exception
        Write-Host ""
    }
} else {
    Write-Host ("${private:resourceGroupName} の「ネットワークセキュリティグループ」には、既に ${script:nwSgPrivateName} が存在するため作成をスキップしました。") -ForegroundColor Yellow
    Write-Host ""
}
##################################################ネットワークセキュリティグループの名前を設定。
$script:nwSgName = "nwsg" + $private:resourceGroupNameGet-AzNetworkSecurityGroupで既に同名のリソースが存在しないか確認。
$script:nwSg = Get-AzNetworkSecurityGroup -ResourceGroupName $private:resourceGroupName -Name $script:nwSgName -ErrorAction Ignore
if (-not $script:nwSg) {
  ※リソースが存在しない場合は、ここに作成する処理を記述。
} else {
  ※リソースが存在する場合は、ここに作成しない処理を記述。
}New-AzNetworkSecurityGroupでネットワークセキュリティグループを作成。
New-AzNetworkSecurityGroup -Location $private:location -ResourceGroupName $private:resourceGroupName -Name $script:nwSgName -Tag $tagstry ~ catchで例外が発生したときにエラーメッセージを表示。
try {
    ※リソースの作成の作成。
} catch {
    ※リソースの作成の作成に失敗。
    Write-Error -Message $_.Exception
}