Tutorial: Desarrollo de una API de REST de API Gateway con integración de proxy de Lambda entre cuentas - Amazon API Gateway

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Desarrollo de una API de REST de API Gateway con integración de proxy de Lambda entre cuentas

Ahora puede usar una AWS Lambda función de otra AWS cuenta como backend de integración de API. Cada cuenta puede estar en cualquier región en la que Amazon API Gateway esté disponible. Esto permite administrar y compartir de forma centralizada funciones de backend de Lambda en varias API.

En esta sección mostramos cómo configurar una integración de proxy de Lambda entre cuentas con la consola de Amazon API Gateway.

Creación de una API de API Gateway para la integración de Lambda entre cuentas

Creación de una API
  1. Inicie sesión en la consola de API Gateway en https://console.aws.amazon.com/apigateway.

  2. Si es la primera vez que utiliza API Gateway, verá una página en la que aparecen las características del servicio. En REST API, elija Build (Compilación). Cuando aparezca el menú emergente Create Example API (Crear API de ejemplo), elija OK (Aceptar).

    Si esta no es la primera vez que utiliza API Gateway, elija Create API (Crear API). En REST API, elija Build (Compilación).

  3. En API name (Nombre de la API), escribaCrossAccountLambdaAPI.

  4. (Opcional) En Description (Descripción), introduzca una descripción.

  5. Mantenga Tipo de punto de conexión de la API establecido en Regional.

  6. Seleccione Crear API.

Creación de una función de integración de Lambda en otra cuenta

Ahora, creará una función de Lambda en una cuenta distinta de la que usó para crear la API de ejemplo.

Creación de una función de Lambda en otra cuenta
  1. Inicie sesión en la consola de Lambda de una cuenta distinta de la que utilizó para crear la API de API Gateway.

  2. Elija Create function (Crear función).

  3. Elija Author from scratch.

  4. En Author from scratch (Crear desde cero), haga lo siguiente:

    1. En Function name (Nombre de función), escriba un nombre.

    2. En la lista desplegable Runtime (Tiempo de ejecución), elija un tiempo de ejecución de Node.js compatible.

    3. En Permissions (Permisos), expanda Choose or create an execution role (Seleccionar o crear un rol de ejecución). Puede crear un rol o elegir uno existente.

    4. Elija Create function (Crear función) para continuar.

  5. Desplácese hacia abajo en el panel Function code (Código de la función).

  6. Introduzca la implementación de la función de Node.js desde Tutorial: Desarrollo de una API de REST Hello World con integración de proxy de Lambda.

  7. Elija Deploy (Implementar).

  8. Anote el ARN completo de la función (se encuentra en la esquina superior derecha del panel de la función de Lambda). Lo necesitará al crear la integración de Lambda entre cuentas.

Configuración de la integración de Lambda entre cuentas

Una vez que tenga una función de integración de Lambda en otra cuenta, puede utilizar la consola de API Gateway para agregarla a la API de la primera cuenta.

nota

Si está configurando un autorizador entre regiones y cuentas, el valor sourceArn que se agrega a la función de destino debe utilizar la región de la función, no la región de la API.

Después de crear una API, se crea un recurso. Normalmente, los recursos de la API están organizados en un árbol de recursos de acuerdo con la lógica de la aplicación. Para este ejemplo, creará un recurso /helloworld.

Para crear un recurso
  1. Seleccione el recurso / y, a continuación, elija Crear recurso.

  2. Mantenga Recurso proxy desactivado.

  3. Mantenga Ruta del recurso en /.

  4. En Nombre del recurso, escriba helloworld.

  5. Mantenga desactivado CORS (uso compartido de recursos entre orígenes).

  6. Elija Crear recurso.

Después de crear un recurso, se crea un método GET. El método GET se integra con una función de Lambda en otra cuenta.

Para crear un método GET
  1. Seleccione el recurso /helloworld y, a continuación, elija Crear método.

  2. En Tipo de método, seleccione GET.

  3. En Tipo de integración, seleccione Función de Lambda.

  4. Active Integración de proxy de Lambda.

  5. En Función de Lambda, introduzca el ARN completo de la función de Lambda del paso 1.

    En la consola de Lambda, puede encontrar el ARN de la función en la esquina superior derecha de la ventana de la consola.

  6. Al introducir el ARN, aparecerá una cadena de comandos aws lambda add-permission. Esto concederá a su primera cuenta acceso a la función de Lambda de la segunda cuenta. Copia y pega la cadena de aws lambda add-permission comandos en una AWS CLI ventana que esté configurada para tu segunda cuenta.

  7. Elija Crear método.

Para ver la política actualizada para la función en la consola de Lambda.

(Opcional) Para ver la política actualizada
  1. Inicie sesión AWS Management Console y abra la AWS Lambda consola en https://console.aws.amazon.com/lambda/.

  2. Elija su función de Lambda.

  3. Elija Permissions.

    Debería ver una política Allow con una cláusula Condition en la que AWS:SourceArn es el ARN del método GET de la API.