[PYTHON] Ein Memo beim Erstellen einer Umgebung, die vorerst mit Lambda @ Edge debuggt werden kann

Was du machen willst

Erstellen Sie bei der Entwicklung mit Lambda @ Edge etwas, das mit der Mindestkonfiguration funktioniert Ich möchte mich beim Debuggen damit entwickeln Die Sprache ist Python 3.7 (3.8 wird derzeit nicht unterstützt)

Verfassung

Anfrage → CloudFront → S3 Fügen Sie Lamda @ Edge ein, das Protokolle in CloudWatch-Protokolle ausgibt und sonst nichts tut

Vorbereitung von S3

Machen Sie einen geeigneten Eimer mit S3 Geben Sie eine entsprechende index.html ein (diesmal sieht es so aus)

index.html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<title>Homepage testen</title>
</head>
<body>
<h1>Homepage testen</h1>
<p>Es ist im Bau.
</body>
</html>

Geben Sie dem Eimer öffentlichen Zugang スクリーンショット 2020-01-07 12.48.49.png

Überprüfen Sie anhand der "Objekt-URL" des Buckets, ob index.html im Browser angezeigt werden kann

Wenn es angezeigt werden kann, ist die Einstellung von S3 abgeschlossen Aktivieren Sie die statischen Hosting-Einstellungen für S3 und geben Sie index.html an

Zusammenarbeit zwischen CloudFront und S3

Je mehr Sie nachschlagen, desto mehr Materialien werden Sie finden, also werde ich es weglassen. Überprüfen Sie, ob auf S3 über die CloudFront-Domäne zugegriffen und im Browser angezeigt werden kann Vollständig, wenn angezeigt

Jetzt haben Sie eine Anfrage → CloudFront → S3 Dies ist die Vorbereitung Lambda @ Edge ist hier eingeklemmt

Lambda@Edge Machen Sie zuerst die Region ** (die neben dem angemeldeten Benutzernamen) Virginia und dann ** die Lambda-Funktion

Machen Sie den Inhalt von Lambda dazu

lambda_function.py


import json

def lambda_handler(event, context):

    print('# lambda@edge start')
    print(event)

#Kommentieren Sie dies im Fall von Viewer Response Origin Response aus
#    cfResponse = event['Records'][0]['cf']['response']
#    return cfResponse

#Kommentieren Sie dies im Fall von Viewer Request Origin Request aus
#    cfRequest = event['Records'][0]['cf']['request']
#    return cfRequest

・ Lambda @ Edge benötigt Parameter für Anforderung und Antwort, andernfalls tritt ein Fehler auf.

Nachdem Sie bestätigt haben, dass die Version auf dem neuesten Stand ist, wählen Sie Aktion → Auf Lambda @ Edge bereitstellen Legen Sie die in der Distribution erstellte CloudFront-ID fest Sie können die Bereitstellung durchführen, indem Sie das Lambda @ Edge-Ereignis festlegen, das Sie im CloudFront-Ereignis festlegen möchten, und auf Bereitstellen klicken

Da es sich um ein CDN handelt, gibt es Bereiche, in denen die Inhaltsverteilung eine Weile nicht abgeschlossen wurde, selbst wenn sie bereitgestellt wird Die Übermittlung ist abgeschlossen, wenn sich der Status von "In Bearbeitung" in "Bereitgestellt auf der CloudFront-Konsole" ändert. Es scheint, dass die Fertigstellung selbst in wenigen Minuten oder in 1 bis 3 Minuten nach Japan geliefert wurde.

Wenn Sie sich nun das Lambda-Ausführungsprotokoll von CloudWatch-Protokollen ansehen, sollten Sie das Protokoll sehen, das Sie im Code geschrieben haben. Sie müssen lediglich debuggen, was Sie mit Lambda @ Edge tun möchten, und es in Lambda implementieren.

Über Lambda @ Edge-Protokoll (wichtig)

Beachten Sie, dass die CloudWatch-Protokolle von Lambda @ Edge gemäß der folgenden Klassifizierung (am meisten abhängig) in verschiedene Gruppen geschrieben werden. ** Protokoll der von der Konsole ausgeführten Tests ** Region: Virginia Ausgabeziel: Für jede Funktion ** Lambda-Protokoll läuft auf Lambda @ Edge ** Region; Region zugegriffen (fast Tokio in Japan) Ausgabeziel: Für jede Funktion ** Lambda @ Edge-Protokoll läuft auf Lambda @ Edge ** Region; Region zugegriffen (fast Tokio in Japan) Ausgabeziel: Für jedes mit Lambda @ Edge verknüpfte Ausgabeziel

