1. Descripción general
PowerShell es una shell de línea de comandos y un lenguaje de programación asociado compilado en .NET Framework. Es la herramienta predeterminada de automatización de tareas y administración de la configuración que se usa en el mundo de Windows. Un cmdlet de PowerShell es un comando ligero que se invoca dentro de PowerShell.
Cloud Tools for PowerShell es una colección de cmdlets para acceder a los recursos de Google Cloud y manipularlos, como Google Compute Engine, Google Cloud Storage, Google Cloud SQL y Google Cloud DNS, y habrá más en el futuro.
Sigue este lab para aprender a interactuar con los recursos de Google Cloud desde PowerShell.
Qué aprenderás
- Cómo instalar Cloud Tools for PowerShell
- Cómo autenticarse con el SDK de Google Cloud
- Cómo crear y administrar Google Compute Engine desde PowerShell
- Cómo crear copias de seguridad de datos en Google Cloud Storage desde PowerShell
Requisitos
¿Cómo usarás este instructivo?
¿Cómo calificarías tu experiencia con Google Cloud Platform?
2. Configuración y requisitos
Para este codelab, necesitas un proyecto de Google Cloud para interactuar con PowerShell. Si tienes un proyecto existente, puedes usarlo o crear uno nuevo siguiendo estos pasos.
Configuración del entorno de autoaprendizaje
Si aún no tienes una Cuenta de Google (Gmail o G Suite), debes crear una. Accede a la consola de Google Cloud ( console.cloud.google.com) y crea un proyecto nuevo:


Recuerda el ID del proyecto, un nombre único en todos los proyectos de Google Cloud Platform. Se mencionará más adelante en este codelab como PROJECT_ID.
A continuación, deberás habilitar la facturación en Google Cloud Console para usar los recursos de Google Cloud Platform, como Google Cloud Datastore y Cloud Storage.
Los usuarios nuevos de Google Cloud Platform son aptos para obtener una prueba gratuita de USD 300. Ejecutar este codelab debería costar solo unos pocos dólares, pero su costo podría aumentar si decides usar más recursos o si los dejas en ejecución (consulta la sección “Limpiar” al final de este documento).
3. Instalación
Instalación del entorno de autoaprendizaje
Los cmdlets de PowerShell se incluyen como parte del SDK de Cloud para Windows. Si aún no lo hiciste, descarga e instala el SDK de Google Cloud para Windows, como se describe en la Guía de inicio rápido para Windows. Asegúrate de haber marcado la opción de PowerShell cuando instalaste el SDK de Cloud.

4. Autenticación
Cloud Tools for PowerShell usa las credenciales y la configuración almacenadas en el SDK de Cloud. Por lo tanto, para comenzar a usar los cmdlets, primero debes acceder con el SDK de Cloud.
Autenticación del entorno de autoaprendizaje
Inicia Google Cloud SDK Shell y ejecuta el siguiente comando.
gcloud init
Acepta la opción para acceder con tu cuenta de usuario de Google.
To continue, you must log in. Would you like to log in (Y/n)? Y
En tu navegador, accede a tu cuenta de usuario de Google cuando se te solicite y haz clic en Permitir para autorizar el acceso a los recursos de Google Cloud Platform.
En el símbolo del sistema, selecciona un proyecto de Cloud Platform de la lista de aquellos en los que tienes permiso de propietario, editor o lector.
Pick a cloud project to use:
[1] [my-project-1]
[2] [my-project-2]
...
Please enter your numeric choice:
5. Ejecuta cmdlets de Google Cloud en PowerShell
Una vez que te autentiques, podrás usar los cmdlets de Google Cloud en PowerShell. Busca y abre la shell de línea de comandos de PowerShell.

Para asegurarte de que los cmdlets de Google Cloud estén instalados correctamente, ejecuta el cmdlet Get-GceInstance. Debería aparecer una lista de las instancias de Compute Engine que tienes en tu proyecto.

