[PYTHON] Je viens de faire FizzBuzz avec AWS Lambda

Backgroud J'ai eu plus d'occasions d'entendre parler des applications sans serveur utilisant AWS Lambda, alors j'ai essayé de le créer.

Preparetion

Développement (lambda uniquement)

import json

def lambda_handler(event, context):
    
    request = "[inner_test]"
    num = 30

    doc = {
        "message":'Hello from Lambda!',
        "request":process(num)
    }
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps(doc)
    }


def process(src):
    
    if src % 15 == 0:
        return "FizzBuzz"
    elif src % 5 == 0:
        return "Buzz"
    elif src % 3 == 0:
        return "Fizz"
    else :
        return src

Après avoir écrit, appuyez sur "Déployer" -> "Test".

Ensuite ... Le résultat de l'exécution est sorti sous forme de journal.

Development (with API Gateway) La configuration précédente n'était que lambda, mais ici je vais faire une demande de l'extérieur en utilisant API Gateway.

Tout d'abord, sélectionnez API Gateway à partir du déclencheur. La sécurité est votre choix.

Sélectionnez "Stage" -> "POST" pour obtenir l'URL. La structure de l'URL elle-même est https: // {restapi_id} .execute-api. {Region} .amazonaws.com / {stage_name} /

Alors, récupérez la valeur demandée par lambda et FizzBuzz. Parlant en base de code, event [" body "] est analysé avec json pour obtenir la valeur d'entrée.

import json

def lambda_handler(event, context):
    
    request = "[inner_test]"
    num = 30
    
    #Prend en charge la passerelle API
    #Obtenez la valeur de la demande ici
    if "body" in event.keys():
        request = json.loads(event["body"])
        num = request["num"]
        
    doc = {
        "message":'Hello from Lambda!',
        "request":process(num)
    }
    
    # TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps(doc)
    }


def process(src):
    
    if src % 15 == 0:
        return "FizzBuzz"
    elif src % 5 == 0:
        return "Buzz"
    elif src % 3 == 0:
        return "Fizz"
    else :
        return src

Essayez de frapper l'API en utilisant Postman pour voir si la valeur fizzbuzz est réellement renvoyée. Si vous modifiez la valeur de num, soit Fizz``Buzz`` FizzBuzz, soit un nombre sera renvoyé.

C'est fait.

Future J'ai pensé qu'il serait bon d'utiliser le VPS minimum et de supprimer les paquets nécessaires sans dire sans serveur, mais j'ai pu le faire en un rien de temps. Si vous créez un lien avec S3 après le traitement lambda, il semble que vous puissiez laisser les données.

Reference Appeler l'API REST sur Amazon API Gateway

Recommended Posts

Je viens de faire FizzBuzz avec AWS Lambda
Je viens de créer un environnement virtuel avec la couche AWS lambda
J'ai essayé de connecter AWS Lambda à d'autres services
Je veux AWS Lambda avec Python sur Mac!
[AWS] Créer une API avec API Gateway + Lambda
Notifier HipChat avec AWS Lambda (Python)
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Je veux jouer avec aws avec python
Ce que j'ai fait avec les tableaux Python
[AWS] Associez Lambda et S3 à boto3
Je viens de faire pip installer pyrebase ... (UnicodeDecodeError)
[AWS] Faites des choses de type SSI avec S3 / Lambda
J'ai essayé de supprimer régulièrement les mauvais tweets avec l'API AWS Lambda + Twitter
J'ai écrit un bot Slack qui notifie les informations de retard avec AWS Lambda
FizzBuzz en Python3
[AWS SAM] Créer une API avec DynamoDB + Lambda + API Gateway
Grattage sans serveur régulier avec AWS lambda + scrapy Part 1.8
LINE BOT avec Python + AWS Lambda + API Gateway
Ce que j'ai fait quand je suis resté coincé dans le délai avec lambda python
Application sans serveur avec AWS SAM! (APIGATEWAY + Lambda (Python))
[AWS] Essayez de tracer API Gateway + Lambda avec X-Ray
Automatisation de la construction de l'infrastructure avec CloudFromation + troposphère + AWS Lambda
Je voulais utiliser la feuille de calcul Google avec AWS lambda, alors je l'ai essayé [Partie 2]
[AWS] J'ai créé un BOT de rappel avec LINE WORKS
Pages HTML dynamiques créées avec AWS Lambda et Python
J'ai fait une analyse émotionnelle d'Amazon Comprehend avec l'AWS CLI.
J'ai essayé d'exécuter TensorFlow dans l'environnement AWS Lambda: Préparation
J'ai essayé d'obtenir une AMI en utilisant AWS Lambda
Déployer la fonction Python 3 avec Serverless Framework sur AWS Lambda
Créer une couche pour AWS Lambda Python dans Docker
Gérer la rétention des groupes de journaux Amazon CloudWatch avec AWS Lambda
Créez des tweets ordinaires comme une flotte avec AWS Lambda et Python
[Introduction à AWS] J'ai essayé de jouer avec la conversion voix-texte ♪
Je veux lier une variable locale avec lambda
[AWS] Play with Step Functions (SAM + Lambda) Part.2 (Paramètres)
Créer des couches Lambda avec Lambda
J'ai fait un bouton IFTTT qui déverrouille l'entrée 2 lock sésame avec 1 bouton (via AWS Lambda)
J'ai joué avec wordcloud!
J'ai essayé AWS CDK!
J'ai essayé AWS Iot
J'ai touché AWS Chalice
J'ai écrit un script pour créer rapidement un environnement de développement pour Twitter Bot avec AWS Lambda + Python 2.7
Essayez les destinations AWS Lambda
Fizzbuzz avec gestion des exceptions
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
[AWS] Essayez d'ajouter la bibliothèque Python à la couche avec SAM + Lambda (Python)
Exporter les journaux CloudWatch vers S3 avec AWS Lambda (Pythyon ver)
Défi problème 5 avec Python: lambda ... j'ai décidé de copier sans
Ce que j'ai fait pour accueillir le Python2 EOL en toute confiance
Essayez d'automatiser le démarrage / l'arrêt des instances EC2 avec AWS Lambda
J'ai essayé de trier une colonne FizzBuzz aléatoire avec un tri à bulles.
Créez rapidement une API avec Python, lambda et API Gateway à l'aide d'AWS SAM
Surveillance du site et notification d'alerte avec AWS Lambda + Python + Slack
[AWS] J'ai créé un BOT de rappel avec LINE WORKS (implémentation)