Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Configuration des variables d'étape pour REST APIs dans API Gateway

Mode de mise au point
Configuration des variables d'étape pour REST APIs dans API Gateway - Amazon API Gateway

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Cette section explique comment définir diverses variables d’étape pour deux étapes de déploiement d’un exemple d’API à l’aide de la console Amazon API Gateway. Pour comprendre comment utiliser les variables d’étape dans API Gateway, nous vous recommandons de suivre toutes les procédures décrites dans cette section.

Prérequis

Avant de commencer, vérifiez que vous respectez les conditions requises suivantes :

Invocation d’un point de terminaison HTTP via une API avec une variable d’étape

Cette procédure décrit comment créer une variable d’étape pour un point de terminaison HTTP et deux étapes pour votre API. En outre, vous devez créer les variables d’étape url, stageName et function qui sont utilisées dans les procédures suivantes de cette section.

Pour invoquer un point de terminaison HTTP via une API avec une variable d’étape
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Créez une API, puis créez une méthode GET sur la ressource racine de l’API. Définissez le type d’intégration sur HTTP et définissez URL du point de terminaison sur http://${stageVariables.url}.

  3. Déployez l’API vers une nouvelle étape nommée beta.

  4. Dans le volet de navigation principal, choisissez Étapes, puis sélectionnez l’étape bêta.

  5. Dans l’onglet Variables d’étape, choisissez Modifier.

  6. Choisissez Ajouter une variable d’étape.

  7. Pour Nom, saisissez url. Pour Valeur, entrez httpbin.org/get.

  8. Choisissez Ajouter une variable d’étape, puis procédez comme suit :

    Pour Nom, saisissez stageName. Pour Valeur, entrez beta.

  9. Choisissez Ajouter une variable d’étape, puis procédez comme suit :

    Pour Nom, saisissez function. Pour Valeur, entrez HelloWorld.

  10. Choisissez Save (Enregistrer).

  11. Créez maintenant une deuxième étape. Dans le volet de navigation Étapes, choisissez Créer une étape. Sous Stage name (Nom de l’étape), entrez prod. Sélectionnez un déploiement récent dans Déploiement, puis choisissez Créer une étape.

  12. Comme pour l’étape bêta, définissez les trois variables d’étape (url, stageName et function) sur des valeurs différentes (petstore-demo-endpoint.execute-api.com/petstore/pets, prod et HelloEveryone) respectivement.

  13. Dans le volet de navigation Stages, sélectionnez beta. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Cela lance la demande GET de l’étape beta sur la ressource racine de l’API.

    Note

    Le lien Invoke URL pointe sur la ressource racine de l’API à l’étape beta. L’entrée de l’URL dans un navigateur web appelle la méthode GET à l’étape bêta sur la ressource racine. Si les méthodes sont définies sur les ressources enfants et non sur la ressource racine elle-même, l’entrée de l’URL dans un navigateur web renvoie une réponse d’erreur {"message":"Missing Authentication Token"}. Dans ce cas, vous devez ajouter le nom d’une ressource enfant spécifique au lien Invoke URL.

  14. La réponse renvoyée par la demande GET à l’étape beta est présentée ci-dessous. Vous pouvez également vérifier le résultat en utilisant un navigateur pour accéder à l’adresse http://httpbin.org/get. Cette valeur a été affectée à la variable url à l’étape beta. Les deux réponses sont identiques.

  15. Dans le volet de navigation Stages, sélectionnez l’étape prod. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Cela lance la demande GET de l’étape prod sur la ressource racine de l’API.

  16. La réponse renvoyée par la demande GET à l’étape prod est présentée ci-dessous. Vous pouvez vérifier le résultat en utilisant un navigateur pour accéder à http ://petstore-demo-endpoint.execute-api. com/petstore/pets. Cette valeur a été affectée à la variable url à l’étape prod. Les deux réponses sont identiques.

Transmission de métadonnées spécifiques à l’étape à un backend HTTP

Cette procédure explique comment utiliser une valeur de variable d’étape dans une expression de paramètre de requête pour transmettre les métadonnées spécifiques à l’étape à un backend HTTP. Nous allons utiliser la variable d’étape stageName déclarée dans la procédure précédente.

