[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.

introduction

J'ai écrit une API REST à l'aide d'AWS API Gateway et de Lambda, alors prenez-en note. Est-il possible d'éviter de configurer un serveur avec EC2 en utilisant API Gateway et Lambda en combinaison?

procédure

  1. Création d'une fonction Lambda
  2. Création d'une API avec API Gateway
  3. Déployez l'API créée

Créer une fonction Lambda

À l'écran de Lambda

Tout d'abord, connectez-vous à AWS Management Console, puis sélectionnez AWS Lambda. Si vous n'avez jamais créé de fonction Lambda, sélectionnez le bouton Commencer maintenant. get-started.JPG

Créer une fonction Lambda

Appuyez sur le bouton Commencer maintenant pour voir un exemple de liste de fonctions Lambda. Cette fois, nous allons en créer un nouveau, alors sélectionnez le bouton "Ignorer" en bas à droite. skip.JPG

Si vous sélectionnez le bouton «Ignorer», l'écran de création d'une fonction Lambda apparaîtra, nous en décrirons donc les détails. configure.JPG

Nom de la fonction et saisie de la langue

Tout d'abord, spécifiez le nom et la langue de la fonction. Spécifiez "hello_world" pour le nom de la fonction et "Python 2.7" pour le langage. func_name.JPG

Entrez le code

Vient ensuite le code réel. Collez le code ci-dessous dans votre éditeur en ligne. Code simple qui renvoie simplement {'message': 'Hello World!'}.

import json


def lambda_handler(event, context):
    return {'message': 'Hello World!'}

Sélection de rôle

Ensuite, définissez le rôle. Vous pouvez utiliser un rôle existant, mais cette fois, nous en créerons un nouveau. Sélectionnez la liste déroulante Rôle et sélectionnez "Rôle d'exécution de base". select_role.jpg

Créer un rôle

Si vous sélectionnez "Rôle d'exécution de base", l'écran suivant s'ouvre. Ici, le rôle IAM est "Créer un nouveau rôle IAM" et le nom du rôle est "lambda_basic_execution". Lorsque vous avez terminé, sélectionnez le bouton Autoriser pour créer le rôle. create_role.JPG

confirmation finale

Cliquez sur le bouton "Autoriser" pour revenir à l'écran d'origine. Cette fois, nous ne définirons pas la mémoire ou le délai d'expiration, il suffit donc de sélectionner le bouton "Suivant".

Lorsque vous sélectionnez le bouton «Suivant», un écran de confirmation s'affiche. Sélectionnez le bouton Créer une fonction pour créer une fonction Lambda. review1.JPG

Testez la fonction Lambda que vous avez créée

Ceci termine la création de la fonction Lambda. Sélectionnez le bouton "Test" et vérifiez si le "Résultat d'exécution" est le suivant.

{
  "message": "Hello World!"
}

Créer une API avec API Gateway

À l'écran d'API Gateway

Après avoir créé la fonction Lambda, revenez à l'écran d'accueil de la console de gestion et sélectionnez API Gateway. Si vous n'avez jamais créé d'API, sélectionnez le bouton Commencer maintenant. get-started-api.JPG

Entrez le nom de l'API

L'écran de saisie du nom de l'API s'affiche. Saisissez "Hello API" pour le nom de l'API, puis sélectionnez le bouton "Créer une API". new-api.JPG

Créer une ressource

Créez ensuite la ressource. Sélectionnez le bouton "Créer une ressource". Entrez ensuite Hello pour le nom de la ressource et sélectionnez le bouton Créer une ressource. create_resource.JPG

Créer une méthode

Après avoir créé la ressource, attribuez une méthode à la ressource créée. Assurez-vous que le "/ hello" que vous avez créé est sélectionné, puis sélectionnez le bouton "Créer une méthode". Ensuite, une liste déroulante apparaîtra sous "/ bonjour", alors sélectionnez "GET". create_method.jpg

Après cela, si vous sélectionnez le bouton à cocher (☑) à droite du nom de la méthode, vous pourrez sélectionner Fonction Lambda ou Proxy HTTP comme Type d'intégration, alors sélectionnez Fonction Lambda. Pour la région Lambda, sélectionnez la région dans laquelle vous avez créé la fonction Lambda et, pour la fonction Lambda, entrez le nom de la fonction Lambda que vous avez créée précédemment, "hello_world". Après avoir tout réglé, sélectionnez le bouton "Enregistrer". save_api.JPG

Lorsque vous voyez «Ajouter une autorisation à la fonction Lambda», sélectionnez «OK». Ceci termine la création.

Tester l'API que vous avez créée

Essayez de tester l'API que vous avez créée en sélectionnant le bouton "Tester". Si vous regardez le corps de la réponse, vous devriez voir que la fonction Lambda est en cours d'exécution.

{
  "message": "Hello World!"
}

Déployer l'API

Sélectionnez le bouton "Déployer l'API" sur le côté gauche de l'écran. deploy_api.JPG

Lorsque vous sélectionnez le bouton «Déployer l'API», l'écran suivant apparaît. Entrez «Nouvelle étape» comme étape de déploiement et «bêta» comme nom de l'étape, puis sélectionnez le bouton «Déployer». deploy.JPG

L'URL d'appel s'affiche. url.JPG

Veuillez ajouter "/ hello" après la version bêta dans l'URL avant d'accéder. Si ce qui suit est affiché, cela réussit. Je vous remercie pour votre travail acharné.

{"message": "Hello World!"}

Recommended Posts

[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.
Version Amazon API Gateway et AWS Lambda Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
J'ai écrit une classe en Python3 et Java
LINE BOT avec Python + AWS Lambda + API Gateway
Une histoire sur l'écriture d'AWS Lambda et de devenir un peu accro aux valeurs par défaut des arguments Python
AWS CDK-Lambda + API Gateway (Python)
Essayez d'implémenter un robot Cisco Spark avec AWS Lambda + Amazon API Gateway (Python)
Prenez rapidement une chaîne de requête avec API Gateway-> Lambda (Python)
Récapitulatif si vous utilisez AWS Lambda (Python)
J'ai fait un Line-bot avec Python!
[AWS] Créer une API avec API Gateway + Lambda
J'ai écrit un script Python qui exporte tous mes articles à l'aide de l'API Qiita v2
J'ai écrit un script pour créer rapidement un environnement de développement pour Twitter Bot avec AWS Lambda + Python 2.7
J'ai arrêté une instance à un moment précis à l'aide d'AWS Lambda
J'ai essayé ChatOps avec Slack x API Gateway x Lambda (Python) x RDS
[AWS] Utilisation de fichiers ini avec Lambda [Python]
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
API REST facile avec API Gateway / Lambda / DynamoDB
[AWS] Créez un environnement Python Lambda avec CodeStar et faites Hello World
J'ai essayé de créer un LINE BOT "Sakurai-san" avec API Gateway + Lambda
Développement et déploiement de l'API REST en Python à l'aide de Falcon Web Framework
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
J'ai écrit FizzBuzz en python en utilisant la machine à vecteurs de support (bibliothèque LIVSVM).
Je souhaite créer une application Web en utilisant React et Python flask
J'ai écrit un bot Slack qui notifie les informations de retard avec AWS Lambda
J'ai essayé d'utiliser l'API Detect Labels d'AWS Rekognition
Exécutez régulièrement des programmes Python sur AWS Lambda
[AWS SAM] Créer une API avec DynamoDB + Lambda + API Gateway
J'ai essayé le web scraping en utilisant python et sélénium
Un mémo que j'ai écrit un tri rapide en Python
J'ai essayé la détection d'objets en utilisant Python et OpenCV
Créons une API REST en utilisant SpringBoot + MongoDB
J'ai essayé de lire un fichier CSV en utilisant Python
[AWS] Essayez de tracer API Gateway + Lambda avec X-Ray
Essayez d'utiliser l'API ChatWork et l'API Qiita en Python
Création du wrapper d'API Qiita Python "qiipy"
Créez une API REST à l'aide du modèle appris dans Lobe et TensorFlow Serving.
Une histoire de compilation croisée d'un package Python pour AWS Lambda et de son déploiement sans serveur
Développer, exécuter et déployer AWS Lambda à distance à l'aide de lambda-uploader
Pages HTML dynamiques créées avec AWS Lambda et Python
J'ai essayé de notifier la mise à jour de "Devenir romancier" en utilisant "IFTTT" et "Devenir un romancier API"
Essayez de créer un fichier compressé en utilisant Python et zlib
J'ai effectué un processus de connexion / déconnexion en utilisant Python's Bottle.
expression lambda de python ...
Obtenez des données LEAD à l'aide de l'API REST de Marketo en Python
Vérifiez types_map lors de l'utilisation de mimetypes avec AWS Lambda (Python)
Envoyez et recevez Gmail via l'API Gmail en utilisant Python
Enregistrez des tickets avec l'API de Redmine en utilisant des requêtes Python
Essayez d'exécuter Schedule pour démarrer et arrêter des instances dans AWS Lambda (Python)
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Implémentation d'un générateur en utilisant Python> link> yield et next ()> yield
J'ai essayé de faire LINE BOT avec Python et Heroku
J'ai essayé APN (notification à distance) à l'aide de l'API REST Parse.com
Créer une couche pour AWS Lambda Python dans Docker
Je veux AWS Lambda avec Python sur Mac!