安装和使用 Cloud Tools for PowerShell

1. 概览

PowerShell 是一种基于 .NET Framework 构建的命令行 Shell 和相关脚本语言。它是 Windows 领域使用的默认任务自动化和配置管理工具。PowerShell cmdlet 是在 PowerShell 中调用的轻量级命令。

Cloud Tools for PowerShell 是一系列 cmdlet,可用于访问和操控 Google Compute Engine、Google Cloud Storage、Google Cloud SQL 和 Google Cloud DNS 等 Google Cloud 资源,日后还会支持更多资源!

请按照本实验操作,了解如何通过 PowerShell 与 Google Cloud 资源进行交互。

学习内容

  • 如何安装 Cloud Tools for PowerShell。
  • 如何使用 Google Cloud SDK 进行身份验证。
  • 如何通过 PowerShell 创建和管理 Google Compute Engine。
  • 如何从 PowerShell 将数据备份到 Google Cloud Storage。

所需条件

  • Google Cloud Platform 项目。
  • 一个浏览器,例如 ChromeFirefox
  • 一台 Windows 机器。

您打算如何使用本教程?

仅阅读教程内容 阅读并完成练习

如何评价您的 Google Cloud Platform 使用体验?

<ph type="x-smartling-placeholder"></ph> 新手 中级 熟练

2. 设置和要求

在此 Codelab 中,您需要一个 Google Cloud 项目才能与 PowerShell 交互。如果您已有项目,则可以使用该项目,也可以按照以下步骤创建新项目。

自定进度的环境设置

如果您还没有 Google 账号(Gmail 或 G Suite),则必须创建一个。登录 Google Cloud 控制台 ( console.cloud.google.com) 并创建一个新项目:

aa2b71cbc7c28c59.png

60b154eb0fd9569a

记住项目 ID,这是所有 Google Cloud Platform 项目中的唯一名称。它稍后将在此 Codelab 中被称为 PROJECT_ID

接下来,您需要在 Google Cloud 控制台中启用结算功能,才能使用 Google Cloud Platform 资源(例如 Google Cloud Datastore 和 Cloud Storage)。

Google Cloud Platform 的新用户有资格获享$300 免费试用。运行此 Codelab 应该不会花费超过几美元,但如果您决定使用更多资源或让它们继续运行,费用可能更高(请参阅本文档末尾的“清理”部分)。

3. 安装方式

自定进度的环境安装

PowerShell cmdlet 是 Cloud SDK for Windows 的一部分。按照 Windows 快速入门指南中的说明下载并安装 Windows 版 Google Cloud SDK(如果您尚未执行此操作)。确保在安装 Cloud SDK 时选中 PowerShell 选项。

d6df1af5b5b08e41.png

4. 身份验证

Cloud Tools for PowerShell 使用存储在 Cloud SDK 中的凭据和设置。因此,要开始使用 cmdlet,您首先需要使用 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 资源的权限。

在命令提示符处,从您拥有 Owner、Editor 或 Viewer 权限的项目列表中选择一个 Cloud Platform 项目。

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

5. 在 PowerShell 中运行 Google Cloud cmdlet

通过身份验证后,您就可以在 PowerShell 中使用 Google Cloud cmdlet。找到并打开 PowerShell 命令行 shell。

66b0c5d9b1cd7c68

为确保正确安装 Google Cloud cmdlet,请运行 Get-GceInstance cmdlet。这应该会列出项目中的 Compute Engine 实例。

3ffd420f66f76b06

6. 创建和管理 Google Compute Engine 实例

在本部分,您将在 Google Cloud Tools for PowerShell 中创建和管理 Google Compute Engine。

创建实例配置

在创建实例之前,必须先创建实例配置。这至少需要名称、机器类型和启动磁盘映像或预先存在的启动磁盘。使用 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 替换为您自己的项目 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"

您可以使用各种 cmdlet 启动、停止或重新启动实例。您可以使用从 Get-GceInstance cmdlet 返回的名称或强类型对象来引用实例。试试下面这些指令吧。

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

最后,使用完该实例后,使用 Remove-GceInstance cmdlet 并提供之前指定的标记,将其从 Compute Engine 中移除。

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

7. 将数据备份到 Google Cloud Storage

在此 Codelab 的这一部分中,您将使用 Cloud Tools for PowerShell 将数据从本地计算机备份到 Google Cloud Storage。

创建存储桶

在将文件上传到 Cloud Storage 之前,您需要创建一个存储分区。使用 New-GcsBucket cmdlet 创建新的存储分区。

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

将文件上传到存储分区

您可以使用 New-GcsObject 将文件或整个文件夹上传到存储分区。

您可以使用 -File 参数并指定文件路径,将本地文件的内容上传到 Cloud Storage。或者,您可以通过 PowerShell 流水线将对象的内容作为字符串传递,也可以使用 -Value 参数。

按如下方式在计算机上选择一个本地文件并将其上传到您的存储分区。

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

您可以使用 -UploadFolder 参数并指定文件夹路径,将本地磁盘中的整个目录上传到 Cloud Storage。如果您不希望将该文件夹直接上传到 Cloud Storage 存储分区的根目录,请使用 -ObjectNamePrefix 指定一个前缀,该前缀将应用于上传的每个对象。

按如下方式在计算机上选择一个本地文件夹并将其上传到您的存储分区。

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

搜索数据

您可以使用 cmdlet 搜索数据,也可以通过常用的文件搜索 cmdlet 使用提供程序搜索数据。对您的存储分区尝试以下命令。

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

您应该会看到一个包含名称和大小的网格弹出式窗口。

59d92a6bfec86f89

读取数据

您可以使用 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 中,您学习了如何通过 PowerShell 管理 Compute Engine 实例和 Cloud Storage 存储分区,除此之外,还有更多知识!您还可以使用 PowerShell 管理 Cloud SQL 和 Cloud CDN 资源。请查看下面的后续步骤列表了解详情。

所学内容

  • 如何安装 Cloud Tools for PowerShell。
  • 如何使用 Google Cloud SDK 进行身份验证。
  • 如何通过 PowerShell 创建和管理 Google Compute Engine。
  • 如何从 PowerShell 将数据备份到 Google Cloud Storage。

后续步骤