6. Crear y administrar instancias de Google Compute Engine
En esta sección, crearás y administrarás Google Compute Engine desde Google Cloud Tools for PowerShell.
Crea una configuración de instancia
Antes de crear una instancia, primero debes crear la configuración de una instancia. Como mínimo, esto requiere un nombre, un tipo de máquina y una imagen de disco de arranque o un disco de inicio preexistente. Usa Get-GceImage para crear una imagen de disco y New-GceInstanceConfig para crear una configuración.
$disk = Get-GceImage "windows-cloud" -Family "windows-2012-r2"
$config = New-GceInstanceConfig "my-vm-1" `
-MachineType "n1-standard-4" `
-DiskImage $disk
En este punto, tienes una configuración que puedes usar para crear una instancia.
Crea una instancia.
Usa el cmdlet Add-GceInstance para crear una instancia nueva de Compute Engine. Puedes especificar un proyecto y una zona, pero, si los omites, los valores de los parámetros se establecerán de forma predeterminada en los de tu configuración activa actual del SDK de Cloud. Si especificas un proyecto, asegúrate de reemplazar PROJECT_ID por tu propio ID del proyecto.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
Administra una instancia
Puedes usar el cmdlet Get-GceInstance para recuperar las instancias de máquina virtual de un proyecto. Ya que es posible que el nombre de la instancia no sea exclusivo en los proyectos o zonas, puedes especificar un parámetro de proyecto o zona para reducir la búsqueda. Según la configuración predeterminada, el cmdlet usa los valores que se encuentran en la configuración activa del SDK de Cloud.
$instance = Get-GceInstance "my-vm-1"
Puedes configurar etiquetas de instancia, discos, configuraciones de acceso y otros tipos de metadatos después de crear tu instancia con el cmdlet Set-GceInstance. Agrega algunos metadatos y, luego, quítalos de la siguiente manera.
Set-GceInstance $instance -AddMetadata @{"newKey" = "newValue"}
Set-GceInstance $instance -RemoveMetadata "newKey"
Set-GceInstance $instance -RemoveTag "beta" -AddTag "alpha"
Ahora, agrega una etiqueta que usarás más adelante para quitar la instancia.
Set-GceInstance $instance -AddTag "to-be-removed"
Puedes iniciar, detener o reiniciar una instancia con varios cmdlets. Puedes hacer referencia a una instancia con el nombre o el objeto con tipos sólidos que se muestran en el cmdlet Get-GceInstance. Prueba algunos de estos comandos.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
Por último, cuando termines con la instancia, quítala de Compute Engine con el cmdlet Remove-GceInstance y proporciona la etiqueta que especificaste antes.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. Crea copias de seguridad de los datos en Google Cloud Storage
En esta parte del codelab, harás una copia de seguridad de los datos de tu máquina local en Google Cloud Storage con Cloud Tools for PowerShell.
Cree un depósito
Antes de subir archivos a Cloud Storage, debes crear un bucket. Usa el cmdlet New-GcsBucket para crear un bucket nuevo.
$bucket = "my-gcs-bucket"
New-GcsBucket $bucket
Cómo subir archivos al bucket
Puedes usar New-GcsObject para subir archivos o carpetas completas al bucket.
Puedes subir el contenido de un archivo local a Cloud Storage, para ello usa el parámetro -File y especifica una ruta de acceso al archivo. Como alternativa, puedes pasar el contenido del objeto como una cadena a través de la canalización de PowerShell o puedes usar el parámetro -Value.
Elige un archivo local en tu máquina y súbelo a tu bucket de la siguiente manera.
New-GcsObject -Bucket "my-gcs-bucket" -File "C:\path\to\some\file\hello.txt"
Puedes subir un directorio completo desde el disco local a Cloud Storage con el parámetro -UploadFolder y especificar la ruta de acceso a la carpeta. Si no quieres que la carpeta se suba directamente en la raíz del bucket de Cloud Storage, usa -ObjectNamePrefix para especificar un prefijo que se aplicará a cada objeto subido.
Elige una carpeta local en tu máquina y súbela a tu bucket de la siguiente manera.
New-GcsObject -Bucket "my-gcs-bucket" -Folder "C:\path\to\some\folder"
Datos de la Búsqueda
Puedes buscar datos con cmdlets o con el proveedor a través de los cmdlets de búsqueda de archivos comunes. Prueba el siguiente comando con tu bucket.
Get-GcsObject $bucket | Select Name, Size | Out-GridView
Deberías ver una cuadrícula emergente con el nombre y el tamaño.

Leer datos
Puedes usar el cmdlet Read-GcsObject para leer datos. Por ejemplo, puedes usar el siguiente comando para leer un archivo llamado hello.txt en tu escritorio.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
Cómo borrar datos
Por último, puedes borrar datos con el cmdlet Remove-GcsObject. Usa el siguiente comando para borrar todo el contenido del bucket.
Get-GcsObject $bucket | Remove-GcsObject
8. ¡Felicitaciones!
En este codelab, aprendiste a administrar instancias de Compute Engine y buckets de Cloud Storage desde PowerShell, pero hay mucho más. También puedes administrar los recursos de Cloud SQL y Cloud CDN con PowerShell. Consulta la siguiente lista de próximos pasos para obtener más información.
Temas abordados
- Cómo instalar Cloud Tools for PowerShell
- Cómo autenticarse con el SDK de Google Cloud
- Cómo crear y administrar Google Compute Engine desde PowerShell
- Cómo crear copias de seguridad de datos en Google Cloud Storage desde PowerShell
Próximos pasos
- Obtenga más información sobre Cloud Tools for PowerShell.
- Obtenga más información sobre Windows en Google Cloud Platform.
- Obtenga más información sobre .NET en Google Cloud Platform.
- Obtenga más información sobre SQL Server en Google Cloud Platform.
- Obtenga más información sobre Cloud Tools for Visual Studio.