¿Cómo puedo migrar las API de REST de API Gateway entre cuentas o regiones de AWS?

4 minutos de lectura
0

Quiero migrar mi API de REST de Amazon API Gateway entre cuentas o regiones de AWS. ¿Cómo lo hago?

Descripción breve

Exporte una API de REST de API Gateway a un archivo de definición de OpenAPI 2.0 (Swagger) u OpenAPI 3.0. A continuación, importe la API a API Gateway en otra cuenta o región.

**Importante:**Para importar una API de REST, también debe volver a crear cualquier recurso de API integrado en la cuenta o región de destino.

Resolución

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de AWS CLI.

Exporte la API mediante la consola de API Gateway o AWS CLI

Para exportar una API mediante la consola de API Gateway

1.    En la consola de API Gateway, seleccione su API.

2.    Despliegue su API en una etapa.

3.    En el panel Editor de etapas, seleccione la pestaña Exportar.

4.    Para Exportar como, elija Swagger u OpenAPI3.

5.    Según su caso de uso, haga una pausa en una de las siguientes opciones:
Exportar como extensiones de Swagger + API Gateway
Exportar como extensiones de OpenAPI 3 + API Gateway

La definición de OpenAPI aparece en la consola.

6.    Elija JSON o YAML para descargar la definición de OpenAPI como tipo de archivo preferido.

Para exportar una API mediante AWS CLI

Ejecute el siguiente comando get-export:

Importante: Cambie los valores de las opciones de comando --parameters, --export-type y --accept para que coincidan con el formato de exportación que prefiera.

aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger --accept application/yaml /path/to/filename.yaml

Para obtener más información, consulte Exportar una API de REST desde API Gateway. Además, get-export (referencia de comandos de AWS CLI).

Actualice los nombres de recursos de Amazon (ARN) de los recursos de API en su definición de OpenAPI exportada

Cambie los ARN de los recursos de la API en su definición de OpenAPI por los ARN de recursos de la cuenta y la región a la que se está migrando la API.

Fragmento de ejemplo de una plantilla de Swagger para una API con integraciones de AWS Lambda

Importante: Para usar este fragmento, sustituya arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations por el ARN de una función de Lambda de la cuenta de destino.

"x-amazon-apigateway-integration": {
          "uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations",
          "responses": {
            "default": {
              "statusCode": "200"
            }
          }

Importar la API a API Gateway en otra cuenta o región

Para importar una API mediante la consola de API Gateway

1.    Abra la consola de API Gateway en la cuenta o región de destino.

2.    Elija Crear API.

3.    En API de REST, en Elegir un tipo de API, seleccione Importar.

4.    En Importar de Swagger u Open API 3, lleve a cabo una de las siguientes acciones:
Elija Seleccionar archivo Swagger y, a continuación, elija su archivo de definición de OpenAPI actualizado.
-o-
Pegue la definición actualizada de OpenAPI en el campo del editor de texto.

5.    En Configuración, para Tipo de punto de conexión, elija una de las siguientes opciones según su caso de uso:
Regional
Periferia optimizada

Privado

6.    Seleccione Error en advertencias para detener la importación si se produce un error o una advertencia durante la importación. O bien, seleccione Ignorar advertencias para importar la API independientemente de si hay un error o una advertencia durante la importación o no.

Para importar una API mediante AWS CLI

1.    Configure la AWS CLI para la cuenta o región de destino.

2.    Ejecute el siguiente comando import-rest-api:

$ aws apigateway import-rest-api --endpointConfigurationTypes 'REGIONAL' --fail-on-warnings --body 'file:/// path/to/filename.json'

Para obtener más información, consulte Importar una API de REST a API Gateway.


Información relacionada

Tutorial: Crear una API de REST importando un ejemplo

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años