Instalar e usar o Cloud Tools for PowerShell

1. Visão geral

O PowerShell é um shell de linha de comando e uma linguagem de script associada criada no .NET Framework. É a ferramenta padrão de gerenciamento de configuração e automação de tarefas usada no ambiente Windows. Um cmdlet do PowerShell é um comando leve invocado dentro do PowerShell.

O Cloud Tools for PowerShell é uma coleção de cmdlets para acessar e manipular recursos do Google Cloud, como Google Compute Engine, Google Cloud Storage, Google Cloud SQL e Google Cloud DNS. E muito mais: em breve!

Acompanhe este laboratório para aprender a interagir com os recursos do Google Cloud usando o PowerShell.

O que você vai aprender

  • Como instalar o Cloud Tools for PowerShell
  • Como autenticar com o Google Cloud SDK.
  • Como criar e gerenciar o Google Compute Engine no PowerShell.
  • Como fazer backup de dados para o Google Cloud Storage usando o PowerShell.

O que é necessário

  • Um projeto do Google Cloud Platform.
  • Um navegador, como o Chrome ou o Firefox.
  • Uma máquina Windows

Como você usará este tutorial?

Apenas leitura Leitura e exercícios

Como você classificaria sua experiência com o Google Cloud Platform?

Iniciante Intermediário Proficiente

2. Configuração e requisitos

Neste codelab, você precisa de um projeto do Google Cloud para interagir com o PowerShell. Se você já tem um projeto, pode usá-lo ou criar um novo projeto seguindo as etapas abaixo.

Configuração de ambiente autoguiada

Se você ainda não tiver uma Conta do Google (Gmail ou G Suite), crie uma. Faça login no console do Google Cloud ( console.cloud.google.com) e crie um novo projeto:

aa2b71cbc7c28c59.png

60b154eb0fd9569a.png

Lembre-se do ID do projeto, um nome exclusivo em todos os projetos do Google Cloud Platform. Faremos referência a ele mais adiante neste codelab como PROJECT_ID.

Em seguida, é necessário ativar o faturamento no console do Google Cloud para usar os recursos do Google Cloud Platform, como o Google Cloud Datastore e o Cloud Storage.

Novos usuários do Google Cloud Platform estão qualificados para um teste sem custo financeiro de US$300. A execução deste codelab não deve custar mais do que alguns dólares, mas pode ser mais se você decidir usar mais recursos ou se deixá-los em execução (consulte a seção "limpeza" no final deste documento).

3. Instalação

Instalação de ambiente autoguiada

Os cmdlets do PowerShell fazem parte do SDK do Cloud para Windows. Se você ainda não tiver feito isso, faça o download e instale o Google Cloud SDK para Windows, conforme descrito no Guia de início rápido para Windows. Verifique se você marcou a opção PowerShell ao instalar o SDK Cloud.

d6df1af5b5b08e41.png

4. Autenticação

O Cloud Tools for PowerShell usa as credenciais e configurações armazenadas no SDK Cloud. Para começar a usar os cmdlets, primeiro você precisa fazer login usando o SDK Cloud.

Autenticação de ambiente autoguiada

Inicie o Google Cloud SDK Shell e execute o comando a seguir.

gcloud init

Aceite a opção de fazer login usando sua conta de usuário do Google.

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

No seu navegador, faça login na sua conta de usuário do Google quando solicitado e clique em Permitir para acessar os recursos do Google Cloud Platform.

No prompt de comando, selecione um projeto do Cloud Platform na lista daqueles para os quais você tem permissão de Proprietário, Editor ou Leitor.

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

5. Executar cmdlets do Google Cloud no PowerShell

Depois da autenticação, você poderá usar os cmdlets do Google Cloud no PowerShell. Encontre e abra o shell da linha de comando do PowerShell.

66b0c5d9b1cd7c68.png

Para garantir que os cmdlets do Google Cloud sejam instalados corretamente, execute o cmdlet Get-GceInstance. Isso vai listar as instâncias do Compute Engine que você tem no projeto.

3ffd420f66f76b06.png

6. Criar e gerenciar instâncias do Google Compute Engine

Nesta seção, você vai criar e gerenciar o Google Compute Engine com as ferramentas do Google Cloud para PowerShell.

Criar uma configuração de instância

