Aplicación Web de referencia para Cloud Run for Anthos
April 22, 2021 · View on GitHub
English | Español
Aplicación Web de referencia para Cloud Run for Anthos
🛑 Este proyecto se ha archivado y no se mantiene actualmente 🛑
Este repositorio, que incluye todos los flujos de trabajo y automatizaciones asociados, representa un conjunto de mejores prácticas dirigidas a demostrar una arquitectura de referencia para crear una aplicación web en Google Cloud utilizando Cloud Run para Anthos.
Se puede encontrar una descripción detallada de la arquitectura de la aplicación web en architecture.md.
Prerequisitos
Ambiente de Desarrollo
NOTA: los pasos de esta guía asumen que se está trabajando en un ambiente de desarrollo basado en POSIX.
El único requerimiento para ejecutar este ejemplo como se muestra en este repositorio
es una instalación funcional de gcloud. Opcionalmente, tener make instalado le
permitirá hacer uso de los objetivos de conveniencia provistos en el makefile.
NOTA: Su cuenta de usuario de gcloud debe tener
permiso de propietario sobre el proyecto para poder completar
la configuración de la aplicación.
Cloud Shell
¡Este ejemplo se puede ejecutar directamente desde Cloud Shell!
Configuración Local
Siga los pasos para configurar gcloud en su entorno local,
luego clone este repositorio usando git clone.
Dominio Personalizado
Para que esta aplicación de referencia funcione correctamente, necesitará un dominio personalizado que se haya configurado y verificado correctamente.
La forma más fácil de hacerlo es ejecutando el shell script interactivo domain-setup.sh:
./scripts/domain-setup.sh
El shell script:
- Le permite crear un subdominio personalizado o usar uno existente.
- Crea subdominios personalizados y zonas administradas listas para usar usando los pasos en cloud-tutorial.dev.
- Asegura que todos los dominios personalizados estén asociados con una zona administrada de Cloud DNS en el mismo proyecto que está desplegando para esta aplicación.
- Para los dominios personalizados proporcionados, muestra enlaces a la documentación para actualizar los registros de servidores de nombres para apuntar a su zona administrada.
- Lo lleva a través de la verificación de propiedad del dominio.
Identity Platform para Auth y Configuración de Firestore
-
Habilitar Identity Platform en su proyecto.
- Esto creará un ID de cliente OAuth 2.0 que puede ser utilizado por la aplicación web.
- Adicionalmente, creará un proyecto de Firebase donde Cloud Firestore puede ser utilizado.
-
Autorizar su dominio personalizado en Identity Platform.
- En la consola de GCP, navegue a Identity Platform > Ajustes.
- Haga clic en la pestaña de Seguridad.
- Añada su dominio personalizado en Dominios autorizados.
- Haga clic en Guardar.
-
Autorizar que su dominio personalizado pueda usar su ID de cliente OAuth 2.0.
- En la consola de GCP, navegue a APIs y servicios > Credenciales.
- Haga clic en el ID de cliente OAuth 2.0 que se creó automáticamente.
- "(auto created by Google Service)" debe aparecer en el nombre.
- $PROJECT_ID.firebaseapp.com debe aparecer en Orígenes de JavaScript autorizados.
- Tome nota del ID de cliente y Secreto de cliente. Los usará en el siguiente paso.
- En Orígenes de JavaScript autorizados,
añada su dominio personalizado con el prefijo
https://. - Haga clic en Guardar.
-
Agregar Google como proveedor de identidades en Identity Platform:
- En la consola de GCP, navegue a Identity Platform > Proveedores.
- Haga clic en Añadir proveedor.
- Seleccione Google de la lista.
- Complete los campos Web Client ID y Web Client Secret con el ID y secreto del cliente OAuth 2.0 creado en el paso anterior.
- Haga clic en Guardar.
-
Configurar la pantalla de consentimiento de OAuth.
- Tipo de usuario se puede configurar como Interno o Externo.
- Deberá configurar el Correo electrónico de asistencia y el
Vínculo a la página principal de la aplicación
(su dominio personalizado con el prefijo
https://). - Información adicional aquí.
-
Configurar
webui/firebaseConfig.js.- Identifique su Clave de API de la web navegando a la configuración del proyecto en la consola de Firebase: https://console.firebase.google.com/project/$PROJECT_ID/settings/general?hl=es
- Ejecute firebase-config-setup.sh para crear
webui/firebaseConfig.js:
./scripts/firebase-config-setup.sh $PROJECT_ID $API_KEY -
Crear la base de datos de Firestore:
- Navegue a Desarrollo > Database en la consola de Firebase: https://console.firebase.google.com/project/$PROJECT_ID/database?hl=es.
- Haga clic en Crear base de datos
- Elija modo de producción, luego haga clic en Siguiente
- Use la ubicación predeterminada o personalícela como desee, luego haga clic en Listo
-
Configurar las reglas de seguridad de Firestore:
- Navegue a Desarollo > Database > Reglas en la consola de Firebase: https://console.firebase.google.com/project/$PROJECT_ID/database/firestore/rules?hl=es.
- Asegurese que Cloud Firestore esté seleccionado en el menú desplegable
de la parte de arriba.

- Establezca las reglas de seguridad a las que se encuentran en
firestore/firestore.rules.
Desplegando la Aplicación por Primera Vez
Este proyecto utiliza Cloud Build y Config Connector para automatizar las implementaciones del código e infraestructura. Las instrucciones a continuación describen cómo desplegar la aplicación.
1. Configurar el proyecto de GCP
Deberá iniciar los servicios y permisos requeridos por este ejemplo. La forma más fácil de hacerlo es ejecutando bootstrap.sh:
./scripts/bootstrap.sh $PROJECT_ID
Este paso además crea un archivo llamado env.mk basado en env.mk.sample.
2. Completar las secciones TODO en env.mk
Aborde el comentario de TODO en la parte superior de env.mk y asegurese que
los valores sean correctos.
3. Crear un clúster de GKE
Ejecute make cluster
4. Agregar un propietario verificado para el dominio
Agregue la siguiente cuenta de servicio como un propietario verificado adicional:
cnrm-system@${PROJECT_ID}.iam.gserviceaccount.com
donde ${PROJECT_ID} se reemplaza por su ID de proyecto de Google Cloud.
5. Build y desplegar
Ejecute make build-all.
Probar la Aplicación
Una vez que se despliega su aplicación, puede probarla navegando a https://$DOMAIN,
donde $DOMAIN es el dominio personalizado que configuró en env.mk.
Actualizar la Aplicación
Ejecutar make build-all hará el build y desplegará la aplicación, incluidos
los cambios realizados en la infraestructura. Tenga en cuenta que eliminar
recursos de infrastructure-tpl.yaml no hará que se eliminen. Debe ejecutar
make delete antes de eliminar el recurso (luego volver a implementar con
make build-all después de eliminarlo), o eliminar manualmente el recurso con
kubectl delete.
# construye e implementa infraestructura de back-end, frontend e KCC
make build-all
# construye e implementa solo el servicio de back-end Go
make build-backend
# construye y despliega solo la aplicación web angular frontend
make build-webui
Limpieza
La ejecución de make delete eliminará los recursos de Config Connector de su
clúster, lo que hará que Config Connector elimine los recursos de GCP
asociados. Sin embargo, debe eliminar manualmente su servicio Cloud Run y GKE Cluster.