Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Méthodes d'assistance générales
Cette page fournit des méthodes d'assistance supplémentaires dans CloudFront Functions. Pour utiliser ces méthodes, créez une CloudFront fonction à l'aide de JavaScript Runtime 2.0.
import cf from 'cloudfront';
Pour de plus amples informations, veuillez consulter JavaScript fonctionnalités d'exécution 2.0 pour CloudFront Functions.
Métadonnées EdgeLocation
Cette méthode nécessite l'utilisation du cloudfront module.
Note
Vous ne pouvez utiliser cette méthode que pour les fonctions de demande de visualisation. Pour les fonctions de réponse du spectateur, cette méthode est vide.
Utilisez cet JavaScript objet pour obtenir le code d'aéroport de localisation périphérique, la région de cache périphérique régionale attendue ou l'adresse IP CloudFront du serveur utilisée pour traiter la demande. Ces métadonnées ne sont disponibles que pour le déclencheur de l'événement de demande du spectateur.
cf.edgeLocation = { name: SEA serverIp: 1.2.3.4 region: us-west-2 }
L'cf.edgeLocationobjet peut contenir les éléments suivants :
- name
-
Code IATA à trois lettres
de l'emplacement périphérique qui a traité la demande. - IP du serveur
-
Adresse IPv4 ou IPv6 du serveur qui a traité la demande.
- region
-
Le cache périphérique CloudFront régional (REC) que la demande est censée utiliser en cas d'échec du cache. Cette valeur n'est pas mise à jour si le REC attendu n'est pas disponible et qu'un REC de sauvegarde est utilisé pour la demande. Cela n'inclut pas l'emplacement d'Origin Shield utilisé, sauf dans les cas où le REC principal et l'Origin Shield se trouvent au même emplacement.
Note
CloudFront Functions n'est pas invoquée une deuxième fois lorsqu'il CloudFront est configuré pour utiliser le basculement d'origine. Pour de plus amples informations, veuillez consulter Optimisez la haute disponibilité grâce au basculement CloudFront d'origine.
méthode raw QueryString ()
Cette méthode ne nécessite pas le cloudFront module.
Utilisez la rawQueryString() méthode pour récupérer la chaîne de requête non analysée et non modifiée sous forme de chaîne.
Demande
function handler(event) { var request = event.request; const qs = request.rawQueryString(); }
Réponse
Renvoie la chaîne de requête complète de la demande entrante sous forme de valeur de chaîne sans le début?.
-
S'il n'y a pas de chaîne de requête mais qu'elle
?est présente, les fonctions renvoient une chaîne vide. -
S'il n'y a pas de chaîne de requête et qu'elle
?n'est pas présente, la fonction renvoieundefined.
- Cas 1 : chaîne de requête complète renvoyée (sans début
?) -
URL de la demande entrante :
https://example.com/page?name=John&age=25&city=BostonrawQueryString()renvoie :"name=John&age=25&city=Boston" - Cas 2 : chaîne vide renvoyée (lorsqu'elle
?est présente mais sans paramètres) -
URL de la demande entrante :
https://example.com/page?rawQueryString()renvoie :"" - Cas 3 :
undefinedrenvoyé (aucune chaîne de requête et non?) -
URL de la demande entrante :
https://example.com/pagerawQueryString()renvoie :undefined
méthode log CustomData ()
Pour utiliser cette méthode, importez le cloudfront module.
Utilisez logCustomData() cette méthode pour envoyer des données personnalisées depuis votre CloudFront fonction Amazon dans les journaux CloudFront d'accès. Les données sont écrites dans le champ viewer-request-log-data ou dans le champ viewer-response-log-data journal, selon que la fonction est associée à une demande du spectateur ou à un événement de réponse du spectateur.
La méthode accepte un seul argument de chaîne. Pour enregistrer un objet, JSON.stringify() convertissez-le d'abord en chaîne. Par exemple :
const resp_obj = JSON.stringify(some_obj); cf.logCustomData(resp_obj);
Chaque champ prend en charge jusqu'à 800 octets de données. CloudFront automatiquement URL-encodes les données avant de les écrire dans le champ du journal. CloudFront tronque ensuite toutes les données supérieures à 800 octets. URL-encoding Si votre fonction appelle logCustomData() plusieurs fois au cours d'une même exécution, CloudFront utilise uniquement la dernière valeur.
Ajoutez des champs à la configuration de votre journal
Pour recevoir ces données dans vos journaux CloudFront d'accès, vous devez ajouter les viewer-response-log-data champs viewer-request-log-data ou à votre configuration de journal en temps réel ou à votre configuration de journalisation standard (v2).
Différence par rapport à console.log ()
La logCustomData() méthode ne remplace pas console.log() pour CloudFront Functions. Utilisez-le console.log() pour envoyer des lignes de journal à Amazon CloudWatch Logs. Permet cf.logCustomData() d'écrire des données personnalisées pour CloudFront accéder aux journaux (journaux en temps réel et journalisation standard (v2)). Vous pouvez utiliser les deux méthodes dans la même fonction. Pour plus d'informations, consultez la section Journaux des CloudFront fonctions.
La méthode utilise la syntaxe suivante :
cf.logCustomData(String);
Exemple Enregistrer un en-tête dans une fonction de demande de visualisation
import cf from 'cloudfront'; function handler(event) { var request = event.request; // Check if the debug header exists, if so log it if (request.headers['x-debug-header']) { // Log the debug header value cf.logCustomData("debug header found: " + request.headers['x-debug-header'].value); } return request; }