Comment utiliser les images d'un compartiment Amazon S3 privé sur un tableau de bord QuickSight ?

Lecture de 4 minute(s)
0

Je souhaite utiliser des images provenant d'un compartiment Amazon Simple Storage Service (Amazon S3) privé sur un tableau de bord Amazon QuickSight.

Résolution

Pour utiliser des images provenant d'un compartiment Amazon S3 privé dans des tableaux de bord ou des rapports QuickSight, utilisez l'API AWS Lambda ou la console Amazon CloudFront.

API Lambda

Pour utiliser l'API Lambda, créez une fonction Lambda, puis créez un déclencheur Amazon API Gateway.

Créer une fonction Lambda

Procédez comme suit :

  1. Ouvrez la console Amazon S3.
  2. Dans le volet de navigation, choisissez Compartiments, puis sélectionnez votre compartiment.
  3. Sélectionnez Charger.
  4. Chargez l'image dans le compartiment au format .jpg.
  5. Exécutez la commande suivante pour créer une fonction Lambda :
    import boto3
    import base64
    
    def lambda_handler(event, context):
        s3 = boto3.client("s3")
        downloaded_s3_object = s3.get_object(Bucket="<S3 BUCKET NAME>", Key="<Image.jpg>")
        return base64.b64encode(downloaded_s3_object["Body"].read())
    Remarque : Remplacez S3 BUCKET NAME et downloaded_s3_object par vos informations. Le rôle Lambda AWS Identity and Access Management (IAM) doit être autorisé à récupérer des objets depuis le compartiment S3. Pour la fonction Lambda, définissez Exécution sur Python 3.9.
  6. Sélectionnez Déployer.

Créer un déclencheur API Gateway

Procédez comme suit :

  1. Ouvrez la console API Gateway.
  2. Dans le volet de navigation, sélectionnez API, puis Créer une API.
  3. Dans API REST, sélectionnez Créer.
  4. Sur la page Créer une API REST, sous Détails de l'API, sélectionnez Nouvelle API, puis saisissez les informations suivantes :
    Saisissez un nom pour votre API, puis sélectionnez Créer une API.
    (Facultatif) Saisissez une description de votre API.
    Dans Type de point de terminaison d'API, sélectionnez Régional. Puis, sélectionnez Créer une API.
  5. Sur la page Ressources, sous Méthodes, sélectionnez Créer une méthode.
  6. Sur la page Créer une méthode, saisissez les informations suivantes :
    Pour Type de méthode, sélectionnez GET.
    Dans Type d'intégration, sélectionnez Fonction Lambda.
    Dans Fonction Lambda, choisissez la région AWS et votre fonction Lambda.
  7. Sélectionnez Créer une méthode.
  8. Sur la page Ressources, sous Paramètres de requête de méthode, sélectionnez Modifier.
  9. Sur la page Modifier une requête de méthode, sous En-têtes de requête HTTP, sélectionnez Ajouter un en-tête.
  10. Dans le champ Nom, saisissez Content-Type, puis sélectionnez Enregistrer.
  11. Sur la page Ressources, sous Réponse d'intégration, sélectionnez Modifier.
  12. Sous Détails de la réponse, pour Gestion du contenu, sélectionnez Convertir en binaire, puis Enregistrer.
  13. Déployez votre API.
    Remarque : Pour plus d'informations, consultez la section Configuration d'une étape à l'aide de la console API Gateway.
  14. Sur la page Étapes, sous Détails de l'étape, notez l'URL d'invocation, par exemple https://1a2bc3d456.execute-api.region.amazonaws.com/test.
  15. Ouvrez la console QuickSight.
  16. Dans le volet de navigation, sélectionnez Analyses, puis sélectionnez les analyses auxquelles vous souhaitez ajouter l'image.
  17. Dans le menu Représentations visuelles, sélectionnez Contenu visuel personnalisé.
  18. Sélectionnez Personnaliser la représentation visuelle.
  19. Dans le volet Propriétés, sous Personnaliser le contenu, saisissez l'URL d'invocation.
  20. Activez l'action Afficher sous forme d'image, puis sélectionnez Appliquer.

L'API Gateway renvoie une chaîne base64 de l'image. L'éditeur QuickSight Insight utilise l'URL de l'API pour afficher l'image.

Console CloudFront

Procédez comme suit :

  1. Ouvrez la console CloudFront.
  2. Dans le volet de navigation, sélectionnez Distributions, puis Créer une distribution.
  3. Sur la page Créer une distribution, saisissez les informations suivantes :
    Dans Domaine de l'origine, saisissez le nom de domaine de votre origine.
    Sous Accès d’origine, sélectionnez Paramètres de contrôle d'accès d'origine (recommandé).
    Dans Contrôle d'accès d’origine, sélectionnez Créer un nouvel OAC, puis Créer.
  4. Dans Pare-feu d’application Web (WAF), sélectionnez Ne pas activer les protections de sécurité.
  5. Sélectionnez Créer une distribution.
  6. Sur la page Détails de la distribution, notez le nom du domaine de distribution, par exemple, d2icdkfpjckhwg.cloufront.net.
  7. Dans le message « The S3 bucket policy needs to be updated », sélectionnez Copier la politique.
  8. Ouvrez la console Amazon S3.
  9. Sous Compartiments à usage général, sélectionnez le compartiment qui héberge le contenu du domaine d'origine.
  10. Sur la page Détails du compartiment, sous Autorisations, sélectionnez Modifier.
  11. Saisissez la politique, puis sélectionnez Enregistrer les modifications.
  12. Sur la page Détails du compartiment, sous Objets, sélectionnez l'objet.
  13. Sur la page Détails de l’objet, notez l'URI S3, par exemple s3://your-bucket-name/your_image.png.
  14. Dans un nouvel onglet de navigateur, saisissez l'URI S3, par exemple d2icdkfpjckhwg.cloufront.net/your_image.png.
  15. Sur le tableau de bord QuickSight, sous Propriétés, saisissez l'URI personnalisé dans la section Représentation visuelle.
  16. Sélectionnez APPLIQUER.
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 4 mois