Antes de gerar uma instância, você precisa criar uma configuração dela. No mínimo, isso exige um nome, um tipo de máquina e uma imagem de disco de inicialização ou um disco de inicialização pré-existente. Use Get-GceImage para criar uma imagem de disco e New-GceInstanceConfig para criar uma configuração.

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

Neste ponto, você tem uma configuração que pode usar para criar uma instância.

Criar uma instância

Use o cmdlet Add-GceInstance para criar uma nova instância do Compute Engine. É possível especificar um projeto e uma zona. No entanto, se esses parâmetros forem omitidos, os valores de parâmetro serão definidos como padrão na configuração ativa do SDK Cloud. Se você especificar o projeto, substitua PROJECT_ID pelo ID do projeto.

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

Gerenciar uma instância

Você pode usar o cmdlet Get-GceInstance para recuperar as instâncias de máquina virtual de um projeto. Como o nome da instância pode não ser exclusivo nos projetos ou nas zonas, é possível especificar um parâmetro de projeto ou de zona para restringir a pesquisa. Por padrão, o cmdlet usa os valores que estão na configuração ativa do Cloud SDK.

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

Você pode definir tags de instância, discos, configurações de acesso e outros metadados depois de criar sua instância com o cmdlet Set-GceInstance. Adicione alguns metadados e os remova conforme mostrado a seguir.

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

Agora, adicione uma tag que você usará depois para remover a instância.

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

Você pode iniciar, interromper ou reiniciar uma instância por meio de vários cmdlets. Você pode fazer referência a uma instância usando o nome ou o objeto fortemente tipado retornado do cmdlet Get-GceInstance. Teste alguns desses comandos.

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

Por fim, quando terminar de usar a instância, remova-a do Compute Engine usando o cmdlet Remove-GceInstance e fornecendo a tag que você especificou anteriormente.

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

7. Fazer backup de dados no Google Cloud Storage

Nesta parte do codelab, você vai fazer backup de dados da sua máquina local no Google Cloud Storage usando as ferramentas do Cloud para PowerShell.

Crie um bucket

Antes de fazer upload de arquivos para o Cloud Storage, você precisa criar um bucket. Use o cmdlet New-GcsBucket para criar um novo bucket.

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

Faça upload de arquivos para o bucket

É possível usar New-GcsObject para fazer upload de arquivos ou pastas inteiras no bucket.

Para fazer upload do conteúdo para um arquivo local no Cloud Storage, use o parâmetro -File e especifique um caminho para o arquivo. Como alternativa, transmita o conteúdo do objeto como uma string pelo pipeline do PowerShell ou use o parâmetro -Value.

Escolha um arquivo local na sua máquina e faça upload para o bucket da seguinte maneira:

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

É possível fazer upload de todo um diretório do disco local para o Cloud Storage usando o parâmetro -UploadFolder e especificando o caminho da pasta. Se você não quiser que a pasta seja enviada diretamente para a raiz do bucket do Cloud Storage, use -ObjectNamePrefix para especificar um prefixo que será aplicado a cada objeto enviado.

Escolha uma pasta local na sua máquina e faça upload para o bucket da seguinte maneira:

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

Dados de pesquisa

Você pode pesquisar dados com cmdlets ou com o provedor por meio dos cmdlets de pesquisa de arquivos comuns. Tente o comando a seguir com seu bucket.

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

Você verá um pop-up de grade com o nome e o tamanho.

59d92a6bfec86f89.png

Ler dados

Você pode usar o cmdlet Read-GcsObject para ler dados. Por exemplo, você pode usar o comando a seguir para ler um arquivo chamado hello.txt na área de trabalho.

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

Excluir dados

Por último, mas não menos importante, você pode excluir dados usando o cmdlet Remove-GcsObject. Use o comando a seguir para excluir todo o conteúdo do bucket.

Get-GcsObject $bucket | Remove-GcsObject

8. Parabéns!

Neste codelab, você aprendeu a gerenciar instâncias do Compute Engine e buckets do Cloud Storage pelo PowerShell, mas tem muito mais. Também é possível gerenciar os recursos do Cloud SQL e do Cloud CDN com o PowerShell. Confira a lista das próximas etapas abaixo para saber mais.

O que vimos

  • Como instalar o Cloud Tools for PowerShell
  • Como autenticar com o Google Cloud SDK.
  • Como criar e gerenciar o Google Compute Engine no PowerShell.
  • Como fazer backup de dados para o Google Cloud Storage usando o PowerShell.

Próximas etapas