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)
Anfrage → CloudFront → S3 Fügen Sie Lamda @ Edge ein, das Protokolle in CloudWatch-Protokolle ausgibt und sonst nichts tut
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
Ü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
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.
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