Pour transmettre des métadonnées spécifiques à l’étape à un backend HTTP
  1. Dans le volet de navigation Resource, sélectionnez la méthode GET.

    Pour ajouter un paramètre de chaîne de requête à l’URL de la méthode, sélectionnez l’onglet Demande de méthode, puis dans la section Paramètres de la demande de méthode, choisissez Modifier.

  2. Choisissez Paramètres de chaîne de requête d’URL et procédez comme suit :

    1. Sélectionnez Add query string (Ajouter une chaîne de requêtes).

    2. Pour Nom, saisissez stageName.

    3. Gardez Obligatoire et Mise en cache désactivés.

  3. Choisissez Save (Enregistrer).

  4. Choisissez l’onglet Demande d’intégration, puis dans la section Paramètres de la demande d’intégration, sélectionnez Modifier.

  5. Pour URL du point de terminaison, ajoutez ?stageName=${stageVariables.stageName} à la valeur d’URL définie précédemment, de sorte que l’URL du point de terminaison soit http://${stageVariables.url}?stageName=${stageVariables.stageName}.

  6. Choisissez Déployer l’API et sélectionnez l’étape bêta.

  7. Dans le volet de navigation principal, choisissez Étapes. Dans le volet de navigation Stages, sélectionnez beta. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web.

    Note

    Nous utilisons ici l’étape beta, car le point de terminaison HTTP spécifié par la variable url, « http://httpbin.org/get », accepte les expressions de paramètre de requête et les renvoie en tant qu’objet args dans sa réponse.

  8. Vous recevez la réponse suivante. Notez que la valeur beta, affectée à la variable d’étape stageName, est transmise au backend en tant qu’argument stageName.

    Réponse de la méthode GET de l’API avec un point de terminaison HTTP utilisant la variable d’étape url.

Invocation d’une fonction Lambda via une API avec une variable d’étape

Cette procédure explique comment utiliser une variable d’étape pour appeler une fonction Lambda en tant que backend de votre API. Vous allez utiliser la variable d’étape function déclarée dans la section Invocation d’un point de terminaison HTTP via une API avec une variable d’étape.

Lorsque vous définissez une fonction Lambda en tant que valeur d’une variable d’étape, utilisez le nom local de la fonction, en incluant éventuellement son alias ou sa spécification de version, comme dans HelloWorld, HelloWorld:1 ou HelloWorld:alpha. N’utilisez pas l’ARN de la fonction (par exemple, arn:aws:lambda:us-east-1:123456789012:function:HelloWorld). La console API Gateway considère la valeur de la variable d’étape d’une fonction Lambda comme le nom de fonction non qualifié et développe la variable d’étape donnée en un ARN.

