iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 6
3

Azure CLI + PowerShell

介紹完簡單 Bash 後接著介紹 Azure 的 Linux PowerShell,沒錯,PowerShell 不只能在 Windows 底下,現在也能在 Linux 環境中使用,喊的口號就是 PowerShell for every system。能做到這件事歸功於近年微軟推廣的 .NET Core 跨平台 ,可以在開源的 Github PowerShell.Core 官網看到全部是由 C# 編寫。

image

PowerShell 可以讓我們用物件化的概念來寫腳本,像是之前的 Template 我們可以這樣寫,用到 .NET Core 的 Guid Function,動態生成唯一字串,拿來生成資源。

$guid = [System.guid]::NewGuid().toString("N");
(New-AzResourceGroup -Name $guid -Location "eastasia").ResourceGroupName;

image-20200923000745016

不喜歡 AZ PowerShell ? 也可以使用 Azure CLI 混搭配 ,像是使用 Azure CLI 建立資源後使用 PowerShell 的 ConvertFrom-Json function 轉成物件

az group list | ConvertFrom-Json | select-Object  name,type

image-20200923155523487

批量動作 :

# PowerShell + Az PowerShell 
foreach($i in 1..5){
	$guid = [System.guid]::NewGuid().toString("N");
	$group = New-AzResourceGroup -Name $guid -Location "eastasia" | select-Object  ResourceGroupName,Location ;
	Write-Host("創建 group $group");
}

# 等同於以下 PowerShell + Azure CLI
foreach($i in 1..5){
	$guid = [System.guid]::NewGuid().toString("N");
	$newGroup = az group create --name $guid --location "eastasia" | ConvertFrom-Json | select-Object  name,location ;
	Write-Host("創建 group $newGroup");
}

因為是在 Linux 環境,我們甚至可以搭配使用 Linux 的工具 ,舉例使用 grep篩選後,使用 powershell 的 foreach 批量做管理

$gs = az group list  -o table | grep demo
foreach ($g in $gs) {
	# 管理
    Write-Host($g.Name)
}

image-20200923115747652

備註 :


上一篇
Azure CLI + Bash 批量操作
下一篇
Azure CLI + JMESPath 動態查詢
系列文
深入 Azure 雲端服務30

尚未有邦友留言

立即登入留言