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
Como você usará este tutorial?
Como você classificaria sua experiência com o Google Cloud Platform?
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:
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.
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.
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.
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.
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
- Saiba mais sobre o Cloud Tools for PowerShell.
- Saiba mais sobre o Windows no Google Cloud Platform.
- Saiba mais sobre .NET no Google Cloud Platform.
- Saiba mais sobre SQL Server no Google Cloud Platform.
- Saiba mais sobre o Cloud Tools for Visual Studio.