Hojas de cálculo de Google es una solución de hojas de cálculo basada en la nube que admite la colaboración en tiempo real y proporciona herramientas para visualizar, procesar y comunicar datos.
En este instructivo, se muestra cómo activar Workflows desde Hojas de cálculo.
Objetivos
En este instructivo, podrás:
- Usa Formularios de Google, una solución de cuestionarios y encuestas basada en la nube, para crear un formulario que pueda enviar solicitudes para crear instancias de máquina virtual (VM).
- Vincula una hoja de cálculo de Hojas de cálculo de Google al formulario para recopilar y guardar las respuestas.
- Usa Google Apps Script, una plataforma de JavaScript basada en la nube que te permite crear, leer y editar productos de Google Workspace de forma programática, para activar un flujo de trabajo cada vez que se aprueba una solicitud a través de una actualización de la hoja de cálculo.
- Implementa un flujo de trabajo que llame al conector de la API de Compute Engine y cree una instancia de VM de Compute Engine según las especificaciones recopiladas a través del formulario. Los conectores simplifican la llamada a otras APIs de Google Cloud. Obtén más información sobre los conectores de Workflows.
- Prueba todo el proceso y confirma que se cree una instancia de VM según lo esperado.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
En el instructivo, también se usa Google Workspace. Los servicios empresariales que no se incluyen en las aplicaciones gratuitas de Google para consumidores son facturables.
Antes de comenzar
Puedes ejecutar algunos de los siguientes comandos en la consola de Google Cloud o con Google Cloud CLI en tu terminal o Cloud Shell.
Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno Google Cloud restringido.
Console
En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.
Asegúrate de tener habilitada la facturación para tu Google Cloud proyecto. Obtén información para verificar si la facturación está habilitada en un proyecto.
Habilita las APIs de Compute Engine y Workflows.
Toma nota de la cuenta de servicio predeterminada de Compute Engine, ya que la asociarás con el flujo de trabajo en este instructivo con fines de prueba. Los proyectos nuevos que habilitaron la API de Compute Engine tienen esta cuenta de servicio creada con el rol básico de Editor de IAM y con el siguiente formato de correo electrónico:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Puedes encontrar el número del proyecto en la página de bienvenida de la consola de Google Cloud .
Para entornos de producción, recomendamos crear una cuenta de servicio nueva y otorgarle uno o más roles de IAM que contengan los permisos mínimos requeridos y seguir el principio de privilegio mínimo.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Asegúrate de tener habilitada la facturación para tu Google Cloud proyecto. Obtén información para verificar si la facturación está habilitada en un proyecto.
Habilita las APIs de Compute Engine y Workflows.
gcloud services enable \ compute.googleapis.com \ workflows.googleapis.com
Toma nota de la cuenta de servicio predeterminada de Compute Engine, ya que la asociarás con el flujo de trabajo en este instructivo con fines de prueba. Los proyectos nuevos que habilitaron la API de Compute Engine tienen esta cuenta de servicio creada con el rol básico de Editor de IAM y con el siguiente formato de correo electrónico:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
Puedes recuperar el número de tu proyecto de la siguiente manera:
gcloud projects describe PROJECT_ID
Para entornos de producción, recomendamos crear una cuenta de servicio nueva y otorgarle uno o más roles de IAM que contengan los permisos mínimos requeridos y seguir el principio de privilegio mínimo.
Crea un formulario para solicitar instancias de VM
Crea un formulario que se pueda usar para enviar una solicitud de creación de una instancia de máquina virtual (VM) de Compute Engine. De forma predeterminada, cuando creas un formulario a través de Formularios de Google, este se guarda en Google Drive.
- Ve a forms.google.com.
- Haz clic en En blanco
.
Se abrirá un nuevo formulario.
- Crea un formulario con cinco secciones obligatorias. El formulario debería ser similar al siguiente:
Ver formulario de muestra
Nombre de la máquina Texto de respuesta breve
Zona Menú desplegable:
- us-central1-a
- us-central1-b
- us-central1-c
- us-central1-f
Tipo Menú desplegable:
- e2-micro
- e2-small
- e2-medium
- e2-standard-2
- e2-standard-4
Tamaño del disco (GB) Texto de respuesta breve
Sistema operativo Menú desplegable:
- debian-10
- centos-stream-9
- cos-93-lts
- cos-97-lts
- Habilita la recopilación de correos electrónicos para registrar las direcciones de correo electrónico de las personas que completen tu formulario:
- Haz clic en Configuración.
- Expande la sección Responses.
- Haz clic en el botón de activación Recopilar direcciones de correo electrónico.
Cómo vincular una hoja de cálculo a tu formulario
Después de crear un formulario, vincúlalo a una hoja de cálculo para poder guardar las respuestas en ella. La hoja de cálculo se guarda en Drive.
- Abre tu formulario en Formularios.
- Haz clic en Respuestas.
- Haz clic en Vínculo a Hojas de cálculo.
- En el diálogo Selecciona el destino de las respuestas, selecciona Crear una nueva hoja de cálculo.
Haz clic en Crear.
Se abrirá la hoja de cálculo vinculada.
En la columna H, agrega un encabezado ¿Aprobado?.
Coloca el cursor en la primera fila de la columna H y selecciona Insertar > Casilla de verificación.
La hoja de cálculo debería ser similar a la siguiente:
Cada vez que se actualice la hoja con una respuesta, la casilla de verificación también aparecerá en la fila de esa respuesta.
Extiende Hojas de cálculo de Google con Apps Script
Apps Script te permite crear, leer y editar Hojas de cálculo de forma programática. La mayoría de las secuencias de comandos diseñadas para Hojas de cálculo manipulan arrays para interactuar con las celdas, las filas y las columnas de una hoja de cálculo. Para obtener una introducción al uso de Apps Script con Hojas de cálculo, consulta la Guía de inicio rápido de funciones personalizadas.
Crea un proyecto de Apps Script desde Hojas de cálculo:
- Abre tu hoja de cálculo de Hojas de cálculo.
- Selecciona Extensiones > Apps Script.
- En el editor de secuencias de comandos, haz clic en Proyecto sin título.
- Asigna un nombre al proyecto y haz clic en Cambiar nombre.
Tu secuencia de comandos ahora está vinculada a tu hoja de cálculo, lo que le otorga la capacidad de alterar la interfaz de usuario o responder cuando se abre la hoja de cálculo.
Un proyecto de secuencia de comandos representa una colección de archivos y recursos de Apps Script. Los archivos de código en un proyecto de secuencia de comandos tienen una extensión
.gs
.Puedes usar Apps Script para escribir funciones personalizadas que puedes usar en Hojas de cálculo como si fueran funciones integradas. Las funciones personalizadas se crean con JavaScript estándar. Crea una función:
- Abre tu proyecto de Apps Script.
- Haz clic en Editor .
- Un archivo de secuencia de comandos aparece como un archivo de proyecto llamado
Code.gs
. Para editar el archivo, selecciónalo. Reemplaza cualquier código del editor de secuencias de comandos por el siguiente código, que lee los datos de tu hoja de cálculo y los pasa como entrada a la ejecución de un flujo de trabajo:
Reemplaza
your-project-id
por el Google Cloud ID del proyecto.Puedes encontrar el ID del proyecto en la página de bienvenida de la consola de Google Cloud .
Haz clic en Guardar
.
Los activadores instalables de Apps Script permiten que un proyecto de secuencia de comandos ejecute una función especificada cuando se cumplen ciertas condiciones, como cuando se abre o edita una hoja de cálculo. Crea un activador:
- Abre tu proyecto de Apps Script.
- Haz clic en Activadores .
- Haz clic en Add Trigger.
- En el diálogo Add Trigger for YOUR_PROJECT_NAME, configura el activador de la siguiente manera:
- En la lista Elige qué función ejecutar, selecciona handleEdit.
- En la lista Elige qué implementación se debe ejecutar, selecciona Head.
- En la lista Selecciona la fuente del evento, elige Desde hoja de cálculo.
- En la lista Selecciona el tipo de evento, selecciona On edit.
- En la lista Configuración de notificaciones de error, selecciona Notificarme diariamente.
- Haz clic en Guardar.
Si recibes un mensaje para elegir una Cuenta de Google, selecciona la cuenta adecuada y, luego, haz clic en Permitir.
Esto permite que tu proyecto de Apps Script vea, edite, cree y borre tus hojas de cálculo de Hojas de cálculo, y que se conecte a un servicio externo.
Un archivo de manifiesto de un proyecto de Apps Script es un archivo JSON que especifica la información básica del proyecto que Apps Script necesita para ejecutar una secuencia de comandos correctamente. Ten en cuenta que el editor de Apps Script oculta los archivos de manifiesto de forma predeterminada para proteger la configuración de tu proyecto de Apps Script. Edita el archivo de manifiesto:
- Abre tu proyecto de Apps Script.
- Haz clic en Configuración del proyecto .
- Selecciona la casilla de verificación Mostrar el archivo de manifiesto "appsscript.json" en el editor.
- Haz clic en Editor .
- El archivo de manifiesto aparece como un archivo de proyecto llamado
appsscript.json
. Para editar el archivo, selecciónalo. El campo
oauthScopes
especifica un array de cadenas. Para establecer los permisos de autorización que usa tu proyecto, agrega un array con los permisos que deseas admitir. Por ejemplo:{ "timeZone": "America/Toronto", "dependencies": { }, "exceptionLogging": "STACKDRIVER", "runtimeVersion": "V8", "oauthScopes": [ "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/spreadsheets" ] }
Esto establece permisos explícitos para lo siguiente:
- Se conecta a un servicio externo.
- Ver, editar, configurar y borrar tus Google Cloud datos, y ver la dirección de correo electrónico de tu Cuenta de Google
- Consultar, editar, crear y borrar todas tus hojas de cálculo de Hojas de cálculo
Haz clic en Guardar
.
Implementa un flujo de trabajo que crea una instancia de VM
Implementa un flujo de trabajo que se active cuando se apruebe una solicitud para crear una instancia de VM. El flujo de trabajo llama al conector de la API de Compute Engine para crear una instancia de VM de Compute Engine según las especificaciones recopiladas a través del formulario.
Console
En la consola de Google Cloud , ve a la página Workflows:
Haz clic en
Crear.Ingresa un nombre para el flujo de trabajo nuevo:
create-vm-from-form
.En la lista Región, selecciona us-central1 (Iowa).
En Cuenta de servicio, selecciona la cuenta de servicio predeterminada de Compute Engine (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
).Haz clic en Siguiente.
En el editor de flujos de trabajo, ingresa la siguiente definición para el flujo de trabajo:
Haz clic en Implementar.
gcloud
Crea un archivo de código fuente para tu flujo de trabajo:
touch create-vm-from-form.yaml
En un editor de texto, copia el siguiente flujo de trabajo en tu archivo de código fuente:
Para implementar el flujo de trabajo, ingresa el siguiente comando:
gcloud workflows deploy create-vm-from-form \ --source=create-vm-from-form.yaml \ --location=us-central1 \ --service-account=PROJECT_NUMBER-compute@developer.gserviceaccount.com
Reemplaza
PROJECT_NUMBER
por el número de tu proyecto Google Cloud. Puedes recuperar el número de tu proyecto de la siguiente manera:gcloud projects describe PROJECT_ID
Prueba el flujo de extremo a extremo
Para confirmar que todo funciona según lo esperado, intenta completar todo el proceso.
Envía el formulario a tu propia dirección de correo electrónico y responde las preguntas de forma adecuada.
Asegúrate de que las especificaciones que usas para crear una instancia de VM sean válidas. De lo contrario, fallará la ejecución de tu flujo de trabajo. Para obtener más información, consulta Familia de máquinas de uso general de Compute Engine.
Para enviar tu respuesta, haz clic en Enviar.
Abre tu formulario en Formularios.
Haz clic en Respuestas.
Haz clic en Ver en Hojas de cálculo.
Se abrirá la hoja de cálculo vinculada.
En la fila de tu respuesta, selecciona la casilla de verificación ¿Aprobada?.
Abre tu proyecto de Apps Script.
Haz clic en Ejecuciones
.El activador debería ejecutarse y aparecer con el estado
Completed
.Confirma que el flujo de trabajo de
create-vm-from-form
se haya completado correctamente:Console
En la consola de Google Cloud , ve a la página Recomendaciones.
En la página Flujos de trabajo, haz clic en el flujo de trabajo create-vm-from-form para ir a su página de detalles.
En la página Detalles del flujo de trabajo, para recuperar los detalles de una ejecución en particular, haz clic en el ID de ejecución correspondiente.
El Estado de ejecución debería ser Correcto y, en el panel Entrada, deberías ver las especificaciones de la VM que solicitaste.
gcloud
Recupera una lista de los intentos de ejecución de tu flujo de trabajo:
gcloud workflows executions list create-vm-from-form
El resultado debería ser similar al siguiente:
NAME: projects/918619793306/locations/us-central1/workflows/create-vm-from-form/executions/d8947ecb-9ccb-4ea1-ba10-e5c10414e3be STATE: SUCCEEDED START_TIME: 2023-01-24T15:07:40.404741791Z END_TIME: 2023-01-24T15:07:55.649373625Z
Confirma que se creó una VM nueva según lo esperado:
Console
En la Google Cloud consola, ve a la página Instancias de VM.
Tu instancia de VM debería aparecer con un estado que indique que se está ejecutando.
gcloud
Recupera una lista agregada de todas las VMs en todas las zonas de un proyecto:
gcloud compute instances list
Tu instancia de VM debería aparecer con un estado que indique que se está ejecutando.
Para obtener más información sobre el comando
gcloud compute instances list
, consulta su página de referencia.
Limpia
Si creaste un proyecto nuevo para este instructivo, bórralo. Si usaste un proyecto existente y deseas conservarlo sin los cambios que se agregaron en este instructivo, borra los recursos creados para el instructivo.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.
Para borrar el proyecto, sigue estos pasos:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.