Como faço para migrar as APIs REST do API Gateway entre contas ou regiões da AWS?

4 minuto de leitura
0

Quero migrar minha API REST do Amazon API Gateway entre contas ou regiões da AWS. Como eu faço isso?

Breve descrição

Exporte uma API REST do API Gateway para um arquivo de definição OpenAPI 2.0 (Swagger) ou OpenAPI 3.0. Em seguida, importe a API para o API Gateway em outra conta ou região.

Importante: para importar uma API REST, você também deve recriar todos os recursos integrados da API na conta ou região de destino.

Resolução

Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), certifique-se de estar usando a versão mais recente da AWS CLI.

Exportar a API usando o console do API Gateway ou a AWS CLI

Para exportar uma API usando o console do API Gateway

1.    No console do API Gateway, escolha sua API.

2.    Implante sua API em um estágio.

3.    No painel Editor de estágio, escolha a guia Exportar.

4.    Em Exportar como, escolha Swagger ou OpenAPI3.

5.    Com base no seu caso de uso, faça uma pausa em um dos seguintes:
Exportar como extensões do Swagger + API Gateway
Exportar como extensões do OpenAPI 3 + API Gateway

Sua definição de OpenAPI aparece no console.

6.    Escolha JSON ou YAML para baixar a definição do OpenAPI como seu tipo de arquivo preferido.

Para exportar uma API usando a AWS CLI

Execute o seguinte comando get-export:

Importante: altere os valores das opções de comando --parameters, --export-type e --accept para corresponder ao seu formato de exportação preferido.

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 obter mais informações, consulte Exportar uma API REST do API Gateway. Também, get-export (referência de comando da AWS CLI).

Atualizar os nomes do recurso da Amazon (ARN) dos recursos da API em sua definição exportada do OpenAPI

Altere os ARNs dos recursos da API em sua definição do OpenAPI para os ARNs de recursos na conta e na região para a qual a API está migrando.

Exemplo de trecho de um modelo do Swagger para uma API com integrações do AWS Lambda

Importante: para usar esse trecho, substitua arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations pelo ARN de uma função do Lambda na conta 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 a API para o API Gateway em outra conta ou região

Para importar uma API usando o console do API Gateway

1.    Abra o console do API Gateway na conta ou região de destino.

2.    Escolha Criar API.

3.    Em API REST, em Escolha um tipo de API, escolha Importar.

4.    Em Importar do Swagger ou Open API 3, faça o seguinte:
Escolha Selecionar arquivo Swagger e, em seguida, escolha seu arquivo de definição do OpenAPI atualizado . -ou-
Cole sua definição do OpenAPI atualizada no campo do editor de texto.

5.    Em Configurações, para Tipo de endpoint, escolha uma das seguintes opções com base no seu caso de uso:
Regional
Otimizado para Edge

Privado

6.    Escolha Falha nos avisos para interromper a importação se houver um erro ou aviso durante a importação. Ou escolha Ignorar avisos para importar a API, independentemente de haver ou não um erro ou aviso durante a importação.

Para importar uma API usando a AWS CLI

1.    Configure a AWS CLI para a conta ou região de destino.

2.    Execute o seguinte comando import-rest-api:

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

Para obter mais informações, consulte Importar uma API REST para o API Gateway.


Informações relacionadas

Tutorial: criar uma API REST importando um exemplo