Cài đặt và sử dụng Công cụ đám mây cho PowerShell

1. Tổng quan

PowerShell là một trình bao dòng lệnh và ngôn ngữ kịch bản liên kết được xây dựng trên .NET Framework. Đây là công cụ tự động hoá tác vụ và quản lý cấu hình mặc định được dùng trong Windows. Cmdlet PowerShell là một lệnh đơn giản được gọi trong PowerShell.

Cloud Tools for PowerShell là một tập hợp các cmdlet để truy cập và thao tác với các tài nguyên của Google Cloud, chẳng hạn như Google Compute Engine, Google Cloud Storage, Google Cloud SQL và Google Cloud DNS – và sẽ có thêm nhiều tài nguyên khác!

Hãy làm theo hướng dẫn trong phòng thí nghiệm này để tìm hiểu cách tương tác với các tài nguyên trên Google Cloud bằng PowerShell.

Kiến thức bạn sẽ học được

  • Cách cài đặt Cloud Tools for PowerShell.
  • Cách xác thực bằng Google Cloud SDK.
  • Cách tạo và quản lý Google Compute Engine bằng PowerShell.
  • Cách sao lưu dữ liệu vào Google Cloud Storage từ PowerShell.

Bạn cần có

  • Một dự án trên Google Cloud Platform.
  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox.
  • Máy tính Windows.

Bạn sẽ sử dụng hướng dẫn này như thế nào?

Chỉ đọc Đọc và hoàn thành bài tập

Bạn đánh giá thế nào về trải nghiệm của mình với Google Cloud Platform?

Người mới bắt đầu Trung cấp Thành thạo

2. Thiết lập và yêu cầu

Trong lớp học lập trình này, bạn cần có một dự án trên Google Cloud để tương tác với PowerShell. Nếu đã có dự án, bạn có thể sử dụng dự án đó hoặc tạo một dự án mới theo các bước sau.

Thiết lập môi trường theo tốc độ của riêng bạn

Nếu chưa có Tài khoản Google (Gmail hoặc G Suite), bạn phải tạo một tài khoản. Đăng nhập vào bảng điều khiển Cloud ( console.cloud.google.com) rồi tạo một dự án mới:

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

Ghi nhớ mã dự án, một tên riêng biệt cho tất cả các dự án trên Google Cloud Platform. Sau này trong lớp học lập trình này, chúng ta sẽ gọi nó là PROJECT_ID.

Tiếp theo, bạn cần bật tính năng thanh toán trong Google Cloud Console để sử dụng các tài nguyên của Google Cloud Platform như Google Cloud Datastore và Cloud Storage.

Người dùng mới của Google Cloud Platform đủ điều kiện dùng thử miễn phí trị giá 300 USD. Việc thực hiện lớp học lập trình này sẽ không tốn của bạn quá vài đô la, nhưng có thể tốn nhiều hơn nếu bạn quyết định sử dụng nhiều tài nguyên hơn hoặc nếu bạn để các tài nguyên đó chạy (xem phần "dọn dẹp" ở cuối tài liệu này).

3. Cài đặt

Cài đặt môi trường theo tốc độ của riêng bạn

Các cmdlet PowerShell có trong Cloud SDK cho Windows. Nếu bạn chưa thực hiện, hãy tải xuống và cài đặt Google Cloud SDK cho Windows, như mô tả trong Hướng dẫn nhanh cho Windows. Đảm bảo rằng bạn đã chọn PowerShell khi cài đặt Cloud SDK.

d6df1af5b5b08e41.png

4. Xác thực

Cloud Tools for PowerShell sử dụng thông tin xác thực và chế độ cài đặt được lưu trữ trong Cloud SDK. Vì vậy, để bắt đầu sử dụng các cmdlet, trước tiên, bạn cần đăng nhập bằng Cloud SDK.

Xác thực môi trường tự học

Khởi động Google Cloud SDK Shell và chạy lệnh sau.

