Levantar microservicios sin tener que generar archivo json de service account.
En esta guía analizaremos y utilizaremos las cuentas personales de cada usuario para acceder a los recursos de gcp. Esto significa que los usuarios no necesitan un json de la cuenta de servicio. En lugar de proporcionar a los usuarios un archivo de cuenta de servicio, proporcionamos autorización al usuario para cumplir sus labores al momento de desarrollar microservicios.
Requisitos Técnicos
Google Cloud Platform
- Una cuenta personal de Google Cloud
- SDK de Google Cloud
- python3
Recursos GCP que se utilizaran
- Service account
- Tópicos y Suscripciones
Realizar Login con su cuenta GCP
gcloud auth login
Obtener el proyecto actual
gcloud config get-value core/project
Configurar Proyecto GCP
gcloud config set core/project [PROJECT-ID]
En esta guía tendremos 2 casos, el primer ejemplo será levantar el microservicio con una service account. En el segundo caso usaremos nuestra cuenta gcp para levantar el microservicio.
Paso 1 Crear Infraestructura
Topico llamado echo
Suscripción llamado echo-read
Service account llamada pubsub-v1
Asignar permiso de Pub/Sub Subscriber sobre la suscripción echo-read
Como paso adicional cargaremos mensajes al tópico echo.
Nos conectaremos a la consola de GCP y ejecutaremos el comando para publicar 200 mensajes en el,
for i in {1..200}; do gcloud pubsub topics publish echo --message="Autoscaling #${i}"; done
Caso 1 Microservicio con Service Account Json
Declaramos la variable de entorno en su equipo , donde hace referencia a la ruta donde se encuentra el json de la service account
export GOOGLE_APPLICATION_CREDENTIALS=/Users/mauricioecheverria/Desktop/Demo2/credentials/credentials.jsonexport PROJECT_ID=devops-page
export PUBSUB_SUBSCRIPTION=echo-read
Ejecutamos el archivo main.py
Se debe definir el proyect id del proyecto GCP que este utilizando
python3 main.py
El logs del microservicio debería mostrar lo siguiente
Caso 2 Microservicio con Cuenta de usuario GCP
Primero asignamos el permiso de Pub/Sub Subscriber a la cuenta de usuario sobre la suscripción echo-read.
Configurar Proyecto GCP
gcloud config set core/project [PROJECT-ID]
Configurar la cuenta del usuario
gcloud auth application-default login
Al ejecutar el comando se abrira el navegador donde seleccionaremos la cuenta de usuario gcp , despues de seleccionar la cuenta en la terminal se configurara sus credenciales.
Ejecutamos el archivo main.py nuevamente.
Con esta configuración eliminamos la necesidad de utilizar archivos json de las cuentas de servicios.
Código fuente: https://github.com/mauricio-echeverria/Casos_Pruebas/tree/main/Caso-2-Microservicios-user-gcp