Je souhaite savoir comment déterminer si mon API Amazon CloudFront est une version antérieure qui ne prend pas en charge le processus de validation du nom de domaine alternatif (CNAME) CloudFront. Je souhaite également mettre à jour mes applications qui invoquent l'API.
Résolution
Utilisez un historique AWS CloudTrail et des requêtes Amazon Athena pour déterminer si vous utilisez une version antérieure de l'API CloudFront qui ne prend pas en charge le processus de validation CNAME.
Pour créer un journal CloudTrail et exécuter une requête Athena, procédez comme suit :
-
Créez un historique pour votre compte AWS dans la région AWS USA Est (Virginie du Nord) (us-east-1).
-
Une fois que les fichiers journaux CloudTrail ont été écrits dans un compartiment Amazon Simple Storage Service (Amazon S3), créez une table pour les fichiers journaux.
-
Ouvrez la console Athena, puis ajoutez la requête suivante dans la zone d'édition New Query 1 :
SELECT apiversion, count() AS Total
FROM $databaseName.$tableName
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd')
GROUP BY apiversion
ORDER BY Total Desc;
Remarque : remplacez $databaseName. $tableName par les noms de votre base de données et de votre table.
-
Sélectionnez Exécuter.
Remarque : la requête renvoie le nombre d'appels d'API qui utilisent des versions antérieures de l'API CloudFront. Si la requête ne renvoie aucun résultat, cela signifie que votre compte n'utilise pas de version antérieure de l'API.
-
(Facultatif) Si la requête précédente a renvoyé des résultats, exécutez la requête suivante pour obtenir plus d'informations sur chaque appel d'API :
SELECT useridentity.arn, sourceipaddress, eventname, useragent,eventtime
FROM $databaseName.$tableName
WHERE eventsource = 'cloudfront.amazonaws.com'
AND parse_datetime(apiversion, 'yyyy_MM_dd') < parse_datetime('2020_05_31', 'yyyy_MM_dd');
Remarque : remplacez $databaseName. $tableName par les noms de votre base de données et de votre table.
La requête précédente renvoie l'identité Gestion des identités et des accès AWS (AWS IAM), l'adresse IP source, l'appel d'API et l'agent utilisateur associé à l'appel d'API. Utilisez ces informations pour déterminer les applications que vous souhaitez mettre à jour avec la dernière version de l'API CloudFront.