Comment migrer des API d'API Gateway entre des comptes ou des régions AWS ?

Date de la dernière mise à jour : 20/12/2019

Je souhaite migrer mon API Amazon API Gateway entre des comptes ou des régions AWS. Comment puis-je procéder ?

Brève description

Vous pouvez exporter une API REST à partir d'API Gateway vers un fichier de définition OpenAPI 2.0 (Swagger) ou OpenAPI 3.0. Ensuite, importez l'API dans l'API Gateway d'un autre compte ou d'une autre région.

Remarque : pour importer l'API, vous devez également recréer toutes les ressources d'API intégrées dans le compte ou la région de destination.

Solution

Exportation de l'API

Utilisez la console API Gateway ou l'interface de ligne de commande AWS (AWS CLI) afin d'exporter votre API.

  1. Dans la console API Gateway, choisissez votre API.
  2. Déployez votre API à une étape.
  3. Dans le volet Stage Editor (Éditeur d'étapes), choisissez l'onglet Exporter.
  4. Pour l'option Exporter en tant que, choisissez Swagger ou OpenAPI3.
  5. Selon votre choix à l'étape précédente, maintenez le curseur sur l'un des éléments suivants :
    Export as Swagger + API Gateway Extensions (Exporter en tant qu'extensions Swagger + API Gateway)
    Export as OpenAPI 3 + API Gateway Extensions (Exporter en tant qu'extensions OpenAPI 3 + API Gateway)
  6. Sélectionnez JSON ou YAML. Votre définition OpenAPI s'affiche dans la console, et le téléchargement d'un fichier de définition se lance automatiquement.

Ou, dans l'interface de ligne de commande AWS, utilisez la commande get-export. Par exemple :

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

Cette commande, dans l'exemple, renvoie un modèle JSON Swagger avec des extensions API Gateway pour une étape. Modifiez les valeurs des options des commandes --parameters et --export-type afin d'exporter selon vos propriétés et votre type préférés.

Pour davantage d'informations, consultez Exportation d'une API REST à partir d'API Gateway.

Modification des ARN de ressource dans votre définition OpenAPI

Mettez à jour les Amazon Resource Names (ARN) des ressources d'API dans votre définition OpenAPI exportée. Modifiez-les en ressources dans le compte et la région AWS vers lesquels vous souhaitez effectuer la migration. Par exemple, reportez-vous à l'extrait suivant d'un modèle Swagger pour une API avec des intégrations AWS Lambda :

"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"
            }
          }

Dans cet exemple, remplacez arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:12345678910:function:mylambda/invocations par l'ARN d'une fonction Lambda, dans le compte de destination.

Importation de l'API

Après avoir mis à jour les ARN de vos ressources d'API hors connexion, importez la définition OpenAPI dans l'API Gateway de votre autre compte ou région AWS.

  1. Ouvrez la console API Gateway dans le compte ou dans la région AWS de destination.
  2. Choisissez Create API (Créer une API).
  3. Pour l'option Choose an API type (Choisir un type d'API), sous REST API (API REST), choisissez Importer.
  4. Sous Import from Swagger or Open API 3 (Importer depuis Swagger ou Open API 3), effectuez l'une des actions suivantes :
    Choisissez Select Swagger File (Sélectionner un fichier Swagger), puis choisissez votre fichier de définition OpenAPI mis à jour.
    Collez votre définition OpenAPI mise à jour dans le champ de l'éditeur de texte.
  5. Sous l'onglet Paramètres, pour l'option Type de point de terminaison, choisissez Regional (Régional), Edge optimized (Optimisé par Edge) ou Private (Privé).
  6. Sélectionnez Fail on warnings (Échec en cas d'avertissement) afin de cesser l'importation en cas d'erreur ou d'avertissement lors de l'importation. Ou sélectionnez Ignore warnings (Ignorer les avertissements) afin de tout de même procéder à l'importation.

Vous pouvez également configurer l'interface de ligne de commande AWS pour le compte ou la région AWS de destination, puis utiliser la commande import-rest-api. Par exemple :

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

Pour davantage d'informations, consultez Importation d'une API REST dans API Gateway.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?