1. Обзор
PowerShell — это оболочка командной строки и связанный с ней язык сценариев, построенный на основе платформы .NET Framework. Это инструмент автоматизации задач и управления конфигурацией по умолчанию, используемый в среде Windows. Командлет PowerShell — это легковесная команда, вызываемая внутри PowerShell.
Cloud Tools for PowerShell — это набор командлетов для доступа и управления ресурсами Google Cloud, такими как Google Compute Engine, Google Cloud Storage, Google Cloud SQL и Google Cloud DNS, — и в будущем их количество будет расти!
Выполните эти практические задания, чтобы узнать, как взаимодействовать с ресурсами Google Cloud из PowerShell.
Что вы узнаете
- Как установить Cloud Tools для PowerShell.
- Как пройти аутентификацию с помощью Google Cloud SDK.
- Как создать и управлять Google Compute Engine из PowerShell.
- Как создать резервную копию данных в Google Cloud Storage из PowerShell.
Что вам понадобится
- Проект Google Cloud Platform.
- Браузер, например Chrome или Firefox .
- Компьютер под управлением Windows.
Как вы будете использовать этот учебный материал?
Как бы вы оценили свой опыт работы с Google Cloud Platform?
2. Настройка и требования
Для выполнения этого практического задания вам потребуется проект Google Cloud для взаимодействия с PowerShell. Если у вас уже есть проект, вы можете либо использовать его, либо создать новый проект, выполнив следующие шаги.
Настройка среды для самостоятельного обучения
Если у вас еще нет учетной записи Google (Gmail или GSuite), вам необходимо ее создать . Войдите в консоль Google Cloud ( console.cloud.google.com ) и создайте новый проект:


Запомните идентификатор проекта (Project ID), уникальное имя для всех проектов Google Cloud Platform. В дальнейшем в этом практическом занятии он будет обозначаться как PROJECT_ID .
Далее вам потребуется включить оплату в консоли Google Cloud, чтобы использовать ресурсы Google Cloud Platform, такие как Google Cloud Datastore и Cloud Storage.
Новые пользователи Google Cloud Platform могут получить бесплатную пробную версию стоимостью 300 долларов . Выполнение этого практического задания не должно обойтись вам дороже нескольких долларов, но может быть дороже, если вы решите использовать больше ресурсов или оставите их запущенными (см. раздел «очистка» в конце этого документа).
3. Установка
Установка в условиях самостоятельного обучения
Командлеты PowerShell входят в состав Cloud SDK для Windows . Если вы еще этого не сделали, загрузите и установите Google Cloud SDK для Windows, как описано в руководстве «Быстрый старт для Windows» . Убедитесь, что при установке Cloud SDK вы выбрали опцию PowerShell.

4. Аутентификация
Инструменты Cloud Tools for PowerShell используют учетные данные и настройки, хранящиеся в Cloud SDK. Поэтому для начала использования командлетов необходимо сначала войти в систему с помощью Cloud SDK.
Аутентификация среды в самостоятельном темпе
Запустите оболочку Google Cloud SDK и выполните следующую команду.
gcloud init
Примите предложение войти в систему, используя свою учетную запись Google.
To continue, you must log in. Would you like to log in (Y/n)? Y
В браузере войдите в свою учетную запись Google, когда появится соответствующий запрос, и нажмите «Разрешить», чтобы предоставить разрешение на доступ к ресурсам Google Cloud Platform.
В командной строке выберите проект облачной платформы из списка проектов, для которых у вас есть права владельца, редактора или просмотра.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. Запускайте командлеты Google Cloud в PowerShell.
После аутентификации вы готовы использовать командлеты Google Cloud в PowerShell. Найдите и откройте командную оболочку PowerShell.

Чтобы убедиться в правильной установке командлетов Google Cloud, выполните команду Get-GceInstance . Она должна вывести список экземпляров Compute Engine, имеющихся в вашем проекте.

6. Создание и управление экземплярами Google Compute Engine.
В этом разделе вы создаёте и управляете Google Compute Engine из Google Cloud Tools for 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 для создания нового экземпляра Compute Engine. Вы можете указать проект и зону, но если они не указаны, значения параметров по умолчанию будут соответствовать значениям из вашей текущей активной конфигурации Cloud SDK. Если вы указываете проект, обязательно замените PROJECT_ID на идентификатор вашего проекта.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
Управление экземпляром
Для получения списка экземпляров виртуальных машин проекта можно использовать командлет Get-GceInstance . Поскольку имя экземпляра может быть не уникальным для разных проектов или зон, можно указать параметр Project или Zone, чтобы сузить область поиска. По умолчанию командлет использует значения, указанные в активной конфигурации Cloud SDK.
$instance = Get-GceInstance "my-vm-1"
После создания экземпляра с помощью командлета Set-GceInstance вы можете задать теги экземпляра, диски, конфигурации доступа и другие метаданные. Добавьте некоторые метаданные, а затем удалите их следующим образом.
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"
Вы можете запускать, останавливать или перезапускать экземпляр, используя различные командлеты. Вы можете ссылаться на экземпляр, используя имя или строго типизированный объект, возвращаемый командлетом Get-GceInstance . Поэкспериментируйте с некоторыми из этих команд.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
Наконец, когда вы закончите работу с экземпляром, удалите его из Compute Engine, используя командлет Remove-GceInstance и указав ранее заданный тег.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. Создайте резервную копию данных в облачном хранилище Google.
В этой части практического занятия вы создадите резервную копию данных со своего локального компьютера в Google Cloud Storage с помощью Cloud Tools for PowerShell.
Создайте корзину
Перед загрузкой файлов в Cloud Storage необходимо создать корзину (bucket). Для создания новой корзины используйте командлет New-GcsBucket .
$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"
Поиск данных
Вы можете искать данные с помощью командлетов или с помощью поставщика, используя стандартные командлеты для поиска по файлам. Попробуйте следующую команду для вашего хранилища.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
Вы должны увидеть всплывающее окно с сеткой, содержащее название и размер.

Прочитать данные
Для чтения данных можно использовать командлет Read-GcsObject . Например, вы можете использовать следующую команду для чтения файла с именем hello.txt на рабочий стол.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
Удалить данные
И наконец, вы можете удалить данные с помощью командлета Remove-GcsObject . Используйте следующую команду, чтобы удалить все содержимое корзины.
Get-GcsObject $bucket | Remove-GcsObject
8. Поздравляем!
В этом практическом занятии вы научились управлять экземплярами Compute Engine и хранилищами Cloud Storage с помощью PowerShell, но это еще не все! Вы также можете управлять ресурсами Cloud SQL и Cloud CDN с помощью PowerShell. Ознакомьтесь со списком следующих шагов ниже, чтобы узнать больше.
Что мы рассмотрели
- Как установить Cloud Tools для PowerShell.
- Как пройти аутентификацию с помощью Google Cloud SDK.
- Как создать и управлять Google Compute Engine из PowerShell.
- Как создать резервную копию данных в Google Cloud Storage из PowerShell.
Следующие шаги
- Узнайте больше об облачных инструментах для PowerShell .
- Узнайте больше о Windows на платформе Google Cloud Platform .
- Узнайте больше о .NET на платформе Google Cloud Platform .
- Узнайте больше о SQL Server на платформе Google Cloud Platform .
- Узнайте больше об облачных инструментах для Visual Studio .