Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Tu backend de Firebase App Hosting puede conectarse a una red de nube privada virtual (VPC). Esto permite que tu backend de Firebase App Hosting acceda a servicios de backend a los que no se puede acceder con direcciones IP públicas, como Cloud SQL, Spanner, Cloud Memorystore, Compute Engine o microservicios internos de Kubernetes.
El acceso a la VPC solo está disponible en el tiempo de ejecución (desde tu contenedor Cloud Run), no en el tiempo de compilación (Cloud Build).
Elige cómo conectarte a una red de VPC
Salida de VPC directa: Más simple, rápida y económica. Usa una dirección IP por contenedor.
Se recomienda para la mayoría de los casos de uso.
Conectores sin servidores: Agrupan direcciones IP para aplicaciones más grandes. Requiere el pago de la VM subyacente. Consulta "Acceso a VPC sin servidores" en la página de precios de VPC para obtener detalles sobre los precios.
Configurar en apphosting.yaml
Usa la asignación vpcAccess en tu archivo apphosting.yaml para configurar el acceso.
Usa un nombre o un ID de conector o red completamente calificado. El uso de IDs permite la portabilidad entre entornos de etapa de pruebas y producción con diferentes conectores o redes.
Configuración de salida de VPC directa (apphosting.yaml):
runConfig:vpcAccess:egress:PRIVATE_RANGES_ONLY# Default valuenetworkInterfaces:# Specify at least one of network and/or subnetwork-network:my-network-idsubnetwork:my-subnetwork-id
Configuración del conector sin servidores (apphosting.yaml):
Ejemplo: Conéctate a Memorystore para Redis desde una app de Next.js
Los sistemas de almacenamiento en caché, como Redis o Memcached, se usan comúnmente para compilar una capa de almacenamiento en caché de datos rápida para una app. En este ejemplo, se muestra cómo configurar Memorystore para Redis en el mismo proyecto de Google Cloud que tu backend de Firebase App Hosting y cómo conectarte a él con la salida directa de VPC.
Paso 0: Crea una instancia de Memorystore para Redis
Asegúrate de que esté seleccionado el mismo proyecto que usas para Firebase App Hosting.
Si no puedes acceder a esta página, asegúrate de que la facturación esté habilitada para tu proyecto y de que hayas habilitado la API de Memorystore.
Selecciona Crear instancia.
Configura la nueva instancia con los parámetros que prefieras. Estos son algunos valores de ejemplo que puedes usar:
Ingresa my-redis-cache en ID de instancia.
Ingresa Redis cache en Nombre visible.
Elige Básico en el selector de nivel. En el nivel Básico, se designa un nodo independiente de Redis, en lugar del nivel Estándar, que usa un nodo de réplica para crear una copia de seguridad de tus datos.
Elige la región de tu backend de App Hosting en el selector de Región.
Asegúrate de establecer este valor para que coincida con la región de tu backend.
Elige cualquier zona en el selector.
Ingresa 5 en Capacidad. Esto establece tu capacidad de instancia en 5 GB.
Selecciona 5.0 en Versión (recomendado).
Elige default en el selector Red autorizada.
Paso 1: Actualiza apphosting.yaml con el ID de tu red de VPC
Paso 2: Agrega variables de entorno que dirijan tu app a Redis
Encuentra la información de conexión (host y puerto) en la pestaña "Conexiones" de tu instancia de Memorystore para Redis en la consola de Google Cloud.
Conéctate a Redis con las variables de entorno REDISPORT y REDISHOST. Configura estos valores en apphosting.yaml con los valores de host y puerto de la consola de Google Cloud:
env:# Sample only. Use actual values provided by Memorystore-variable:REDISPORTvalue:6379-variable:REDISHOSTvalue:10.127.16.3
Accede a tu caché de Redis desde tu código. Usa las variables de entorno configuradas en el paso anterior. Por ejemplo, así puedes leer desde una caché en un controlador de rutas de Next.js:
src/lib/redis.js
import{createClient}from"redis";// Set these environment variables in apphosting.yamlconstREDISHOST=process.env.REDISHOST;constREDISPORT=process.env.REDISPORT;letredisClient;exportasyncfunctiongetClient(req,res){// Only connect if a connection isn't already availableif(!redisClient){redisClient=awaitcreateClient(REDISPORT,REDISHOST).on("error",(err)=>console.error("Redis Client Error",err)).connect();}returnredisClient;}
Paso 4 (opcional): Configura tu app para el desarrollo local
El emulador de Firebase App Hosting puede anular valores con apphosting.emulator.yaml. Aquí, puedes cambiar el valor de REDISHOST para que apunte a localhost y, así, puedas desarrollar de forma local con una instalación local de Redis.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-31 (UTC)"],[],[],null,["\u003cbr /\u003e\n\nYour Firebase App Hosting backend can connect to a [Virtual Private Cloud\n(VPC)](https://cloud.google.com/vpc/docs) network. This allows your\nFirebase App Hosting backend to access backend services not accessible using\npublic IP addresses, such as Cloud SQL, Spanner, Cloud Memorystore,\nCompute Engine, or Kubernetes internal microservices.\n\nVPC access is only available at runtime (from your Cloud Run\ncontainer), not at build time (Cloud Build).\n\nChoose how to connect to a VPC network\n\n- [Direct VPC\n Egress](https://cloud.google.com/run/docs/configuring/vpc-direct-vpc): Simpler, faster, and less expensive. Uses one IP address per container. Recommended for most use cases.\n- [Serverless\n Connectors](https://cloud.google.com/vpc/docs/serverless-vpc-access): Pools IP addresses for larger applications. Requires payment for the underlying VM. See \"Serverless VPC Access\" in the [VPC pricing page](https://cloud.google.com/vpc/network-pricing) for pricing details.\n\nConfigure in `apphosting.yaml`\n\nUse the `vpcAccess` mapping in your `apphosting.yaml` file to configure access.\nUse either a fully qualified network/connector name or an ID. Using IDs allows\nfor portability between staging and production environments with different\nconnectors/networks.\n\nDirect VPC Egress Configuration (`apphosting.yaml`): \n\n runConfig:\n vpcAccess:\n egress: PRIVATE_RANGES_ONLY # Default value\n networkInterfaces:\n # Specify at least one of network and/or subnetwork\n - network: my-network-id\n subnetwork: my-subnetwork-id\n\nServerless Connector Configuration (`apphosting.yaml`): \n\n runConfig:\n vpcAccess:\n egress: ALL_TRAFFIC\n connector: connector-id\n\nExample: connect to Memorystore for Redis from a Next.js app\n\nCaching systems like Redis or Memcached are commonly used to build a fast data\ncaching layer for an app. This example shows you how to set up\n[Memorystore for Redis](https://cloud.google.com/memorystore/docs/redis/memorystore-for-redis-overview)\nin the same Google Cloud project as your Firebase App Hosting backend and\nconnect to it using\n[Direct VPC egress](https://cloud.google.com/run/docs/configuring/vpc-direct-vpc).\n\nStep 0: Create a Memorystore for Redis instance **Note:** you may also be prompted to create a [service connection policy](https://cloud.google.com/vpc/docs/about-service-connection-policies) as part of this setup.\n\n1. Go to the [*Memorystore for Redis* page](https://console.cloud.google.com/memorystore/redis/instances) in the Google Cloud console.\n - Make sure the same project you're using for Firebase App Hosting is selected.\n - If you can't access this page, make sure billing is enabled for your project and that you've enabled the [Memorystore API](https://console.cloud.google.com/apis/dashboard).\n2. Select **Create Instance**.\n3. Configure the new instance with your preferred settings. Here are some example values you can use:\n - Enter `my-redis-cache` under **Instance ID**.\n - Enter `Redis cache` under **Display name**.\n - Choose **Basic** under the tier selector. Basic tier designates a standalone Redis node, as opposed to standard tier, which uses a replica node to backup your data.\n - Choose your App Hosting backend's region from the **Region** selector. **Be sure to set this value to match the region of your backend.**\n - Choose **any** from the zone selector.\n - Enter `5` under **Capacity**. This sets your instance capacity to 5 GB.\n - Select `5.0` under **Version** (recommended).\n - Choose **default** from the **Authorized network** selector.\n\nStep 1: Update `apphosting.yaml` with your VPC network ID\n\n1. Visit the [VPC networks page](/docs/app-hosting/console.cloud.google.com/networking/networks/list) in the Google Cloud console.\n2. Find the VPC network ID for your Memorystore for Redis instance (it will often be `default`).\n3. Set direct VPC egress configuration in `apphosting.yaml` using the VPC\n network ID:\n\n runConfig:\n vpcAccess:\n egress: PRIVATE_RANGES_ONLY # Default value\n networkInterfaces:\n - network: my-network-id\n\nStep 2: Add environment variables that direct your app to Redis\n\n1. Find connection information (host and port) in the \"Connections\" tab of your Memorystore for Redis instance in the Google Cloud console.\n2. Connect to Redis with `REDISPORT` and `REDISHOST` environment variables. Set\n these in `apphosting.yaml` using the host and port values from the\n Google Cloud console:\n\n env:\n # Sample only. Use actual values provided by Memorystore\n - variable: REDISPORT\n value: 6379\n - variable: REDISHOST\n value: 10.127.16.3\n\nStep 3: Use redis from your app\n\n1. Install the [redis](https://www.npmjs.com/package/redis) npm package:\n\n `npm install redis@latest`\n2. Access your redis cache from your code. Use the environment variables\n configured in the previous step. For example, here's how you might read from\n a cache in a Next.js route handler:\n\n - `src/lib/redis.js`\n\n import { createClient } from \"redis\";\n\n // Set these environment variables in apphosting.yaml\n const REDISHOST = process.env.REDISHOST;\n const REDISPORT = process.env.REDISPORT;\n\n let redisClient;\n\n export async function getClient(req, res) {\n // Only connect if a connection isn't already available\n if (!redisClient) {\n redisClient = await createClient(REDISPORT, REDISHOST)\n .on(\"error\", (err) =\u003e console.error(\"Redis Client Error\", err))\n .connect();\n }\n\n return redisClient;\n }\n\n - `src/app/counter/route.js`\n\n import { getClient } from \"@/lib/redis.js\";\n\n export async function GET(request) {\n const redisClient = await getClient();\n const count = await redisClient.get(\"counter\");\n\n return Response.json({ count });\n }\n\n export async function POST(request) {\n const redisClient = await getClient();\n const count = await redisClient.incr(\"counter\");\n\n return Response.json({ count });\n }\n\nStep 4 (optional): Configure your app for local development\n\nThe Firebase App Hosting emulator can override values using\n`apphosting.emulator.yaml`. Here, you can change the value of `REDISHOST` to\npoint to the localhost so that you can develop locally using a local\ninstallation of Redis.\n\n1. [Install Redis on your local machine](https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/)\n2. Create or edit `apphosting.emulators.yaml` to reference your local instance:\n\n env:\n - variable: REDISHOST\n value: 127.0.0.1"]]