Pour invoquer une fonction Lambda via une API avec une variable d’étape
  1. Créez une fonction Lambda nommée HelloWorld à l’aide de l’exécution Node.js par défaut. Le code doit contenir ce qui suit :

    export const handler = function(event, context, callback) { if (event.stageName) callback(null, 'Hello, World! I\'m calling from the ' + event.stageName + ' stage.'); else callback(null, 'Hello, World! I\'m not sure where I\'m calling from...'); };

    Pour plus d’informations sur la création d’une Fonction Lambda, consultez Bien démarrer avec la console d’API REST.

  2. Dans le volet Ressources, sélectionnez Créer une ressource, puis procédez comme suit :

    1. Pour Chemin de ressources, sélectionnez /.

    2. Sous Resource Name (Nom de la ressource), entrez lambdav1.

    3. Choisissez Créer une ressource.

  3. Sélectionnez la ressource /lambdav1, puis choisissez Créer une méthode.

    Ensuite, procédez comme suit :

    1. Pour Type de méthode, sélectionnez GET.

    2. Pour Type d’intégration, sélectionnez Fonction Lambda.

    3. Maintenez Intégration proxy Lambda désactivée.

    4. Sous Lambda function (Fonction Lambda), saisissez ${stageVariables.function}.

      Création d’une méthode GET intégrée avec une fonction Lambda spécifiée par la variable d’étape function
      Astuce

      Lorsque vous y êtes invité avec la commande Ajouter une autorisation, copiez-la. Exécutez la commande sur chaque Fonction Lambda qui sera affectée à la variable d’étape function. Par exemple, si la valeur $stageVariables.function est HelloWorld, exécutez la commande AWS CLI suivante :

      aws lambda add-permission --function-name arn:aws:lambda:us-east-1:account-id:function:HelloWorld --source-arn arn:aws:execute-api:us-east-1:account-id:api-id/*/GET/lambdav1 --principal apigateway.amazonaws.com --statement-id statement-id-guid --action lambda:InvokeFunction

      Si vous ne le faites pas, l’appel de la méthode renverra une réponse 500 Internal Server Error. Remplacez ${stageVariables.function} par le nom de la Fonction Lambda qui est affectée à la variable d’étape.

      AWS CLI commande pour ajouter l'autorisation à la fonction Lambda à invoquer par la méthode que vous avez créée.
    5. Choisissez Créer une méthode.

  4. Déployez l’API dans les étapes prod et beta.

  5. Dans le volet de navigation principal, choisissez Étapes. Dans le volet de navigation Stages, sélectionnez beta. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis saisissez l’URL d’invocation de votre API dans un navigateur web. Ajoutez /lambdav1 à l’URL avant d’appuyer sur Entrée.

    Vous recevez la réponse suivante.

    "Hello, World! I'm not sure where I'm calling from..."

Transmission des métadonnées spécifiques à l’étape à une fonction Lambda via une variable d’étape

Cette procédure explique comment utiliser une variable d’étape pour transmettre les métadonnées de configuration spécifiques à l’étape à une fonction Lambda. Vous créez une méthode POST et un modèle de mappage d’entrée pour générer la charge utile à l’aide de la variable d’étape stageName déclarée précédemment.

Pour transmettre des métadonnées spécifiques à l’étape à une fonction Lambda via une variable d’étape
  1. Sélectionnez la ressource /lambdav1, puis choisissez Créer une méthode.

    Ensuite, procédez comme suit :

    1. Pour Type de méthode, sélectionnez POST.

    2. Pour Type d’intégration, sélectionnez Fonction Lambda.

    3. Maintenez Intégration proxy Lambda désactivée.

    4. Sous Lambda function (Fonction Lambda), saisissez ${stageVariables.function}.

    5. Lorsque vous y êtes invité avec la commande Ajouter une autorisation, copiez-la. Exécutez la commande sur chaque Fonction Lambda qui sera affectée à la variable d’étape function.

    6. Choisissez Créer une méthode.

  2. Choisissez l’onglet Demande d’intégration, puis dans la section Paramètres de la demande d’intégration, sélectionnez Modifier.

  3. Choisissez Modèles de mappage, puis choisissez Ajouter un modèle de mappage.

  4. Pour Type de contenu, entrez application/json.

  5. Pour Corps du modèle, entrez le modèle suivant :

    #set($inputRoot = $input.path('$')) { "stageName" : "$stageVariables.stageName" }
    Note

    Dans un modèle de mappage, une variable d’étape doit être référencée entre guillemets (comme dans "$stageVariables.stageName" ou "${stageVariables.stageName}"). Dans d’autres endroits, il doit être référencé sans guillemets (comme dans ${stageVariables.function}).

  6. Choisissez Save (Enregistrer).

  7. Déployez l’API dans les étapes beta et prod.

  8. Pour utiliser un client d’API REST afin de transmettre des métadonnées spécifiques à l’étape, procédez comme suit :

    1. Dans le volet de navigation Stages, sélectionnez beta. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis entrez l’URL d’invocation de votre API dans le champ d’entrée d’un client d’API REST. Ajoutez /lambdav1 avant de soumettre votre demande.

      Vous recevez la réponse suivante.

      "Hello, World! I'm calling from the beta stage."
    2. Dans le volet de navigation Étapes, choisissez prod. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API, puis entrez l’URL d’invocation de votre API dans le champ d’entrée d’un client d’API REST. Ajoutez /lambdav1 avant de soumettre votre demande.

      Vous recevez la réponse suivante.

      "Hello, World! I'm calling from the prod stage."
  9. Pour utiliser la fonctionnalité Test afin de transmettre des métadonnées spécifiques à l’étape, procédez comme suit :

    1. Dans le volet de navigation Ressources, choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

    2. Pour function, entrez HelloWorld.

    3. Pour stageName, entrez beta.

    4. Sélectionnez Tester). Vous n’avez pas besoin d’ajouter de corps à votre demande POST.

      Vous recevez la réponse suivante.

      "Hello, World! I'm calling from the beta stage."
    5. Vous pouvez répéter les étapes précédentes pour tester l’étape Prod. Pour stageName, entrez Prod.

      Vous recevez la réponse suivante.

      "Hello, World! I'm calling from the prod stage."
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.