gcloud init

Chấp nhận lựa chọn đăng nhập bằng tài khoản người dùng Google của bạn.

To continue, you must log in. Would you like to log in (Y/n)? Y

Trong trình duyệt, hãy đăng nhập vào tài khoản người dùng Google của bạn khi được nhắc rồi nhấp vào Cho phép để cấp quyền truy cập vào các tài nguyên của Google Cloud Platform.

Tại dấu nhắc lệnh, hãy chọn một dự án Cloud Platform trong danh sách các dự án mà bạn có quyền Chủ sở hữu, Người chỉnh sửa hoặc Người xem.

Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:

5. Chạy các lệnh Google Cloud trong PowerShell

Sau khi xác thực, bạn đã sẵn sàng sử dụng các cmdlet của Google Cloud trong PowerShell. Tìm và mở trình bao dòng lệnh PowerShell.

66b0c5d9b1cd7c68.png

Để đảm bảo bạn đã cài đặt đúng các cmdlet của Google Cloud, hãy chạy cmdlet Get-GceInstance. Thao tác này sẽ liệt kê các phiên bản Compute Engine mà bạn có trong dự án của mình.

3ffd420f66f76b06.png

6. Tạo và quản lý các phiên bản Google Compute Engine

Trong phần này, bạn sẽ tạo và quản lý Google Compute Engine trong Google Cloud Tools for PowerShell.

Tạo cấu hình phiên bản

Trước khi tạo một phiên bản, trước tiên, bạn phải tạo một cấu hình phiên bản. Tối thiểu, bạn phải có tên, loại máy và hình ảnh đĩa khởi động hoặc ổ đĩa khởi động có sẵn. Sử dụng Get-GceImage để tạo một hình ảnh đĩa và New-GceInstanceConfig để tạo một cấu hình.

