Comment migrer des API REST API Gateway entre différents comptes ou différentes régions AWS ?

Dernière mise à jour : 17/12/2020

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

Brève description

Pour migrer votre API Amazon API Gateway entre des comptes AWS ou des régions, exportez une API REST depuis 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 REST, vous devez également recréer toutes les ressources d'API intégrées dans le compte ou la région de destination.

Résolution

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

Exportation de l'API

Utilisez la console API Gateway ou l'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 :
    Exporter en tant qu'extensions Swagger + API Gateway
    Exporter en tant qu'extensions OpenAPI 3 + API Gateway
  6. Votre définition OpenAPI apparaîtra dans la console. Ensuite, choisissez JSON ou YAML pour télécharger la définition OpenAPI en tant que type de fichier préféré.

Ou, dans AWS CLI, utilisez la commande get-export.

Exemple de commande get-export

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

Important : Assurez-vous de modifier les valeurs des options de commande —parameters, —export-typeet —accept pour qu'elles correspondent à votre format d'exportation préféré. Pour plus d'informations, consultez get-export (référence de commande depuis AWS CLI) et Exporter une API REST depuis API Gateway.

Modifier les 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 plus d'informations, consultez Importation d'une API REST dans API Gateway.


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


Besoin d'aide pour une question technique ou de facturation ?