Créez quelque chose qui fonctionne avec la configuration minimale lors du développement avec Lambda @ Edge Je souhaite développer en déboguant en l'utilisant Le langage est Python 3.7 (3.8 n'est actuellement pas pris en charge)
Demande → CloudFront → S3 Insérez Lamda @ Edge qui génère des journaux dans CloudWatch Logs et ne fait rien d'autre
Créez un seau adapté avec S3 Mettez un index.html approprié (cette fois, cela ressemble à ceci)
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<title>Test de la page d'accueil</title>
</head>
<body>
<h1>Test de la page d'accueil</h1>
<p>Il est actuellement en construction.
</body>
</html>
Donner l'accès public au bucket
Vérifiez si index.html peut être affiché sur le navigateur à partir de "l'URL de l'objet" du bucket
S'il peut être affiché, le réglage de S3 est terminé Activez les paramètres d'hébergement statique S3 et spécifiez index.html
Plus vous recherchez, plus vous trouverez de matériaux, je vais donc l'omettre. Vérifiez si S3 est accessible et affiché dans le navigateur via le domaine CloudFront Terminé une fois affiché
Vous avez maintenant une demande → CloudFront → S3 C'est la préparation Lambda @ Edge est pris en sandwich ici
Lambda@Edge Commencez par créer la ** région (celle à côté du nom d'utilisateur connecté) Virginie, puis ** créez la fonction Lambda
Faire du contenu de Lambda ce
lambda_function.py
import json
def lambda_handler(event, context):
print('# lambda@edge start')
print(event)
#En cas de réponse à l'origine de la réponse du spectateur, décommentez
# cfResponse = event['Records'][0]['cf']['response']
# return cfResponse
#En cas de demande d'origine de la demande de spectateur, décommentez ceci
# cfRequest = event['Records'][0]['cf']['request']
# return cfRequest
・ Lambda @ Edge a des paramètres requis pour la demande et la réponse, sinon une erreur se produira.
Après avoir confirmé que la version est DERNIÈRE, sélectionnez Action → Déployer sur Lambda @ Edge Définissez l'ID CloudFront créé dans la distribution Vous pouvez déployer en définissant l'événement Lambda @ Edge que vous souhaitez définir dans l'événement CloudFront et en cliquant sur Déployer
Puisqu'il s'agit d'un CDN, il existe des zones où la distribution de contenu n'est pas terminée depuis un certain temps même s'il est déployé La livraison est terminée si l'état passe de En cours à déployé sur la console CloudFront. Il semble que l'achèvement lui-même ait été livré en quelques minutes à assez, ou en 1 à 3 minutes au Japon.
Maintenant, si vous regardez le journal d'exécution Lambda de CloudWatch Logs, vous devriez voir le journal que vous avez écrit dans le code. Tout ce que vous avez à faire est de déboguer ce que vous voulez faire avec Lambda @ Edge et de l'implémenter dans Lambda.
Notez que les journaux CloudWatch de Lambda @ Edge sont écrits dans différents groupes selon la classification suivante (le plus accro) ** Journal des tests exécutés depuis la console ** Région: Virginie Objectif de sortie: pour chaque fonction ** Journal Lambda s'exécutant sur Lambda @ Edge ** Région; Région consultée (presque Tokyo au Japon) Objectif de sortie: pour chaque fonction ** Journal Lambda @ Edge exécuté sur Lambda @ Edge ** Région; Région consultée (presque Tokyo au Japon) Cible de sortie: pour chaque cible de sortie associée à Lambda @ Edge
J'espère que ce mémo aidera quelqu'un, y compris moi-même
Recommended Posts