

# Creación de una implementación de una API de REST en API Gateway
<a name="set-up-deployments"></a>

 En API Gateway, la implementación de una API de REST se representa mediante un recurso [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html). Es similar a un ejecutable de una API al cual representa un recurso [RestAPI](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html). 

Para que el cliente pueda llamar a la API, debe crear una implementación y asociarle una etapa. Las etapas se representan mediante recursos [Stage](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html). Representa una instantánea de la API que incluye métodos, integraciones, modelos, plantillas de mapeo y autorizadores de Lambda (anteriormente conocidos como autorizadores personalizados). Cuando actualiza la API, puede implementarla de nuevo asociando una nueva etapa a la implementación existente. Explicaremos cómo se crea un etapa en [Configuración de una etapa para una API de REST en API Gateway](set-up-stages.md).

**Topics**
+ [Creación de una implementación](#create-deployment)
+ [Próximos pasos para la implementación de la API](#apigateway-deployment-next-steps)

## Creación de una implementación
<a name="create-deployment"></a>

En los procedimientos siguientes se muestra cómo crear una implementación para una API de REST.

------
#### [ Consola de administración de AWS ]

 Debe haber creado una API de REST antes de implementarla por primera vez. Para obtener más información, consulte [Desarrollo de las API de REST en API Gateway](rest-api-develop.md). 

 La consola de API Gateway le permite implementar una API creando una implementación y asociándola a una etapa nueva o una existente. 

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 **APIs**, elija la API que desea implementar. 

1. En el panel **Resources (Recursos)**, elija **Deploy API (Implementar API)**.

1. En **Etapa**, seleccione una de las siguientes opciones:

   1. Para crear una nueva etapa, seleccione **Nueva etapa** y, a continuación, ingrese un nombre en **Nombre de la etapa**. Si lo desea, puede proporcionar una descripción de la implementación en **Descripción de la implementación**.

   1. Para elegir una etapa existente, seleccione el nombre de la etapa en el menú desplegable. Es posible que desee proporcionar una descripción de la nueva implementación en **Descripción de la implementación**.

   1. Para crear una implementación que no esté asociada a una etapa, seleccione **Sin etapa**. Más adelante, puede asociar esta implementación a una etapa.

1. Elija **Deploy (Implementar)**.

------
#### [ AWS CLI ]

Cuando se crea una implementación, se crea una instancia del recurso [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html).

El siguiente comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) permite crear una implementación:

```
 aws apigateway create-deployment --rest-api-id rest-api-id
```

No podrá invocar la API hasta haber asociado esta implementación a una etapa. Para hacerlo con una etapa existente, actualice la propiedad [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) de la etapa con el ID de la implementación que acaba de crear. El siguiente comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) actualiza la etapa con una nueva implementación. En la consola, esto se denomina **Implementación activa**.

```
 aws apigateway update-stage \
    --rest-api-id rest-api-id \ 
    --stage-name 'stage-name' \ 
    --patch-operations op='replace',path='/deploymentId',value='deployment-id'
```

Cuando crea la implementación, también puede asociarla a una nueva etapa al mismo tiempo. El siguiente comando [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) crea una nueva implementación y la asocia a una nueva etapa denominada `beta`:

```
 aws apigateway create-deployment \
    --rest-api-id rest-api-id \
    --stage-name beta
```

------

Para volver a implementar una API, realice los mismos pasos. Puede reutilizar la misma etapa.

## Próximos pasos para la implementación de la API
<a name="apigateway-deployment-next-steps"></a>

A continuación, se indican los pasos siguientes para la implementación de la API.

Modificación de la configuración de etapa  
Una vez que se implementa una API, puede modificar la configuración de las etapas para habilitar o deshabilitar el almacenamiento en caché, el registro o los límites de solicitudes de la API. También puede elegir un certificado de cliente para que el backend autentique a API Gateway y definir variables de etapa para pasar el contexto de implementación a la integración de la API en el tiempo de ejecución. Para obtener más información, consulte [Modificación de la configuración de etapa](set-up-stages.md#how-to-stage-settings)  
Después de modificar la configuración de la etapa, es necesario volver a implementar la API para que los cambios surtan efecto.  
 Si la configuración actualizada, como habilitar el registro, requiere un nuevo rol de IAM, puede agregar el rol de IAM necesario sin tener que volver a implementar la API. No obstante, el nuevo rol de IAM podría tardar unos minutos en empezar a funcionar. Antes de que esto ocurra, los registros de seguimiento de las llamadas a la API no se registran aunque haya habilitado la opción de registro. 

Elección de diferentes combinaciones de etapas de implementación  
 Como una implementación representa una snapshot de API y una etapa define una ruta en una snapshot, puede elegir diferentes combinaciones de etapas de implementación para controlar la forma en que los usuarios llaman a diferentes versiones de la API. Esto resulta útil, por ejemplo, cuando desea restaurar el estado de la API a una implementación anterior o combinar una "ramificación privada" de la API con una pública.   
 El siguiente procedimiento muestra cómo hacer esto con el **editor de etapas** en la consola de API Gateway. Se supone que debe haber implementado una API más de una vez.   

1. Si aún no está en el panel **Etapas**, en el panel de navegación principal, elija **Etapas**.

1. Seleccione la etapa que desea actualizar.

1. En la pestaña **Historial de implementación**, seleccione la implementación que desea que utilice la etapa. 

1. Elija **Cambiar implementación activa**.

1. Confirme que desea cambiar la implementación activa y elija **Cambiar implementación activa** en el cuadro de diálogo **Crear implementación activa**.

Transfiera los datos específicos de la implementación a su API.  
 Para una implementación, puede definir o modificar variables de etapa para pasar datos específicos de la implementación a la integración de la API en tiempo de ejecución. Puede hacer esto en la pestaña **Stage Variables (Variables de etapa)** en **Stage Editor (Editor de etapas)**. Para obtener más información, consulte las instrucciones de [Uso de variables de etapa para una API de REST en API Gateway](stage-variables.md).