Ich hoffe, dieses Memo hilft jemandem, auch mir

Recommended Posts

Ein Memo beim Erstellen einer Umgebung, die vorerst mit Lambda @ Edge debuggt werden kann
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
Über die Sache, dass Fackelzusammenfassung wirklich verwendet werden kann, wenn ein Modell mit Pytorch erstellt wird
Hinweise beim Erstellen einer Umgebung mit Python
[Python] Code, der zu Beginn beim Scraping als Anfänger mit Hirntod geschrieben werden kann
Klasse für PYTHON, die ohne Kenntnis von LDAP betrieben werden kann
Machen Sie vorerst ein Histogramm (matplotlib)
Verwenden Sie vorerst Logger mit Python
Ich habe vorerst mit Floydhub gespielt
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Hinweise zum Erstellen einer Python-Umgebung durch Anfänger
[Windows] Das Problem, dass beim Öffnen einer anderen als CP932 (Shift-JIS) in Python codierten Datei ein Fehler auftritt, wurde vorerst behoben.
Bibliotheken, die beim Erstellen von APIs in der Django Rest Frakework-Umgebung, in vscode-Erweiterungen usw. enthalten sein sollten (für Anfänger)
[Python] Erstellen einer Umgebung für die Wettbewerbsprogrammierung mit Atom (input () kann verwendet werden!) [Mac]
Ich werde versuchen, die Links zusammenzufassen, die vorerst nützlich erscheinen
Bis Sie Blender installieren und vorerst mit Python ausführen können
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
Erstellen einer Liste, wenn die Nomenklatur für einen bestimmten Zeitraum gültig ist
Das kürzeste Memo zum Erstellen einer Python-Umgebung, deren Arbeit weniger als 5 Minuten dauert.
Über den Inhalt von wscript beim Erstellen einer solchen D-Sprachumgebung mit Waf
Erstellen einer Umgebung, die automatisch mit Github-Aktionen erstellt wird (Android-Version)
Vorsichtsmaßnahmen, die beim Aufbau einer PYTHON-Umgebung beachtet werden müssen
Ich habe die Vorbehandlung untersucht, die mit PyCaret durchgeführt werden kann
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
Ich möchte vorerst eine Docker-Datei erstellen.
Ich habe eine Funktion erstellt, um zu überprüfen, ob der Webhook vorerst in Lambda empfangen wird
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Vorsichtsmaßnahmen beim Erstellen eines zweidimensionalen Arrays mit denselben Werten
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Wechseln Sie das zu installierende Paket für jede Umgebung mit Gedichten
Ein Timer (Ticker), der im Feld verwendet werden kann (kann überall verwendet werden)
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Beim Erstellen einer Umgebung, die Python Django unter Ubuntu 12.04 LTS verwendet
Erstellen Sie ein Währungsdiagramm, das mit Plotly (2) verschoben werden kann.
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
Ein Memo für die Installation von pip3 mit python2.7 aus irgendeinem Grund
Über die Angelegenheit, dass das re.compiled-Objekt für das re.match-Muster verwendet werden kann
Dinge, auf die Sie beim Erstellen einer Python-Umgebung auf einem Mac achten sollten
Ich habe eine generische Python-Projektvorlage erstellt
Fordern Sie die Bildklassifizierung mit TensorFlow2 + Keras CNN 1 heraus ~ Bewegen Sie sich vorerst ~
Das LXC Web Panel, das LXC mit einem Browser bedienen kann, war wunderbar
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Ein Hinweis, mit dem Sie die Python-Umgebung von Pineapple mit pyenv ändern können
[Python-Memo] Seien Sie vorsichtig, wenn Sie ein zweidimensionales Array erstellen (Liste der Listen).
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann
Impressionen und Memorandum bei der ersten Arbeit mit VScode
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Achten Sie beim Erstellen einer Bildmaske mit Numpy auf den Typ
[Python3] Code, der verwendet werden kann, wenn Sie ein Bild in einer bestimmten Größe ausschneiden möchten
[Python] Erstellen eines Tools, mit dem Python-Dateien mit tkinter & über den Teil, der abgefangen wurde, aufgelistet, ausgewählt und ausgeführt werden können
Die Geschichte, die nichts mit der Partition zu tun hatte, als ich zum ersten Mal eine Festplatten-Sicherung mit dd durchführte
Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)
[Python3] Code, der verwendet werden kann, wenn Sie die Erweiterung eines Bildes sofort ändern möchten