ผมได้ไปนั่งพูดคุยแลกเปลี่ยนความรู้ กับคนที่ใช้งาน Azure ด้วยกัน แล้วมีคำถามเกิดขึ้นมาว่า ต้องการ จะใช้ PowerShell Automate Login อย่างไร ผมเลยเขียนบทความนี้ขึ้นมา แต่แค่ Automate Login อย่างเดียว ยังไม่เห็นประโยชน์มากนัก ผมเลยคิดว่า ให้มันนับจำนวน Web Apps ที่มีอยู่ด้วยเลยดีกว่า เรามาดูกันครับว่า มีวิธีการเขียน Script PowerShell อย่างไร
โดยจะขอแบ่งเป็น 4 ขั้นตอนดังนี้ครับ
1. การ Login
โดยปกติเราจะต้อง Login เข้าสู่ Azure Portal สิ่งที่เราต้องเตรียมเพื่อที่จะ Login เข้าสู่ Azure Portal ก็คือ Username Password โดยเราสามารถ แทนค่าลง $userName
และ $Password
ได้เลย
################ #Login to Azure# ################ $userName = 'Your username' $Password = 'Your Password' $SubscriptionName = 'Your Subscription Name' $securePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword) Add-AzureRmAccount -Credential $cred
เมื่อแทนค่าเรียบร้อยแล้ว ลอง Run ดู เราจะได้ผลลัพธ์ดังนี้
ตอนนี้ เราสามารถ Login ได้แล้วครับ
2. การเลือก Subscriptions
โดยทั่วไปแล้ว องค์การที่ใช้งาน Azure มักจะมี Subscriptions มากกว่า 1 Subscriptions เราสามารถเลือกได้ว่า ต้องการที่จะใช้งาน Subscriptions ไหน แต่เดี๋ยวก่อน Subscriptions Name จะหาได้จากที่ไหน
การได้มาซึ่ง Subscriptions name นั้น สามารถหาได้ จาก Get-AzureRmSubscription
ดังนี้
เมื่อได้ Subscriptions name แล้ว เราก็นำ Subscriptions name มาแทนค่าลงในตัวแปล $SubscriptionName
ได้เลย
########################## #Select AzureSubscription# ########################## Select-AzureRmSubscription -SubscriptionName $SubscriptionName
3. แสดง Web Apps ที่มีทั้งหมด
เราสามารถแสดง WebApp ที่เรามีทั้งหมด โดยใช้คำสั่ง Get-AzureRmWebApp
โดยจะเก็บผลลัพธ์ที่ได้ ไว้ในตัวแปล $AzureRmWebApp
################## #Get Azure WebApp# ################## $AzureRmWebApp = Get-AzureRmWebApp $WebAppName = $AzureRmWebApp.Name $WebAppName
ผลลัพธ์ที่ได้ เราจะได้ รายชื่อของ Web Apps ทั้งหมดที่มีอยู่ดังนี้
4. นับจำนวน Web Apps
เราสามารถที่จะนับจำนวน WebApp ที่จัดเก็บไว้ในตัวแปล $WebAppName
ทั้งหมด โดยใช้คำสั่ง $WebAppName.Count
################ #Count web Apps# ################ $WebAppName.Count
จาก PowerShell Script ที่ได้อธิบายมานั้น มีความสามารถในการ Auto Login พร้อมทั้งนับจำนวน Web Apps ที่มีทั้งหมด ซึ่งหมายความว่า เราสามารถที่จะต่อยอดไปใช้ในงานต่าง ๆ ที่เราต้องได้ เช่น กำหนดให้ Run Script ผ่านทาง Task Scheduler ตั้งเวลา ในการ Run ให้ทำการ Start/Stop Web Apps หรือ VM ได้ ในช่วงเวลาที่เราต้อง
หวังว่า Script นี้น่าจะมีประโยชน์ไม่มากก็น้อยนะครับ แล้วพบกันในตอนต่อไปนะครับ
ส่วนนี้คือ Script ทั้งหมดที่ได้กล่าวไปนะครับ
################ #Login to Azure# ################ $userName = 'Your username' $Password = 'Your Password' $SubscriptionName = 'Your Subscription Name' $securePassword = ConvertTo-SecureString -String $Password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential($userName, $securePassword) Add-AzureRmAccount -Credential $cred ########################## #Select AzureSubscription# ########################## Select-AzureRmSubscription -SubscriptionName $SubscriptionName ################## #Get Azure WebApp# ################## $AzureRmWebApp = Get-AzureRmWebApp $WebAppName = $AzureRmWebApp.Name $WebAppName ################ #Count web Apps# ################ $WebAppName.Count