

# Tutorial: Creación de una API de HTTP con una integración privada en un servicio de Amazon ECS
<a name="http-api-private-integration"></a>

En este tutorial, creará una API sin servidor que se conecta a un Servicio Amazon ECS que se ejecuta en una Amazon VPC Los clientes fuera de su VPC de Amazon pueden utilizar la API para acceder al Servicio Amazon ECS. 

Para completar este tutorial se necesita aproximadamente una hora. En primer lugar, utilice una plantilla de CloudFormation para crear una nube de Amazon VPC y un servicio Amazon ECS. Luego, utilice la consola de API Gateway para crear un enlace de VPC. El vínculo VPC permite a API Gateway acceder al Servicio Amazon ECS que se ejecuta en su Amazon VPC A continuación, cree una API HTTP que utilice el vínculo VPC para conectarse al Servicio Amazon ECS. Por último, se prueba la API.

Al invocar la API HTTP, API Gateway envía la solicitud al Servicio Amazon ECS a través del vínculo VPC y, a continuación, devuelve la respuesta del servicio.

![\[Información general de la API HTTP creada en este tutorial.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/private-integration.png)


Para completar este tutorial, necesita una cuenta de AWS y un usuario de AWS Identity and Access Management con acceso a la consola. Para obtener más información, consulte [Configuración para usar API Gateway](setting-up.md).

En este tutorial, se utiliza la Consola de administración de AWS. Para obtener una plantilla de CloudFormation que cree esta API y todos los recursos relacionados, consulte [template.yaml](samples/private-integration-full-template.zip).

**Topics**
+ [Paso 1: crear un Servicio Amazon ECS](#http-api-private-integration-create-ecs-service)
+ [Paso 2: crear un enlace de VPC](#http-api-private-integration-vpc-link)
+ [Paso 3: crear una API HTTP](#http-api-private-integration-create-api)
+ [Paso 4: creación de una ruta](#http-api-private-integration-create-routes)
+ [Paso 5: crear una integración](#http-api-private-integration-create-integration)
+ [Paso 6: probar la API](#http-api-private-integration-invoke-api)
+ [Paso 7: Limpieza](#http-api-private-integration-cleanup)
+ [Próximos pasos: automatice con CloudFormation](#http-api-private-integration-next-steps)

## Paso 1: crear un Servicio Amazon ECS
<a name="http-api-private-integration-create-ecs-service"></a>

Amazon ECS es un servicio de administración de contenedores que le facilita la tarea de ejecutar, detener y administrar contenedores de Docker en un clúster. En este tutorial, ejecute el clúster en una infraestructura sin servidor administrada por Amazon ECS.

Descargue y descomprima [esta plantilla de CloudFormation](samples/private-integration-cfn.zip) que crea todas las dependencias del servicio, incluida una nube de Amazon VPC. Utilice la plantilla para crear un Servicio Amazon ECS que utilice un Application Load Balancer.

**Para crear una pila de CloudFormation**

1. Abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Seleccione **Create stack (Crear pila)** y, a continuación, seleccione **With new resources (standard) (Con nuevos recursos [estándar])**.

1. En **Specify template (Especificar plantilla)**, elija **Upload a template file (Cargar un archivo de plantilla)**.

1. Seleccione la plantilla que ha descargado.

1. Elija **Next (Siguiente)**. 

1. En **Stack name (Nombre de pila)**, escriba **http-api-private-integrations-tutorial** y, a continuación, elija **Next (Siguiente)**.

1. En **Configure stack options (Configurar opciones de pila)**, elija **Next (Siguiente)**.

1. Para **Capabilities** (Capacidades), sepa que CloudFormation puede crear recursos de IAM en su cuenta.

1. Elija **Siguiente** y, a continuación, elija **Enviar**.

CloudFormation aprovisiona al Servicio ECS. Puede tardar unos minutos. Cuando el estado de la pila de CloudFormation sea **CREATE\$1COMPLETE**, estará listo para continuar con el paso siguiente.

## Paso 2: crear un enlace de VPC
<a name="http-api-private-integration-vpc-link"></a>

Un enlace de VPC permite a API Gateway acceder a recursos privados en una Amazon VPC Utilice un enlace de VPC para permitir a los clientes acceder al Servicio Amazon ECS a través de su API HTTP.

**Para crear un enlace de VPC**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. En el panel de navegación principal, elija **Enlaces de VPC** y, a continuación, elija **Crear**.

   Es posible que necesite elegir el icono del menú para abrir el panel de navegación principal.

1. En **Choose a VPC link version (Elegir una versión de enlace de VPC)**, seleccione **VPC link for HTTP APIs (Enlace de VPC para API HTTP)**.

1. En **Name (Nombre)** escriba **private-integrations-tutorial**.

1. En **VPC**, elija la VPC que ha creado en el paso 1. El nombre debe comenzar con **PrivateIntegrationsStack**.

1. En **Subnets (Subredes)**, seleccione las dos subredes privadas de la VPC. Los nombres terminan en `PrivateSubnet`.

1. Para **Grupos de seguridad**, seleccione el ID de grupo que comience por `private-integrations-tutorial` y tenga la descripción `PrivateIntegrationsStack/PrivateIntegrationsTutorialService/Service/SecurityGroup`.

1. Seleccione **Create (Crear)**.

Después de crear el vínculo VPC, API Gateway aprovisiona las interfaces de red elásticas para acceder a la VPC. El proceso puede demorar unos minutos. Mientras tanto, puede crear su API.

## Paso 3: crear una API HTTP
<a name="http-api-private-integration-create-api"></a>

La API HTTP proporciona un punto de enlace HTTP para su Servicio Amazon ECS. En este paso, se crea una API vacía. En los pasos 4 y 5, va a configurar una ruta y una integración para conectar la API y el Servicio Amazon ECS.



**Para crear una API HTTP**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Seleccione **Crear API**y, a continuación, para **API HTTP**, seleccione **Crear**.

1. En **API name (Nombre de la API)**, escriba**http-private-integrations-tutorial**.

1. En **Tipo de dirección IP**, seleccione **IPv4**.

1. Elija **Next (Siguiente)**.

1. En **Configurar rutas**, seleccione **Siguiente** para omitir la creación de rutas. Se crearán rutas más adelante.

1. Revise la etapa que API Gateway le crea. API Gateway crea una etapa `$default` con implementaciones automáticas habilitadas, que es la mejor opción para este tutorial. Elija **Next (Siguiente)**.

1. Seleccione **Create (Crear)**.

## Paso 4: creación de una ruta
<a name="http-api-private-integration-create-routes"></a>

Las rutas son una manera de enviar solicitudes entrantes de API a los recursos de backend. Las rutas constan de dos partes: un método HTTP y una ruta de recurso, por ejempl, `GET /items`. Para este ejemplo de API, creamos una ruta.

**Para crear una ruta**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija la API.

1. Elija **Routes (Rutas)**.

1. Seleccione **Create (Crear)**.

1. En **Method (Método)**, seleccione **ANY**.

1. En la ruta de acceso, introduzca **/\$1proxy\$1\$1**. El `{proxy+}` al final de la ruta es una variable de ruta voraz. API Gateway envía todas las solicitudes a su API por esta ruta.

1. Seleccione **Create (Crear)**.

## Paso 5: crear una integración
<a name="http-api-private-integration-create-integration"></a>

Se crea una integración para conectar una ruta a los recursos de backend.

**Para crear una integración**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija la API.

1. Seleccione **Integraciones**.

1. Seleccione **Administrar integraciones** y, a continuación, seleccione **Crear**.

1. En **Atach this intergration to a route (Adjuntar esta integración a una ruta)**, seleccione la ruta **ANY/\$1proxy\$1\$1** que creó anteriormente.

1. En **Integration type (Tipo de integración)**, elija **Private resource (Recurso privado)**.

1. En **Integration details (Detalles de integración)**, elija **Select manually (Seleccionar manualmente)**.

1. En **Target service (Servicio de destino)**, seleccione **ALB/NLB**.

1. En **Load balancer** (Equilibrador de carga), elija el equilibrador de carga que creó con la plantilla de CloudFormation en el paso 1. El nombre debería comenzar con **http-Priva**.

1. En **Listener (Agente de escucha)**, elija **HTTP 80**.

1. Para **VPC link (Enlace de VPC)**, elija el enlace de VPC que creó en el paso 2. El nombre debería ser `private-integrations-tutorial`.

1. Seleccione **Create (Crear)**.

Para comprobar que la ruta y la integración están configuradas correctamente, seleccione **Attach integrations to routes (Adjuntar las integraciones a las rutas)**. La consola muestra que tiene una ruta `ANY /{proxy+}` con una integración a un balanceador de carga de VPC.

![\[La consola muestra que tiene una ruta /{proxy+} con una integración a un balanceador de carga en una VPC.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/private-integration-tutorial-route.png)


Ya está listo para probar su API.

## Paso 6: probar la API
<a name="http-api-private-integration-invoke-api"></a>

A continuación, pruebe su API para asegurarse de que se encuentra en funcionamiento. Para mayor simplicidad, utilice un navegador web para invocar la API.

**Para probar la API**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija la API.

1. Tenga en cuenta la URL de invocación de la API.  
![\[Después de crear la API, la consola muestra la URL de invocación de la API.\]](http://docs.aws.amazon.com/es_es/apigateway/latest/developerguide/images/getting-started-invoke-url.png)

1. En un navegador web, vaya a la URL que invoca a su API.

   La URL completa debería ser `https://abcdef123.execute-api.us-east-2.amazonaws.com`.

   Su navegador envía una `GET` solicitud a la API.

1. Compruebe que la respuesta de la API sea un mensaje de bienvenida que le indique que su aplicación se está ejecutando en Amazon ECS.

   Si ve el mensaje de bienvenida, ha creado correctamente un Servicio Amazon ECS que se ejecuta en la VPC de Amazon y ha utilizado una API HTTP de API Gateway con un vínculo VPC para acceder al servicio Amazon ECS.

## Paso 7: Limpieza
<a name="http-api-private-integration-cleanup"></a>

Para evitar costos innecesarios, elimine los recursos creados como parte de este tutorial Los pasos siguientes eliminan el enlace de la VPC, la pila de CloudFormation y la API HTTP.

**Para eliminar una API HTTP**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. En la página **API**, seleccione una API. Elija **Action (Acciones)**, elija **Delete (Eliminar)**y, a continuación, confirme su elección.

**Para eliminar un enlace de VPC**

1. Inicie sesión en la consola de API Gateway en [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway).

1. Elija **VPC link (Enlace de VPC)**.

1. Seleccione el enlace de VPC, elija **Delete (Eliminar)**y, a continuación, confirme su elección.

**Para eliminar una pila de CloudFormation**

1. Abra la consola de CloudFormation en [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Seleccione su pila de CloudFormation.

1. Elija **Delete (Eliminar)** y, a continuación, confirme su elección.

## Próximos pasos: automatice con CloudFormation
<a name="http-api-private-integration-next-steps"></a>

Puede automatizar la creación y la limpieza de todos los recursos de AWS involucrados en este tutorial. Para obtener una plantilla de CloudFormation de ejemplo completa, consulte [template.yaml](samples/private-integration-full-template.zip).