$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
    -MachineType "n1-standard-4" `
    -DiskImage $disk

Đến đây, bạn đã có một cấu hình mà bạn có thể dùng để tạo một thực thể.

Tạo một phiên bản

Sử dụng lệnh Add-GceInstance để tạo một phiên bản Compute Engine mới. Bạn có thể chỉ định một dự án và vùng, nhưng nếu bỏ qua, các giá trị tham số sẽ mặc định là các giá trị trong cấu hình Cloud SDK hiện đang hoạt động. Nếu bạn chỉ định dự án, hãy nhớ thay thế PROJECT_ID bằng mã dự án của riêng bạn.

$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b

Quản lý một phiên bản

Bạn có thể dùng cmdlet Get-GceInstance để truy xuất các phiên bản máy ảo của một dự án. Vì tên phiên bản có thể không phải là duy nhất trên các dự án hoặc khu vực, nên bạn có thể chỉ định một tham số Dự án hoặc Khu vực để thu hẹp phạm vi tìm kiếm. Theo mặc định, cmdlet sẽ sử dụng mọi giá trị trong cấu hình Cloud SDK đang hoạt động.

$instance = Get-GceInstance "my-vm-1"

Bạn có thể đặt thẻ phiên bản, ổ đĩa, cấu hình truy cập và siêu dữ liệu khác sau khi tạo phiên bản bằng lệnh Set-GceInstance. Thêm một số siêu dữ liệu rồi xoá như sau.

Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"

Bây giờ, hãy thêm một thẻ mà bạn sẽ dùng sau này để xoá phiên bản.

Set-GceInstance $instance -AddTag "to-be-removed"

Bạn có thể bắt đầu, dừng hoặc khởi động lại một phiên bản bằng nhiều lệnh ghép. Bạn có thể tham chiếu đến một phiên bản bằng cách sử dụng tên hoặc đối tượng được nhập mạnh mẽ do cmdlet Get-GceInstance trả về. Hãy thử một số lệnh này.

Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"

Cuối cùng, khi bạn dùng xong phiên bản này, hãy xoá phiên bản đó khỏi Compute Engine bằng cách sử dụng cmdlet Remove-GceInstance và cung cấp thẻ mà bạn đã chỉ định trước đó.

Get-GceInstance -Project $project |
    Where { $_.Tags.Items -contains "to-be-removed" } |
    Remove-GceInstance -WhatIf

7. Sao lưu dữ liệu vào Google Cloud Storage

Trong phần này của lớp học lập trình, bạn sẽ sao lưu dữ liệu từ máy cục bộ lên Google Cloud Storage bằng Cloud Tools for PowerShell.

Tạo một vùng lưu trữ

Trước khi tải tệp lên Cloud Storage, bạn cần tạo một bộ chứa. Sử dụng lệnh ghép New-GcsBucket để tạo một vùng chứa mới.

$bucket = "my-gcs-bucket"
New-GcsBucket $bucket

Tải tệp lên vùng lưu trữ

Bạn có thể dùng New-GcsObject để tải tệp hoặc toàn bộ thư mục lên nhóm lưu trữ.

Bạn có thể tải nội dung của một tệp trên máy lên Cloud Storage bằng cách sử dụng tham số -File và chỉ định một đường dẫn tệp. Ngoài ra, bạn có thể truyền nội dung của đối tượng dưới dạng một chuỗi thông qua quy trình PowerShell hoặc bạn có thể sử dụng tham số -Value.

Chọn một tệp cục bộ trên máy của bạn rồi tải lên nhóm theo cách sau.

New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"

Bạn có thể tải toàn bộ thư mục từ ổ đĩa cục bộ lên Cloud Storage bằng cách sử dụng tham số -UploadFolder và chỉ định đường dẫn thư mục. Nếu bạn không muốn thư mục được tải trực tiếp lên gốc của vùng lưu trữ trên Cloud Storage, hãy dùng -ObjectNamePrefix để chỉ định một tiền tố sẽ được áp dụng cho mọi đối tượng được tải lên.

Chọn một thư mục cục bộ trên máy của bạn rồi tải lên nhóm theo cách sau.

New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"

Dữ liệu tìm kiếm

Bạn có thể tìm kiếm dữ liệu bằng cmdlet hoặc bằng nhà cung cấp thông qua các cmdlet tìm kiếm tệp thông thường. Hãy thử lệnh sau với nhóm của bạn.

Get-GcsObject $bucket | Select Name, Size | Out-GridView

Bạn sẽ thấy một lưới bật lên có tên và kích thước.

59d92a6bfec86f89.png

Đọc dữ liệu

Bạn có thể sử dụng lệnh Read-GcsObject để đọc dữ liệu. Ví dụ: bạn có thể dùng lệnh sau để đọc một tệp có tên là hello.txt vào máy tính.

Read-GcsObject $bucket "hello.txt" `
    -OutFile "$Env:UserProfile\Desktop\hello.txt"

Xoá dữ liệu

Cuối cùng nhưng không kém phần quan trọng, bạn có thể xoá dữ liệu bằng cmdlet Remove-GcsObject. Sử dụng lệnh sau để xoá tất cả nội dung trong nhóm.

Get-GcsObject $bucket | Remove-GcsObject

8. Xin chúc mừng!

Trong lớp học lập trình này, bạn đã tìm hiểu cách quản lý các phiên bản Compute Engine và các vùng lưu trữ Cloud Storage bằng PowerShell. Tuy nhiên, vẫn còn nhiều điều khác! Bạn cũng có thể quản lý các tài nguyên Cloud SQL và Cloud CDN bằng PowerShell. Hãy xem danh sách các bước tiếp theo bên dưới để tìm hiểu thêm.

Nội dung đã đề cập

  • Cách cài đặt Cloud Tools for PowerShell.
  • Cách xác thực bằng Google Cloud SDK.
  • Cách tạo và quản lý Google Compute Engine bằng PowerShell.
  • Cách sao lưu dữ liệu vào Google Cloud Storage từ PowerShell.

Các bước tiếp theo