Je souhaite migrer mon API REST Amazon API Gateway entre des comptes ou des régions AWS. Comment puis-je procéder ?
Brève description
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 API Gateway d'un autre compte ou d'une autre région.
Remarque : pour importer une API REST, vous devez également recréer toutes les ressources d'API intégrées dans le compte ou la région de destination.
Solution
Remarque : si vous recevez des messages d'erreurs lors de l'exécution de commandes AWS Command Line Interface (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.
Exportez l'API à l'aide de la console API Gateway ou de l'AWS CLI
Pour exporter une API à l'aide de la console API Gateway
1. Dans la console API Gateway, choisissez votre API.
2. Déployez votre API dans une étape.
3. Dans le volet Stage Editor (Éditeur d'étapes), choisissez l'onglet Export (Exporter).
4. Pour l'option Export as (Exporter en tant que), choisissez Swagger ou OpenAPI3.
5. En fonction de votre cas d'utilisation, mettez en pause 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)
Votre définition OpenAPI apparaît dans la console.
6. Ensuite, choisissez JSON ou YAML pour télécharger la définition OpenAPI en tant que type de fichier préféré.
Pour exporter une API à l'aide de l'AWS CLI
Exécutez la commande get-export suivante :
Important : veillez à modifier les valeurs des options de commande **—parameters, **—export-type****et —accept pour qu'elles correspondent au format d'exportation de votre choix.
aws apigateway get-export --parameters extensions='integrations' --rest-api-id a1b2c3d4e5 --stage-name dev --export-type swagger --accept application/yaml /path/to/filename.yaml
Pour plus d'informations, consultez Exportation d'une API REST à partir d'API Gateway. Également, get-export (référence de commande AWS CLI).
Mettez à jour les Amazon Resource Names (ARN) des ressources d'API dans votre définition OpenAPI exportée.
Remplacez les ARN des ressources API dans votre définition OpenAPI par les ARN de ressources dans le compte et de la région vers laquelle l'API migre.
Exemple d'extrait de code d'un modèle Swagger pour une API avec des intégrations AWS Lambda
Important : pour utiliser cet extrait de code, 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.
"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"
}
}
Importer l'API vers API Gateway d'un autre compte ou d'une autre région
Pour importer une API à l'aide de la console API Gateway
1. Ouvrez la console API Gateway dans le compte ou dans la région de destination.
2. Sélectionnez Create API (Créer une API).
3. Sous API REST pour Choose an API type (Choisir un type d'API), choisissez Import (Import).
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 votre fichier de définition OpenAPI mis à jour.
-ou-
Collez votre définition OpenAPI mise à jour dans le champ de l'éditeur de texte.
5. Sous Settings (Paramètres), pour Endpoint Type (Type de point de terminaison), choisissez l'une des options suivantes en fonction de votre cas d'utilisation :
Regional
Edge optimized (Périphérie régionale optimisée)
Private (Privé)
6. Choisissez Fail on warnings (Échec en cas d'avertissement) afin d'arrêter l'importation en cas d'erreur ou d'avertissement lors de l'importation. Vous pouvez également choisir Ignore warnings (Ignorer les avertissements) pour importer l'API, qu'il existe ou non une erreur ou un avertissement lors de l'importation.
Pour importer une API à l'aide de l'AWS CLI
1. Configurez l'AWS CLI pour le compte ou la région de destination.
2. Exécutez la commande import-rest-api suivante :
$ 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.
Informations connexes
Didacticiel : Création d'une API REST en important un exemple