Para configurar una caché de datos distribuida en la memoria para el servicio de Cloud Run, puedes usar Memorystore para Redis. Con Memorystore para Redis, usas un almacén de datos de Redis en memoria para almacenar la caché de la aplicación con escalamiento, seguridad y alta disponibilidad. Puedes conectarte a una instancia de Redis directamente desde tu servicio de Cloud Run, pero esto requiere pasos adicionales de configuración de un conector de acceso a VPC sin servidores.
Mediante las integraciones de Cloud Run (vista previa) que se describen en esta página, puedes conectar con rapidez el servicio de Cloud Run a una caché nueva de Redis con Memorystore sin tener que configurar un conector de Acceso a VPC sin servidores. Si deseas conectar tu servicio de Cloud Run a una instancia de Redis existente, consulta Conéctate a una instancia de Redis desde un servicio de Cloud Run.
Antes de comenzar
- Asegúrate de que el servicio de Cloud Run con el que te integras ya esté implementado.
- Revisa la página de precios de Memorystore. Se te facturan los recursos individuales usados en la integración.
Roles obligatorios
Para usar las integraciones de Cloud Run, tú o tu administrador deben otorgar roles de IAM en dos principales diferentes.
Haz clic para ver los roles necesarios para tu Cuenta de Google
Para obtener los permisos que necesitas para usar las integraciones de Cloud Run, pídele a tu administrador que otorgue a tu Cuenta de Google los siguientes roles de IAM en tu proyecto:
- Desarrollador de Cloud Run (
roles/run.developer
) - Visualizador de Compute (
roles/compute.viewer
) - Desarrollador de Serverless Integrations (
roles/runapps.developer
) - Operador de Serverless Integrations (
roles/runapps.operator
) - Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
)
Haz clic para ver los roles necesarios para la cuenta de servicio
Para implementar el servicio de Cloud Run, puedes usar la cuenta de servicio predeterminada de Compute Engine creada automáticamente o especificar una cuenta de servicio administrada por el usuario. Esta cuenta de servicio debe tener los siguientes roles:
- Desarrollador de Cloud Run (
roles/run.developer
) - Escritor de bucket de servicios (
roles/logging.bucketWriter
) - Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) - Administrador de almacenamiento (
roles/storage.admin
) - Administrador de Cloud Memorystore para Redis (
roles/redis.admin
) - Visualizador de Compute (
roles/compute.viewer
) - Administrador de Acceso a VPC sin servidores (
roles/vpcaccess.admin
)
Conecta un servicio a una nueva caché de Redis
Cualquier cambio en la configuración conlleva la creación de una revisión nueva. Las revisiones posteriores también adoptarán esta configuración de manera automática, a menos que realices actualizaciones explícitas para cambiarla.
Puedes conectar un servicio de Cloud Run a una caché de Redis a través de la consola o la línea de comandos. Si no especificas un tamaño de memoria, se usa una caché de 1 gigabyte.
Console
En la consola de Google Cloud, ve a la página Cloud Run.
Haz clic en el servicio de la lista de servicios que deseas usar en esta integración.
Haz clic en la pestaña Integraciones.
Haz clic en Agregar integración.
Haz clic en Redis: Google Cloud MemoryStore.
Acepta los valores predeterminados o cambia el nombre y el tamaño de la caché a los valores que deseas usar.
Si se te solicita que habilites una lista de APIs, haz clic en Habilitar y espera a que las API se habiliten.
En Recursos, observa los recursos nuevos que se crearán como resultado de esta integración.
Haz clic en Enviar y espera a que se creen la integración y los recursos. Esto puede tardar hasta 15 minutos.
gcloud
Actualiza a la versión más reciente de Google Cloud CLI:
gcloud components update
Crea la integración:
gcloud beta run integrations create \ --type=redis \ --service=SERVICE \ --parameters=memory-size-gb=MEMORY-SIZE
Reemplaza lo siguiente:
- SERVICE por el nombre de servicio de Cloud Run
- MEMORY-SIZE por el tamaño que deseas en gigabytes de caché. El valor predeterminado es 1 GB.
De manera opcional, puedes incluir la marca
--service-account=SERVICE_ACCOUNT_EMAIL
.Reemplaza SERVICE_ACCOUNT_EMAIL por la dirección de correo electrónico de la cuenta de servicio administrada por el usuario (
PROJECT_NUMBER-compute@developer.gserviceaccount.com
) que se usa para implementar el servicio. Omite esta marca si deseas usar la cuenta de servicio de procesamiento predeterminada (SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
).Para seguir usando la cuenta de servicio especificada cuando implementas integraciones de Cloud Run, ejecuta lo siguiente:
gcloud config set runapps/deployment-service-account
Espera hasta 15 minutos, durante los cuales se crea y se conecta una caché de Redis por completo configurada. Además, se crea una revisión nueva de Cloud Run, incluida la configuración de red y las variables de entorno necesarias para la caché de Redis. Cuando se completa el proceso, se muestra el siguiente mensaje:
[redis] integration [redis-xxx] has been updated successfully. To connect to the Redis instance, utilize the environment variables REDISHOST and REDISPORT. These have been added to the Cloud Run service for you.
Puedes verificar el estado con
gcloud beta run integrations describe
Actualiza las integraciones de caché de Redis
La actualización de una integración actualiza todos los recursos de Google Cloud asociados a esa integración. Para actualizar una integración de caché de Redis desde tu servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Cloud Run.
Haz clic en el servicio que deseas actualizar.
Haz clic en la pestaña Integraciones.
Ubica la integración de la caché de Redis y haz clic en Editar.
Cuando termines de actualizar los campos, haz clic en Actualizar.
gcloud
Usa el siguiente comando para obtener una lista de las integraciones disponibles:
gcloud beta run integrations list
Ejecuta el comando para actualizar la integración:
gcloud beta run integrations update INTEGRATION_NAME
Reemplaza lo siguiente:
- Reemplaza INTEGRATION_NAME por el nombre de tu integración de caché de Redis.
De manera opcional, puedes usar las siguientes opciones de marcas:
Opción Descripción --parameters
El tamaño de la memoria en gigabytes para la caché. --service-account
La dirección de correo electrónico de la cuenta de servicio administrada por el usuario que se debe especificar cuando se actualiza el servicio. Esta cuenta de servicio anula la cuenta de servicio anterior que se usó en la implementación.
Visualiza integraciones de caché de Redis
Para ver el estado actual de las integraciones de caché de Redis para el servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Cloud Run.
Haz clic en el servicio de la lista de servicios que deseas usar en esta integración.
Haz clic en la pestaña Integraciones.
Ubica la integración de Firebase Hosting que te interese y haz clic en Ver detalles.
gcloud
Usa el siguiente comando para obtener una lista de las integraciones disponibles:
gcloud beta run integrations list
Con un nombre de la lista que se muestra, muestra sus detalles:
gcloud beta run integrations describe INTEGRATION_NAME
Reemplaza INTEGRATION_NAME por el nombre de tu integración de caché de Redis.
Borra integraciones de caché de Redis
Si borras una integración, también se borrarán todos los recursos de Google Cloud asociados a esa integración, pero no se borrará tu servicio de Cloud Run.
Para borrar una integración de caché de Redis desde tu servicio de Cloud Run, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Cloud Run.
Haz clic en el servicio del que deseas borrar una integración.
Haz clic en la pestaña Integraciones.
Ubica la integración de Firebase Hosting que te interese y haz clic en el ícono de puntos suspensivos a la derecha de la integración. Luego, haz clic en Borrar.
gcloud
Usa el siguiente comando para obtener una lista de las integraciones disponibles:
gcloud beta run integrations list
Con un nombre de la lista que se muestra, borra la integración:
gcloud beta run integrations delete INTEGRATION_NAME
Reemplaza lo siguiente:
- Reemplaza INTEGRATION_NAME por el nombre de tu integración de caché de Redis.
De manera opcional, puedes usar las siguientes opciones de marcas:
Opción Descripción --service-account
La dirección de correo electrónico de la cuenta de servicio administrada por el usuario para realizar la operación de eliminación.
Accede a la caché de Redis en tu código
Ten en cuenta que, como resultado de completar la integración descrita en esta página, las variables de entorno REDISHOST
y REDISPORT
se agregan automáticamente y están disponibles para que las use tu código de servicio de Cloud Run.
Código de muestra para servicios que usan Redis
Consulta la documentación de Memorystore para ver las muestras de código completas de Cloud Run y Redis en varios lenguajes que usan Redis.
Limitaciones
- Las integraciones de Cloud Run solo se admiten en ciertas regiones. Si necesitas usar una región que no es compatible con las integraciones de Cloud Run, consulta Conéctate a una instancia de Redis desde un servicio de Cloud Run.
- Solo se admiten los conectores de VPC en la red de VPC predeterminada. No se admiten las redes heredadas.