Levantar microservicios sin tener que generar archivo json de service account.

Mauricio Echeverria
GDG Cloud Santiago
Published in
3 min readJan 22, 2022

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

--

--