

# Cambio del tipo de punto de conexión de una API pública o privada en API Gateway
<a name="apigateway-api-migration"></a>

Para cambiar el tipo de un punto de conexión de API, es preciso actualizar la configuración de la API. Puede cambiar un tipo de API existente a través de la consola de API Gateway, la AWS CLI o un AWS SDK para API Gateway. El tipo de punto de conexión no puede volver a cambiarse hasta que se complete el cambio actual, pero la API estará disponible. 

Se admiten los siguientes cambios de tipo de puntos de conexión:
+ De optimizado para bordes a regional o privado
+ De regional a optimizado para bordes o privado
+ De privado a regional

No puede transformar una API privada en una API optimizada para límites.

Si va a cambiar una API pública de optimizada para borde a regional o viceversa, tenga en cuenta que una API optimizada para borde puede comportarse de forma distinta a una API regional. Por ejemplo, una API optimizada para límites elimina el encabezado `Content-MD5`. Cualquier valor de hash MD5 transmitido al backend se puede expresar en un parámetro de cadena de solicitud o una propiedad del cuerpo. Sin embargo, la API regional transmite este encabezado, aunque puede reasignar el nombre de encabezado a otro nombre. Comprender estas diferencias le ayudará a decidir cómo actualizar una API optimizada para borde a una regional o cómo actualizar una API regional a una optimizada para borde. 

**Topics**
+ [Uso de la consola de API Gateway para cambiar el tipo de punto de conexión de la API](#migrate-api-using-console)
+ [Uso de la AWS CLI para cambiar el tipo de punto de conexión de una API](#migrate-api-using-aws-cli)

## Uso de la consola de API Gateway para cambiar el tipo de punto de conexión de la API
<a name="migrate-api-using-console"></a>

Para cambiar el tipo de punto de conexión de la API, siga uno de estos procedimientos:

**Para convertir un punto de conexión público de regional u optimizado para límites y viceversa**

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 una API de REST.

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Optimizado para límites** o **Regional**.

1. Seleccione **Save changes (Guardar cambios)**.

1. Vuelva a implementar la API para que los cambios surtan efecto.

**Conversión de un punto de conexión privado en un punto de conexión regional**

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 una API de REST.

1. Modifique la política de recursos de la API para eliminar cualquier mención a VPC o puntos de conexión de VPC, de modo que tanto las llamadas a la API que se realicen desde fuera de la VPC como las que se realicen desde dentro se ejecuten correctamente.

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Regional**.

1. Seleccione **Save changes (Guardar cambios)**.

1. Quite la política de recursos de la API.

1. Vuelva a implementar la API para que los cambios surtan efecto.

   Como está migrando el tipo de punto de conexión de privado a regional, API Gateway cambia el tipo de dirección IP a IPv4. Para obtener más información, consulte [Tipos de direcciones IP para API de REST en API Gateway](api-gateway-ip-address-type.md).

**Conversión de un punto de conexión regional en un punto de conexión privado**

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 una API de REST.

1. Cree una política de recursos que conceda acceso a la VPC o al punto de conexión de VPC. Para obtener más información, consulte [Paso 3: Configuración de una política de recursos para una API privada](apigateway-private-api-create.md#apigateway-private-api-set-up-resource-policy).

1. Elija **Configuración de la API**.

1. En la sección **Detalles de la API**, elija **Editar**.

1. En **Tipo de punto de conexión de la API**, seleccione **Privado**.

1. (Opcional) Para **ID del punto de conexión de VPC**, seleccione los ID de punto de conexión de VPC que desea asociar a la API privada. 

1. Seleccione **Save changes (Guardar cambios)**.

1. Vuelva a implementar la API para que los cambios surtan efecto.

   Como está migrando el tipo de punto de conexión de regional a privado, API Gateway cambia el tipo de dirección IP a pila doble. Para obtener más información, consulte [Tipos de direcciones IP para API de REST en API Gateway](api-gateway-ip-address-type.md).

## Uso de la AWS CLI para cambiar el tipo de punto de conexión de una API
<a name="migrate-api-using-aws-cli"></a>

El siguiente comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) permite actualizar una API optimizada para bordes a una API regional: 

```
aws apigateway update-rest-api \
    --rest-api-id a1b2c3 \
    --patch-operations op=replace,path=/endpointConfiguration/types/EDGE,value=REGIONAL
```

La respuesta correcta tiene un código de estado `200 OK` y una carga similar a la siguiente:

```
{
    "createdDate": "2017-10-16T04:09:31Z",
    "description": "Your first API with Amazon API Gateway. This is a sample API that integrates via HTTP with our demo Pet Store endpoints",
    "endpointConfiguration": {
        "types": "REGIONAL"
    },
    "id": "a1b2c3",
    "name": "PetStore imported as edge-optimized"
}
```

El siguiente comando [update-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-rest-api.html) permite actualizar una API regional a una API optimizada para bordes:

```
aws apigateway update-rest-api \
    --rest-api-id a1b2c3 \
    --patch-operations op=replace,path=/endpointConfiguration/types/REGIONAL,value=EDGE
```

Dado que [put-rest-api](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-rest-api.html) se utiliza para actualizar definiciones de API, no puede utilizarse para actualizar un tipo de punto de conexión de API.