1. ภาพรวม
PowerShell คือเชลล์บรรทัดคำสั่งและภาษาสคริปต์ที่เชื่อมโยงซึ่งสร้างขึ้นบน .NET Framework ซึ่งเป็นระบบงานอัตโนมัติและเครื่องมือการจัดการการกำหนดค่าเริ่มต้นที่ใช้ในโลก Windows PowerShell cmdlet เป็นคำสั่งที่ใช้งานง่ายซึ่งเรียกใช้ภายใน PowerShell
เครื่องมือระบบคลาวด์สำหรับ PowerShell คือคอลเล็กชันของ cmdlets สำหรับเข้าถึงและจัดการทรัพยากร Google Cloud เช่น Google Compute Engine, Google Cloud Storage, Google Cloud SQL และ Google Cloud DNS โดยจะเพิ่มเติมอีกมากมายในอนาคต
ทำตามห้องทดลองนี้เพื่อดูวิธีโต้ตอบกับทรัพยากร Google Cloud จาก PowerShell
สิ่งที่คุณจะได้เรียนรู้
- วิธีติดตั้งเครื่องมือในระบบคลาวด์สำหรับ PowerShell
- วิธีตรวจสอบสิทธิ์ด้วย Google Cloud SDK
- วิธีสร้างและจัดการ Google Compute Engine จาก PowerShell
- วิธีสำรองข้อมูลจาก PowerShell ไปยัง Google Cloud Storage
สิ่งที่ต้องมี
คุณจะใช้บทแนะนำนี้อย่างไร
คุณจะให้คะแนนประสบการณ์การใช้งาน Google Cloud Platform อย่างไร
2. การตั้งค่าและข้อกำหนด
สำหรับ Codelab นี้ คุณต้องมีโปรเจ็กต์ Google Cloud เพื่อโต้ตอบกับ PowerShell หากมีโปรเจ็กต์อยู่แล้ว คุณจะใช้โปรเจ็กต์นั้นหรือสร้างโปรเจ็กต์ใหม่ตามขั้นตอนต่อไปนี้ก็ได้
การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก
หากยังไม่มีบัญชี Google (Gmail หรือ G Suite) คุณต้องสร้างบัญชี ลงชื่อเข้าใช้คอนโซล Google Cloud ( console.cloud.google.com) และสร้างโปรเจ็กต์ใหม่
จำรหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ Google Cloud Platform ทั้งหมด และจะมีการอ้างอิงใน Codelab ว่า PROJECT_ID
ในภายหลัง
ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Google Cloud Console เพื่อใช้ทรัพยากรของ Google Cloud Platform เช่น Google Cloud Datastore และ Cloud Storage
ผู้ใช้ใหม่ของ Google Cloud Platform มีสิทธิ์รับช่วงทดลองใช้ฟรี$300 การใช้งาน Codelab นี้น่าจะมีค่าใช้จ่ายไม่เกิน 2-3 ดอลลาร์ แต่อาจมากกว่านี้หากคุณตัดสินใจใช้ทรัพยากรมากขึ้นหรือปล่อยให้ทำงาน (ดูส่วน "ล้างข้อมูล" ในตอนท้ายของเอกสารนี้)
3. การติดตั้ง
การติดตั้งสภาพแวดล้อมด้วยตนเอง
PowerShell cmdlets เป็นส่วนหนึ่งของ Cloud SDK สำหรับ Windows หากคุณยังไม่ได้ดำเนินการ ให้ดาวน์โหลดและติดตั้ง Google Cloud SDK สำหรับ Windows ดังที่อธิบายไว้ในคำแนะนำสำหรับการเริ่มต้นอย่างรวดเร็วสำหรับ Windows โปรดตรวจสอบตัวเลือก PowerShell เมื่อติดตั้ง Cloud SDK
4. การตรวจสอบสิทธิ์
เครื่องมือในระบบคลาวด์สำหรับ PowerShell จะใช้ข้อมูลเข้าสู่ระบบและการตั้งค่าที่จัดเก็บไว้ใน Cloud SDK ดังนั้นหากต้องการเริ่มใช้ cmdlets ก่อนอื่นคุณต้องเข้าสู่ระบบโดยใช้ Cloud SDK
การตรวจสอบสิทธิ์สภาพแวดล้อมแบบกำหนดเวลาด้วยตนเอง
เริ่มต้น Google Cloud SDK Shell แล้วเรียกใช้คำสั่งต่อไปนี้
gcloud init
ยอมรับตัวเลือกให้เข้าสู่ระบบโดยใช้บัญชี Google ของคุณ
To continue, you must log in. Would you like to log in (Y/n)? Y
ในเบราว์เซอร์ ให้ลงชื่อเข้าใช้บัญชีผู้ใช้ Google เมื่อได้รับข้อความแจ้งและคลิกอนุญาตเพื่อให้สิทธิ์เข้าถึงทรัพยากรของ Google Cloud Platform
ที่ Command Prompt ให้เลือกโปรเจ็กต์ Cloud Platform จากรายการโปรเจ็กต์ที่คุณมีสิทธิ์ระดับเจ้าของ ผู้แก้ไข หรือผู้ดู
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. เรียกใช้ cmdlets ของ Google Cloud ภายใน PowerShell
เมื่อตรวจสอบสิทธิ์แล้ว คุณก็พร้อมที่จะใช้ cmdlets ของ Google Cloud ภายใน PowerShell ค้นหาและเปิดเชลล์บรรทัดคำสั่งของ PowerShell
เรียกใช้ Get-GceInstance
cmdlet เพื่อให้แน่ใจว่าได้ติดตั้ง cmdlets ของ Google Cloud อย่างถูกต้อง ซึ่งควรแสดงอินสแตนซ์ของ Compute Engine ที่คุณมีในโปรเจ็กต์
6. สร้างและจัดการอินสแตนซ์ของ Google Compute Engine
ในส่วนนี้ คุณจะสร้างและจัดการ Google Compute Engine จากภายในเครื่องมือของ Google Cloud สำหรับ PowerShell
สร้างการกำหนดค่าอินสแตนซ์
ก่อนสร้างอินสแตนซ์ คุณต้องสร้างการกำหนดค่าอินสแตนซ์ก่อน อย่างน้อยที่สุด การตั้งค่านี้ต้องใช้ชื่อ ประเภทเครื่อง และอิมเมจดิสก์เปิดเครื่องหรือดิสก์บูทที่มีอยู่แล้ว ใช้ Get-GceImage
เพื่อสร้างดิสก์อิมเมจและใช้ New-GceInstanceConfig
เพื่อสร้างการกำหนดค่า
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
ในจุดนี้ คุณจะได้การกำหนดค่าที่สามารถใช้สร้างอินสแตนซ์ได้
สร้างอินสแตนซ์
ใช้ Add-GceInstance
cmdlet เพื่อสร้างอินสแตนซ์ Compute Engine ใหม่ คุณสามารถระบุโปรเจ็กต์และโซนได้ แต่หากไม่ระบุ ค่าพารามิเตอร์จะเป็นค่าเริ่มต้นในการกำหนดค่า Cloud SDK ที่ใช้งานอยู่ในปัจจุบัน หากระบุโปรเจ็กต์ อย่าลืมแทนที่ PROJECT_ID
ด้วยรหัสโปรเจ็กต์ของคุณเอง
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
จัดการอินสแตนซ์
คุณสามารถใช้ Get-GceInstance
cmdlet เพื่อเรียกข้อมูลอินสแตนซ์เครื่องเสมือนของโปรเจ็กต์ได้ เนื่องจากชื่ออินสแตนซ์อาจซ้ำกันได้ในโปรเจ็กต์หรือโซนต่างๆ คุณจึงระบุพารามิเตอร์โปรเจ็กต์หรือโซนเพื่อจำกัดการค้นหาได้ โดยค่าเริ่มต้น cmdlet จะใช้ค่าที่อยู่ในการกำหนดค่า Cloud SDK ที่ใช้งานอยู่
$instance = Get-GceInstance "my-vm-1"
คุณสามารถตั้งค่าแท็กอินสแตนซ์ ดิสก์ การกำหนดค่าการเข้าถึง และข้อมูลเมตาอื่นๆ หลังจากสร้างอินสแตนซ์ด้วย Set-GceInstance
cmdlet เพิ่มข้อมูลเมตาแล้วนำออกดังนี้
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
ตอนนี้ ให้เพิ่มแท็กที่คุณจะใช้ในภายหลังเพื่อนำอินสแตนซ์ออก
Set-GceInstance $instance -AddTag "to-be-removed"
คุณเริ่มต้น หยุด หรือรีสตาร์ทอินสแตนซ์ได้โดยใช้ cmdlets ที่หลากหลาย คุณอ้างอิงอินสแตนซ์ได้โดยใช้ชื่อหรือออบเจ็กต์ที่พิมพ์อย่างเข้มงวดที่แสดงผลจาก Get-GceInstance
cmdlet เล่นกับคำสั่งเหล่านี้
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
สุดท้าย เมื่อคุณดำเนินการกับอินสแตนซ์เสร็จแล้ว ให้นำอินสแตนซ์ออกจาก Compute Engine โดยใช้ Remove-GceInstance
cmdlet และใส่แท็กที่คุณระบุไว้ก่อนหน้านี้
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. สำรองข้อมูลไปยัง Google Cloud Storage
ใน Codelab นี้ คุณจะสำรองข้อมูลจากเครื่องภายในไปยัง Google Cloud Storage โดยใช้เครื่องมือ Cloud สำหรับ PowerShell
สร้างที่เก็บข้อมูล
คุณต้องสร้างที่เก็บข้อมูลก่อนอัปโหลดไฟล์ไปยัง Cloud Storage ใช้ New-GcsBucket
cmdlet เพื่อสร้างที่เก็บข้อมูลใหม่
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
อัปโหลดไฟล์ไปยังที่เก็บข้อมูล
คุณใช้ New-GcsObject
เพื่ออัปโหลดไฟล์หรือโฟลเดอร์ทั้งโฟลเดอร์ไปยังที่เก็บข้อมูลได้
คุณอัปโหลดเนื้อหาของไฟล์ในเครื่องไปยัง Cloud Storage ได้โดยใช้พารามิเตอร์ -File
และระบุเส้นทางไฟล์ หรือคุณจะส่งเนื้อหาของออบเจ็กต์เป็นสตริงผ่านไปป์ไลน์ PowerShell หรือจะใช้พารามิเตอร์ -Value
ก็ได้
เลือกไฟล์ในเครื่องและอัปโหลดไปยังที่เก็บข้อมูลดังนี้
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
คุณสามารถอัปโหลดทั้งไดเรกทอรีจากดิสก์ในเครื่องไปยัง Cloud Storage โดยใช้พารามิเตอร์ -UploadFolder
และระบุเส้นทางโฟลเดอร์ หากคุณไม่ต้องการให้อัปโหลดโฟลเดอร์ไปยังรูทของที่เก็บข้อมูล Cloud Storage โดยตรง ให้ใช้ -ObjectNamePrefix
เพื่อระบุคำนำหน้าที่จะนำไปใช้กับทุกออบเจ็กต์ที่อัปโหลด
เลือกโฟลเดอร์ในเครื่องและอัปโหลดไปยังที่เก็บข้อมูลดังนี้
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
ค้นหาข้อมูล
คุณค้นหาข้อมูลด้วย cmdlets หรือกับผู้ให้บริการผ่าน cmdlets การค้นหาไฟล์ทั่วไป ลองใช้คำสั่งต่อไปนี้กับที่เก็บข้อมูลของคุณ
Get-GcsObject $bucket | Select Name, Size | Out-GridView
คุณจะเห็นป๊อปอัปแบบตารางกริดที่มีชื่อและขนาด
อ่านข้อมูล
คุณใช้ Read-GcsObject
cmdlet เพื่ออ่านข้อมูลได้ เช่น คุณใช้คำสั่งต่อไปนี้เพื่ออ่านไฟล์ชื่อ hello.txt
ในเดสก์ท็อปของคุณได้
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
ลบข้อมูล
สุดท้ายแต่ไม่ท้ายสุด คุณลบข้อมูลโดยใช้ Remove-GcsObject
cmdlet ได้ ใช้คำสั่งต่อไปนี้เพื่อลบเนื้อหาทั้งหมดของที่เก็บข้อมูล
Get-GcsObject $bucket | Remove-GcsObject
8. ยินดีด้วย
ใน Codelab นี้ คุณได้เรียนรู้วิธีจัดการอินสแตนซ์ Compute Engine และที่เก็บข้อมูล Cloud Storage จาก PowerShell แล้ว แต่ยังมีอะไรอีก! นอกจากนี้ คุณยังจัดการทรัพยากร Cloud SQL และ Cloud CDN โดยใช้ PowerShell ได้ด้วย ดูรายการขั้นตอนถัดไปด้านล่างเพื่อดูข้อมูลเพิ่มเติม
หัวข้อที่ครอบคลุม
- วิธีติดตั้งเครื่องมือในระบบคลาวด์สำหรับ PowerShell
- วิธีตรวจสอบสิทธิ์ด้วย Google Cloud SDK
- วิธีสร้างและจัดการ Google Compute Engine จาก PowerShell
- วิธีสำรองข้อมูลจาก PowerShell ไปยัง Google Cloud Storage
ขั้นตอนถัดไป
- ดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือระบบคลาวด์สำหรับ PowerShell
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Windows ใน Google Cloud Platform
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ .NET บน Google Cloud Platform
- ดูข้อมูลเพิ่มเติมเกี่ยวกับเซิร์ฟเวอร์ SQL บน Google Cloud Platform
- ดูข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือ Cloud สำหรับ Visual Studio