Entrar Empieza gratis
Lambda

Cómo mover una función Lambda a otra región sin perder sus programaciones

Quieres que una función Lambda esté en otra región (más cerca de tus datos, por precio o por normativa) y te da miedo romper lo que la ejecuta cada noche. Qué viaja solo, qué no viaja nunca y en qué orden hacerlo para que la antigua siga funcionando hasta que compruebes la nueva.

⏱ 25 minutos ◎ Para todos Actualizada el 29/10/2026

En AWS una función Lambda no se mueve: se crea otra igual en la región nueva y, cuando compruebas que funciona, apagas o borras la antigua. Lo que asusta no es el código (es un zip que se descarga y se vuelve a subir), sino todo lo que hay alrededor: la programación que la lanza cada noche, la URL pública que usa tu web, la cola que la alimenta. Parte de eso es regional y no viaja. Esta guía te dice qué se lleva, qué no, y el orden seguro: primero la copia, después la prueba, y solo al final la antigua.

Antes de empezar: qué significa cada cosa

Región
El grupo de centros de datos donde vive la función (eu-west-1 es Irlanda, eu-west-3 es París, eu-south-2 es España). Casi todo en Lambda es regional: la función, sus registros, sus reglas.
Paquete zip
El fichero con el código de la función. Es lo que se copia. Las funciones hechas como imagen de contenedor se mueven de otra manera (hay que copiar la imagen a un registro ECR de la región nueva).
Rol de ejecución
El permiso con el que corre la función (qué puede tocar). IAM es global, así que el mismo rol sirve en cualquier región: no hay que crear otro.
Programación (EventBridge)
La regla "ejecútala cada 15 minutos" o "cada día a las 3:00". Es regional: hay que crearla de nuevo en la región destino, con la misma frecuencia.
URL pública
La dirección web de la función. Lleva la región dentro: en la región nueva la dirección cambia y hay que actualizar lo que la usaba.
Capa (layer)
Librerías compartidas que la función carga al arrancar. Las capas son regionales: una capa tuya hay que publicarla también en la región nueva.

Paso a paso

  1. Haz inventario de lo que rodea a la función

    Abre la función en la consola de Lambda y mira tres sitios. En Configuración → Desencadenadores: qué la ejecuta (EventBridge, S3, SNS, API Gateway, una cola SQS). En Configuración → URL de función: si tiene URL pública. En Código → Capas: si usa capas. Apunta también memoria, tiempo de espera, variables de entorno y el rol de ejecución (Configuración → Permisos). Con esa lista sabrás qué va a viajar solo y qué tendrás que rehacer.

  2. Decide qué se lleva y qué no

    Se lleva tal cual: el código, el lenguaje (runtime), el handler, la memoria, el tiempo máximo, la arquitectura, las variables de entorno, la descripción y el mismo rol de ejecución. Las capas públicas de AWS suelen existir en todas las regiones con el mismo nombre; las tuyas no.

    Las programaciones se recrean en destino con la misma expresión. Los eventos de EventBridge con patrón (por ejemplo "cuando se para una máquina") son reglas regionales sobre lo que pasa en esa región: no tiene sentido llevarlas, se crean nuevas si hace falta. Las colas y flujos (SQS, DynamoDB, Kinesis) siguen en su región y seguirán llamando a la función antigua. Los avisos de S3 solo llegan a funciones de la región del bucket. SNS admite suscripciones entre regiones, pero hay que suscribir la función nueva a mano. API Gateway hay que apuntarla a la función nueva. Y los registros y métricas se quedan donde estaban: la función nueva empieza con el historial vacío.

  3. Descarga el código y crea la función en la región nueva

    En la función antigua, Código → Acciones → Exportar función → Descargar paquete de implementación: te da el zip. Cambia de región arriba a la derecha, Crear función, mismo nombre, mismo runtime y arquitectura, y en Permisos → Cambiar el rol de ejecución predeterminado → Usar un rol existente, elige el rol de la antigua. Después Cargar desde → archivo .zip con el que descargaste. En Configuración general pon la misma memoria y tiempo de espera; en Variables de entorno, las mismas. Espera a que el estado deje de ser "Pendiente".

    Si usas la CLI, es un solo comando a partir del zip:

    aws lambda create-function --region eu-west-3 --function-name mi-funcion \
      --runtime python3.12 --handler lambda_function.lambda_handler \
      --role arn:aws:iam::123456789012:role/mi-rol --zip-file fileb://mi-funcion.zip \
      --memory-size 256 --timeout 60 --environment Variables={CLAVE=valor}
  4. Recrea las programaciones y la URL

    En la región nueva, abre EventBridge → Reglas → Crear regla con el mismo nombre y la misma expresión que tenía la antigua (cópiala de la regla original: rate(15 minutes), cron(0 3 * * ? *)). Destino: la función nueva. EventBridge añade solo el permiso para invocarla. Si la regla original estaba deshabilitada, deja la nueva también deshabilitada: la activarás cuando apagues la antigua.

    Si tenía URL pública, Configuración → URL de función → Crear URL de función, mismo tipo de autenticación. Apunta la dirección nueva: tendrás que cambiarla en la web o programa que la llamaba.

  5. Prueba la nueva con las dos encendidas

    Mientras compruebas, las dos funciones existen y las dos programaciones corren. Si la tarea no pasa nada por repetirse (un informe, una limpieza), déjalo así un día y compara los registros de CloudWatch de las dos. Si repetirse es un problema (envía correos, cobra, escribe en una base), crea la programación nueva deshabilitada, prueba la función nueva a mano con el botón Probar y un evento real, y en el paso siguiente haz el cambio de una vez.

  6. Apaga la antigua, no la borres todavía

    Primero deja la antigua sin poder ejecutarse: Configuración → Simultaneidad → Reservar simultaneidad → 0. Con eso AWS rechaza todas sus ejecuciones, pero el código y las reglas siguen ahí por si tienes que volver atrás en un minuto. Deshabilita también su regla de EventBridge para que no acumule fallos. Habilita la regla de la nueva. Cambia la URL en lo que la usaba y vuelve a suscribir SNS o API Gateway si los tenía.

  7. Borra la antigua cuando lleves una semana tranquilo

    Pasada una semana sin sustos, borra la regla de EventBridge antigua y después la función (Acciones → Eliminar). Los registros antiguos se quedan en CloudWatch Logs: ni se borran ni te hacen falta para la función nueva, pero conviene ponerles una retención (por ejemplo 90 días) para que no cuesten para siempre.

