AWS CDK-Lambda + API-Gateway (Python)

Da es viele Fälle von TypeScript gibt, ein Memorandum, als ich es mit Python versuchte.

Überblick

Impressionen

--TypeScript-Vergleich

Verfahren

Das Verfahren zur Überprüfung des Vorgangs.

Annahme

$ npm install -g aws-cdk
$ cdk --version
1.19.0 (build 5597bbe)

Initialisieren Sie die Anwendung mit cdk-init. Aktivieren Sie außerdem "virtualenv" mit dem Befehl "source".

$ mkdir lambda-sample && cd $_
$ cdk init --language=python
$ source .env/bin/activate

setup.py Abhängige Bibliotheksdefinitionen (standardmäßig ist nur "aws-cdk.core" vorhanden, fügen Sie also "aws-lambda" und "aws-apigateway" hinzu).

...

    install_requires=[
        "aws-cdk.core",
        "aws-cdk.aws-lambda",
        "aws-cdk.aws-apigateway",
    ],

...

Installieren Sie abhängige Bibliotheken basierend auf der Definition.

$ pip install -r requirements.txt

Implementierung

Skriptimplementierung.

$ mkdir lambda
$ touch lambda/handler.py

lambdahandler.py

import json
import logging

logger = logging.getLogger()
logger.setLevel(logging.INFO)
 
def main(event, context):
    logger.info(json.dumps(event))
 
    return {
        'statusCode': 200,
        'body': 'Hello World'
    }

lamba_sample/lambda_sample.py

Stack-Definitionen für Lambda und API Gateway wurden zu Stack hinzugefügt.

from aws_cdk import (
    aws_lambda,
    aws_apigateway,
    core
)

class LambdaSampleStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        handler = aws_lambda.Function(
            self, "backend",
            runtime=aws_lambda.Runtime.PYTHON_3_7,
            handler="handler.main",
            code=aws_lambda.AssetCode(path="./lambda"))

        api = aws_apigateway.LambdaRestApi(self, "SampleLambda", handler=handler)

Stellen Sie den definierten Stapel bereit. Wenn Sie den API-Gateway-Endpunkt aufrufen, der im Feld "Ausgaben" ausgegeben wird, wird das Lamba-Ausgabeergebnis zurückgegeben.

$ cdk deploy
...
Outputs:
lambda-sample.SampleLambdaEndpoint9FAA5D96 = https://4rtjc3pjfh.execute-api.ap-northeast-1.amazonaws.com/prod/
$ curl https://4rtjc3pjfh.execute-api.ap-northeast-1.amazonaws.com/prod/
Hello World

Referenz

Recommended Posts

AWS CDK-Lambda + API-Gateway (Python)
LINE BOT mit Python + AWS Lambda + API Gateway
Amazon API Gateway und AWS Lambda Python-Version
[AWS] API mit API Gateway + Lambda erstellen
Erstellen Sie mit AWS SAM schnell eine API mit Python, Lambda und API Gateway
[Python] Ich habe eine REST-API mit AWS API Gateway und Lambda geschrieben.
[AWS SAM] Erstellen Sie eine API mit DynamoDB + Lambda + API Gateway
[AWS] Versuchen Sie, API Gateway + Lambda mit X-Ray zu verfolgen
Versuchen Sie, einen Cisco Spark Bot mit AWS Lambda + Amazon API Gateway (Python) zu implementieren.
Evernote-API in Python
Liste der Python-APIs für OpenCV3
C-API in Python 3
TensorFlow API-Memo (Python)
Hit Mastodons API in Python
Verwenden Sie die Trello-API mit Python
[Python] Scraping in AWS Lambda
Nehmen Sie schnell eine Abfragezeichenfolge mit API Gateway-> Lambda (Python)
EXE Web API von Python
Verwenden Sie die Twitter-API mit Python
Web-API mit Python + Falcon
Blender Python API in Houdini (Python 3)
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
Google Drive API-Tipps (Python)
(Python) AWS-Rechnungsbetrag abrufen
Verwenden Sie die e-Stat-API von Python
Klicken Sie auf API Gateway für die IAM-Authentifizierung. SigV4-Signaturheader erstellen (Python)
Senden Sie mit ESP32-WROOM-32 aufgenommene Bilder an AWS (API Gateway → Lambda → S3).
Stellen Sie eine Anfrage von der Gerätefarm (Appium Python) an das API-Gateway
Ich habe ChatOps mit Slack x API Gateway x Lambda (Python) x RDS ausprobiert
Erstellen Sie Awaitable mit der Python / C-API
Zusammenfassung bei Verwendung von AWS Lambda (Python)
Datenerfassung mit Python Googlemap API
Klicken Sie in Python auf die Sesami-API
Führen Sie Rotrics DexArm mit der Python-API aus
[Python] Klicken Sie auf die Google Übersetzungs-API
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Textextraktion mit AWS Textract (Python3.6)
Schreiben Sie die AWS Lambda-Funktion in Python
Quine Post mit Qiita API (Python)
Ausnahmebehandlung während der Python-API-Kommunikation
Versuchen Sie es mit der Pleasant-API (Python / FastAPI).
Führen Sie Python planmäßig auf AWS Lambda aus
Boto3 (Python) API-Beispiel, das ich oft benutze
Zusammenarbeit zwischen Python-Modul und API
Klicken Sie mit Python auf die Etherpad-Lite-API
Erstellen Sie Google Mail in Python ohne Verwendung der API
boto3 (AWS SDK für Python) Hinweis
Verwenden Sie die kabu Station® API von Python
Klicken Sie auf die Web-API in Python
Verwendung der Python-API von OpenPose
Verwenden Sie die Flickr-API von Python
AWS Layer Creation Script für Python
Python Holen Sie sich das kommende Wetter von der Wetter-API
Versuchen Sie es mit der Aktions-API von Python argparse
Implementieren Sie die REST-API schnell in Python