ติดตั้งและใช้เครื่องมือระบบคลาวด์สำหรับ PowerShell

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
  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • เครื่อง Windows

คุณจะใช้บทแนะนำนี้อย่างไร

อ่านเท่านั้น อ่านและทำแบบฝึกหัด

คุณจะให้คะแนนประสบการณ์การใช้งาน Google Cloud Platform อย่างไร

มือใหม่ ระดับกลาง ผู้ชำนาญ

2. การตั้งค่าและข้อกำหนด

สำหรับ Codelab นี้ คุณต้องมีโปรเจ็กต์ Google Cloud เพื่อโต้ตอบกับ PowerShell หากมีโปรเจ็กต์อยู่แล้ว คุณจะใช้โปรเจ็กต์นั้นหรือสร้างโปรเจ็กต์ใหม่ตามขั้นตอนต่อไปนี้ก็ได้

การตั้งค่าสภาพแวดล้อมตามเวลาที่สะดวก

หากยังไม่มีบัญชี Google (Gmail หรือ G Suite) คุณต้องสร้างบัญชี ลงชื่อเข้าใช้คอนโซล Google Cloud ( console.cloud.google.com) และสร้างโปรเจ็กต์ใหม่

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

จำรหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ำกันในโปรเจ็กต์ 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

d6df1af5b5b08e41.png

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

66b0c5d9b1cd7c68.png

เรียกใช้ Get-GceInstance cmdlet เพื่อให้แน่ใจว่าได้ติดตั้ง cmdlets ของ Google Cloud อย่างถูกต้อง ซึ่งควรแสดงอินสแตนซ์ของ Compute Engine ที่คุณมีในโปรเจ็กต์

3ffd420f66f76b06.png

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

คุณจะเห็นป๊อปอัปแบบตารางกริดที่มีชื่อและขนาด

59d92a6bfec86f89.png

อ่านข้อมูล

คุณใช้ 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

ขั้นตอนถัดไป