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 configuración que se usa en 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 recursos de Google Cloud, como Google Compute Engine, Google Cloud Storage, Google Cloud SQL y Google Cloud DNS, y manipularlos, y pronto se agregarán más.
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 autenticar con el SDK de Google Cloud.
- Cómo crear y administrar Google Compute Engine desde PowerShell.
- Cómo hacer una copia 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
En este codelab, necesitas un proyecto de Google Cloud para interactuar con PowerShell. Si ya tienes un proyecto, puedes usarlo o crear uno nuevo siguiendo los pasos que se indican a continuación.
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
.
Luego, deberás habilitar la facturación en la consola de Google Cloud para usar los recursos de Google Cloud, como Google Cloud Datastore y Cloud Storage.
Los usuarios nuevos de Google Cloud son aptos para una prueba gratuita de$300. La ejecución de este codelab no debería costar más que unos pocos dólares, pero podría ser más si decides usar más recursos o si los dejas en ejecución (consulta la sección "Limpieza" al final de este documento).
3. Instalación
Instalación del entorno de autoaprendizaje
Los cmdlets de PowerShell forman parte del SDK de Cloud para Windows. Si aún no lo hiciste, descarga y, luego, 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 el SDK de Google Cloud 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 el navegador, accede a tu cuenta de usuario de Google cuando se te solicite y haz clic en Permitir (Allow) para otorgar permiso de 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 tengas permisos de propietario, editor o visualizador.
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 realices la autenticación, estarás listo para 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 se instalen correctamente, ejecuta el cmdlet Get-GceInstance
. Se deberían mostrar las instancias de Compute Engine que tienes en tu proyecto.
6. Crea y administra 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 instancias
Antes de crear una instancia, primero debes crear la configuración de una instancia. Como mínimo, se requiere un nombre, un tipo de máquina y una imagen de disco de arranque o un disco de arranque 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.
Crear una instancia
Usa el cmdlet Add-GceInstance
para crear una instancia nueva de Compute Engine. Puedes especificar un proyecto y una zona, pero si se omiten, los valores de los parámetros se establecen de forma predeterminada en los de la configuración activa actual del SDK de Cloud. Si especificas el proyecto, asegúrate de reemplazar PROJECT_ID
con tu propio ID del proyecto.
$config | Add-GceInstance -Project PROJECT_ID -Zone europe-west1-b
Administrar una instancia
Puedes usar el cmdlet Get-GceInstance
para recuperar las instancias de máquina virtual de un proyecto. Dado que es posible que el nombre de la instancia no sea único en los proyectos o las zonas, puedes especificar un parámetro de Proyecto o Zona para acotar la búsqueda. De forma predeterminada, el cmdlet usa cualquier valor que se encuentre en la configuración activa del SDK de Cloud.
$instance = Get-GceInstance "my-vm-1"
Puedes configurar etiquetas de instancia, discos, parámetros de configuración de acceso y otros metadatos después de crear la instancia con el cmdlet Set-GceInstance
. Agrega algunos metadatos y, luego, quítalos como se muestra a continuación.
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
. Juega con algunos de estos comandos.
Stop-GceInstance $instance
Start-GceInstance $instance
Restart-GceInstance "my-vm-1"
Por último, cuando termines de usar la instancia, quítala de Compute Engine con el cmdlet Remove-GceInstance
y proporciona la etiqueta que especificaste anteriormente.
Get-GceInstance -Project $project |
Where { $_.Tags.Items -contains "to-be-removed" } |
Remove-GceInstance -WhatIf
7. Crea una copia de seguridad de los datos en Google Cloud Storage
En esta parte del codelab, creará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
Sube archivos al bucket
Puedes usar New-GcsObject
para subir archivos o carpetas completas al bucket.
Para subir el contenido de un archivo local a Cloud Storage, usa el parámetro -File
y especifica una ruta de acceso al archivo. Como alternativa, puedes pasar el contenido del objeto como una string 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 al bucket como se indica a continuación.
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 especificando la ruta de acceso a la carpeta. Si no quieres que la carpeta se suba directamente a 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 al bucket como se indica a continuación.
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 ventana emergente de cuadrícula con el nombre y el tamaño.
Lee datos
Puedes usar el cmdlet Read-GcsObject
para leer los datos. Por ejemplo, puedes usar el siguiente comando para leer un archivo llamado hello.txt
en el escritorio.
Read-GcsObject $bucket "hello.txt" `
-OutFile "$Env:UserProfile\Desktop\hello.txt"
Cómo borrar datos
Por último, pero no menos importante, puedes borrar los 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 más. También puedes administrar los recursos de Cloud SQL y Cloud CDN con PowerShell. Consulta la lista de próximos pasos a continuación para obtener más información.
Temas abordados
- Cómo instalar Cloud Tools for PowerShell
- Cómo autenticar con el SDK de Google Cloud.
- Cómo crear y administrar Google Compute Engine desde PowerShell.
- Cómo hacer una copia 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.