Qué puede salir mal

La función nueva se crea pero falla con "no autorizado" al ejecutarse

El rol de ejecución es el mismo, pero lo que la función toca (un bucket, una tabla, un secreto) está en la región antigua o su política lo limita por región. Revisa en el rol las condiciones aws:RequestedRegion y los ARN con región, y que lo que usa la función exista o sea accesible desde la región nueva.

Al crearla dice que la capa no existe

Las capas son regionales. Si es tuya, publícala en la región nueva (Lambda → Capas → Crear capa con el mismo zip) y añade la versión nueva a la función. Si es una capa pública de AWS, busca su ARN para esa región en la documentación de la capa: cambia la región y a veces el número de versión.

Se ejecuta dos veces cada noche

Tienes las dos programaciones habilitadas. Es lo esperado mientras pruebas; si ya no lo quieres, deshabilita la regla de la antigua (o pon su simultaneidad a 0).

La web que usaba la URL pública ha dejado de funcionar

La URL nueva es distinta (lleva la región). Cambia la dirección en la web. Si no puedes tocarla ya, deja la antigua encendida un poco más y haz el cambio con calma.

La cola SQS sigue llamando a la antigua

Las colas no cambian de región. Opciones: dejar la función antigua como "puente" que reenvía a la nueva, crear una cola nueva en la región destino y que quien escribe en la cola cambie de dirección, o aceptar que esa parte se quede donde está.

¿Y a otra cuenta de AWS?

Es el mismo proceso con una diferencia importante: el rol de ejecución vive en la cuenta, así que en la cuenta nueva la función no puede usar el de la antigua. Crea allí un rol para Lambda (o usa el que ya tengas) y, si la función toca S3, bases de datos o colas, dale esos permisos: la copia se crea bien pero fallará al ejecutarse hasta que el rol pueda hacer lo que hace el código. Las variables de entorno se copian tal cual: si guardan direcciones o claves de la cuenta antigua, cámbialas. Y las colas, buckets y APIs no cambian de cuenta: hay que recrearlos o conectarlos de nuevo.

En Simplio, "Mover a otra cuenta" pide una clave de acceso de la otra cuenta registrada en Claves de acceso, comprueba antes que tenga permisos para crear funciones, y crea la copia con el rol simplio-lambda-ejecucion de esa cuenta (el del script de la Ayuda), avisándote de que solo escribe registros y de que amplíes ese rol si la función necesita más.

En Simplio

En Simplio, en la tarjeta de la función hay un botón Mover de región…. Eliges la región, ves antes qué se lleva (código, ajustes, rol, programaciones) y qué no (colas, avisos de S3, registros), confirmas con el doble factor y la copia aparece con sus programaciones recreadas, en pausa si lo estaban. La original no se toca: en su tarjeta queda el aviso "Copiada a … el …; la original sigue activa" con los botones Pausar la original y Borrar la original, que solo borra si la copia existe y está activa. Si algo falla por el camino, Simplio deshace lo creado en destino y te lo cuenta en llano.

Lo mismo, en AWS y en Simplio

En la consola de AWSEn Simplio
Saber qué viaja y qué noRepasar a mano desencadenadores, URL, capas y rol en varias pantallasUna previa en la misma tarjeta: lo que se lleva, lo que se recrea y lo que hay que rehacer, antes de tocar nada
Crear la copiaDescargar el zip, crear la función, repetir memoria, tiempo, variables y rol; crear las reglas una a unaUn botón "Mover de región…": copia, espera a que esté activa, recrea las programaciones con la misma frecuencia y la URL si la tenía
Si algo falla a mediasQueda una función a medio crear y reglas sueltas que hay que limpiarSe deshace todo lo creado en destino y la original no se toca
Apagar y borrar la antiguaSimultaneidad a 0, deshabilitar reglas, borrar despuésDos botones en la tarjeta de la original: "Pausar la original" (reversible) y "Borrar la original", que solo actúa si la copia está activa

Probarlo gratis 15 días Ver cómo funciona

Todo esto, sin la consola de AWS

Simplio es un panel en español para manejar tus cuentas de AWS: máquinas, copias programadas, bases de datos, dominios, correo y lo que te cobra AWS, con permisos por persona y doble factor. Sin instalar nada en tus servidores.

Empieza gratis 15 días, sin tarjeta

¿Ya eres cliente? Acceso clientes.