Este instructivo está destinado a quienes estén comenzando a compilar apps en la nube, como ingenieros y desarrolladores web, y quieran aprender conceptos clave del desarrollo de apps en Google Cloud.
Objetivos
- Aprender sobre las herramientas básicas de Google Cloud , como la consola deGoogle Cloud y
gcloud - Implementar tu app en Cloud Run
- Conserva tus datos con Firestore.
- Almacenar archivos subidos en Cloud Storage
- Supervisa tu app con Google Cloud Observability.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Las instrucciones de este documento están diseñadas para que el uso de los recursos se mantenga dentro de los límites del nivel Siempre gratuito de Google Cloud.
Para generar una estimación de costos en función del uso previsto,
usa la calculadora de precios.
Cuando completes las tareas que se describen en este documento, podrás borrar los recursos que creaste para evitar que se te siga facturando. Para obtener más información, consulta Realiza una limpieza.
Antes de comenzar
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Para crear una base de datos de Firestore en modo nativo, sigue los pasos a continuación:
-
En la consola de Google Cloud , ve a la página Crear base de datos de Firestore.
- Desde la pantalla Selecciona un modo de Cloud Firestore, haz clic en Seleccionar modo nativo.
- Selecciona una ubicación para tu base de datos de Firestore. Este parámetro de configuración de ubicación es la ubicación predeterminada de los recursos de Google Cloud para tu proyecto de Google Cloud . Esta ubicación se usa para los servicios de Google Cloud en tu Google Cloud proyecto que requieren una configuración de ubicación, específicamente, tu bucket predeterminado deCloud Storage y tu app deCloud Run.
- Haz clic en Crear base de datos.
-
En la consola de Google Cloud , ve a la página Crear base de datos de Firestore.
-
Habilita las APIs de Cloud Run, Cloud Storage JSON, Cloud Logging y Error Reporting si alguna aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles. -
Clona el repo de ejemplo y abre la aplicación de ejemplo en Cloud Shell:
Ir a Cloud ShellCloud Shell proporciona acceso de línea de comandos a tus Google Cloud recursos directamente desde el navegador.
- En el mensaje para clonar el repo, haz clic en Confirmar.
-
En Cloud Shell, configura la herramienta de
gcloudpara usar tu proyecto Google Cloud nuevo:# Configure gcloud for your project gcloud config set project PROJECT_ID
Reemplaza PROJECT_ID por el Google Cloud ID del proyecto que creaste con la Google Cloud consola.
La CLI de Google Cloud es la forma principal en la que interactúas con tus recursos de Google Cloud desde la línea de comandos. En este instructivo, usarás la herramienta
gcloudpara implementar y supervisar tu aplicación.
Ejecuta tu app
- Ejecuta la app:
ReemplazaGOOGLE_CLOUD_PROJECT=PROJECT_ID dotnet run
PROJECT_IDpor el ID del proyecto Google Cloud que creaste. - En Cloud Shell, haz clic en Vista previa en la Web y selecciona Vista previa en el puerto 8080. Se abrirá una ventana nueva con tu app en ejecución.
Implementa tu app en Cloud Run
Google Cloud ofrece varias opciones para ejecutar tu código. En este ejemplo, usarás Cloud Run para implementar una app escalable en Google Cloud. Gracias a que no necesitas que se administren servidores, Cloud Run te permite enfocarte en escribir código. Además, Cloud Run escala automáticamente para admitir los aumentos de tráfico repentinos.
El Dockerfile le indica a Cloud Run cómo ejecutar tu app:Los Dockerfiles pueden ser más completos, pero esta configuración funciona para muchas aplicaciones.
Cloud Run le indica a tu app qué puerto debe escuchar mediante la configuración de la variable de entorno PORT. El Program.cs de Bookshelf contiene código para observar la variable PORT y escuchar en ese puerto:
En la ventana de la terminal, implementa la app en Cloud Run con gcloud CLI:
- Compila la aplicación de manera local.
dotnet publish -c Release
- Usa Cloud Build para compilar un contenedor de Docker y publicarlo en Container Registry.
gcloud builds submit --tag gcr.io/PROJECT_ID/bookshelf \ bin/Release/netcoreapp2.1/publish
- Ejecuta el contenedor con Cloud Run.
Ahora puedes ver tu app en la URL que se muestra en el resultado degcloud run deploy bookshelf --region us-central1 --platform managed \ --image gcr.io/PROJECT_ID/bookshelf --allow-unauthenticated
gcloud run:Service [bookshelf] revision [bookshelf-00001] has been deployed and is serving traffic at https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app
-
Copia la URL a tu navegador web para ver la app.
Para obtener más información sobre la implementación en Cloud Run, consulta la documentación de Cloud Run.
Conserva tus datos con Firestore
No se puede almacenar información en tus instancias de Cloud Run porque se perderá si se reinicia la instancia, además de que no existirá cuando se creen instancias nuevas. En su lugar, usarás una base de datos en la que todas tus instancias puedan leer y escribir.
Google Cloud ofrece varias opciones para almacenar tus datos. En este ejemplo, usarás Firestore para almacenar los datos de cada libro. Firestore es una base de datos de documentos NoSQL, completamente administrada y sin servidores que te permite almacenar y consultar datos. Firestore escala de manera automática para cumplir las necesidades de tu aplicación y escala a cero cuando no la estás usando. Agrega el primer libro:
-
Para crear un libro en tu aplicación implementada, haz clic en Add book (Agregar libro).
- En el campo Title, ingresa
Moby Dick. - En el campo Author, ingresa
Herman Melville. -
Haz clic en Save. Ya tienes una entrada en la aplicación Bookshelf.
-
En la consola de Google Cloud , ve a Cloud Firestore. Ir a Cloud Firestore
Los datos aparecen en Firestore. La aplicación Bookshelf almacena cada libro como un documento de Firestore con un ID único, y todos estos documentos se almacenan en una colección de Firestore. A los fines de este instructivo, la colección se llama libros.
Firestore almacena los libros con la biblioteca cliente de Firestore. Aquí hay un ejemplo de recuperación de un documento de Firestore:
Para obtener más información sobre el uso de Firestore, consulta cómo agregar datos a Firestore.
Almacena las cargas de archivos en Cloud Storage
Ahora que agregaste un libro, es momento de agregar su imagen de portada. No puedes almacenar archivos en tus instancias. Una base de datos no es la opción correcta para archivos de imagen. En cambio, debes usar Cloud Storage.
Cloud Storage es el almacenamiento de BLOB principal para Google Cloud. Puedes usar Cloud Storage para alojar recursos de aplicaciones que deseas compartir en Google Cloud. Para usar Cloud Storage, debes crear un bucket de Cloud Storage, un contenedor básico en el que se guardan tus datos.
- En la Google Cloud consola, ve a la página Navegador de Cloud Storage.
- Haz clic en Crear bucket.
- En el cuadro de diálogo Crear bucket, ingresa un nombre para tu bucket y agrega el ID de tu proyecto Google Cloud a la cadena
_bucketpara que el nombre se vea comoYOUR_PROJECT_ID_bucket. Este nombre está sujeto a los requisitos de nombre de bucket. En el resto de los campos, se pueden conservar los valores predeterminados. - Haz clic en Crear.
- Una vez que se haya creado el bucket, debe permitirse el acceso público a los objetos para que puedan consultarlos los usuarios. Si quieres permitir el acceso público a tus objetos, consulta el artículo Haz públicos los datos.
-
Haz clic en Edit book y selecciona una imagen para subirla como la portada del libro. Por ejemplo, puedes usar esta imagen de dominio público:
-
Haz clic en Save. Se te redireccionará a la página principal, en la que encontrarás una entrada a la app Bookshelf.
La app de Bookshelf envía los archivos subidos a Cloud Storage a través de la biblioteca cliente de Cloud Storage.
Si quieres obtener más información para usar Cloud Storage, consulta la introducción a Cloud Storage.
Supervisa tu app con Google Cloud Observability
Ya implementaste la app y creaste y modificaste libros. A fin de supervisar estos eventos para los usuarios, usa la administración del rendimiento de las aplicaciones.
Supervisa los registros con Cloud Logging
-
En la Google Cloud, ve al Explorador de registros.
Ve al Explorador de registrosPuedes supervisar tu app en tiempo real. Si tienes problemas con tu app, este es uno de los primeros lugares que consultar.
- En la lista desplegable Recursos, selecciona Revisión de Cloud Run, bookshelf.
Supervisa los errores con Error Reporting
-
En la consola de Google Cloud , ve a la página Error Reporting.
Ir a la página de Error Reporting
Error Reporting destaca los errores y las excepciones en tu app, y te permite configurar alertas sobre ellos. - En tu navegador, ve a la URL
/Home/Throwen tu app.
Por ejemplo, si tu app se aloja en https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app, ve a https://bookshelf-lwuhslogjlnpofsxugoc.a.run.app/Home/Throw.Esto genera una nueva excepción de prueba y la envía a Google Cloud Observability.
-
En la consola de Google Cloud , regresa a la página de Error Reporting y podrás ver el error nuevo en unos instantes. Haz clic en Recarga automática para que no tengas que actualizar la página de forma manual.
Realiza una limpieza
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.