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 automação de tarefas e gerenciamento de configuração usada no mundo Windows. Um cmdlet do PowerShell é um comando leve invocado no PowerShell.

O Cloud Tools for PowerShell é um conjunto de cmdlets para acessar e manipular recursos do Google Cloud, como o Google Compute Engine, o Google Cloud Storage, o Google Cloud SQL e o Google Cloud DNS. E vem muito mais por aí!

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

O que você vai aprender

  • Como instalar o Cloud Tools for PowerShell.
  • Como fazer a autenticação com o SDK Google Cloud.
  • Como criar e gerenciar o Google Compute Engine no PowerShell.
  • Como fazer backup de dados no 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

Para este codelab, você precisa de um projeto na nuvem do Google para interagir com o PowerShell. Se você já tiver um projeto, use-o ou crie um novo seguindo estas etapas.

Configuração de ambiente autoguiada

Se você ainda não tem uma Conta do Google (Gmail ou GSuite), crie uma. Faça login no console do Google Cloud ( console.cloud.google.com) e crie um 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, será 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 uma avaliação 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 deixá-los em execução. Consulte a seção "revisão dos dados" 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 ainda não tiver feito isso, faça o download e instale o SDK do Google Cloud para Windows, conforme descrito no guia de início rápido para Windows. Verifique se você marcou a opção do 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 faça login usando o SDK Cloud.

Autenticação de ambiente autoguiada

Inicie o shell do SDK Google Cloud e execute o seguinte comando.

gcloud init

Aceite a opção de fazer login com 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 permitir acesso aos recursos do Google Cloud Platform.

No prompt de comando, selecione um projeto do Cloud Platform na lista daqueles em que você tem permissões 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 de autenticado, você poderá usar os cmdlets do Google Cloud no PowerShell. Encontre e abra o shell de linha de comando do PowerShell.

66b0c5d9b1cd7c68.png

Para garantir que os cmdlets do Google Cloud estejam 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 no Google Cloud Tools for PowerShell.

Criar uma configuração de instância

Antes de gerar uma instância, você precisa criar uma configuração dela. No mínimo, ela requer um nome, um tipo de máquina e uma imagem de disco de inicialização ou um disco de inicialização preexistente. 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 ser usada para criar uma instância.

Criar uma instância

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

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

Gerenciar uma instância

Use o cmdlet Get-GceInstance para recuperar as instâncias de máquina virtual de um projeto. O nome da instância talvez não seja exclusivo nos projetos ou nas zonas. Neste caso, especifique um parâmetro de projeto ou zona para restringir a pesquisa. Por padrão, o cmdlet usa os valores da configuração ativa do SDK Cloud.

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

É possível definir tags de instância, discos, configurações de acesso e outros metadados depois de criar a instância com o cmdlet Set-GceInstance. Adicione alguns metadados e remova da seguinte forma.

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

Agora, adicione uma tag que você vai usar mais tarde 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. É possível se referir a uma instância usando o nome ou o objeto de tipo forte 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 especificada 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 dos dados da sua máquina local para o Google Cloud Storage usando o Cloud Tools for PowerShell.

Crie um bucket

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

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

Fazer upload de arquivos para o bucket

Você pode usar New-GcsObject para fazer upload de arquivos ou pastas inteiras para o bucket.

É possível fazer o upload do conteúdo de um arquivo local para o Cloud Storage usando o parâmetro -File e especificando um caminho de arquivo. Como alternativa, é possível transmitir o conteúdo do objeto como uma string pelo pipeline do PowerShell ou usar 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 o upload de um diretório inteiro 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 todos os objetos enviados.

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"

Pesquisar dados

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

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

Uma grade vai aparecer com o nome e o tamanho.

59d92a6bfec86f89.png

Ler dados

Use o cmdlet Read-GcsObject para ler dados. Por exemplo, use o comando a seguir para ler um arquivo chamado hello.txt na sua área de trabalho.

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

Excluir dados

Por fim, é possível 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 no PowerShell, mas há muito mais! Também é possível gerenciar recursos do Cloud SQL e do Cloud CDN usando o PowerShell. Confira a lista de próximas etapas abaixo para saber mais.

O que vimos

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

Próximas etapas