View a markdown version of this page

Configuration de l'accès aux fichiers Amazon S3 - AWS Lambda

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.

Configuration de l'accès aux fichiers Amazon S3

Amazon S3 Files fournit un système de fichiers partagé qui connecte n'importe quelle ressource de AWS calcul directement à vos données dans Amazon S3. Amazon S3 Files permet d'accéder à vos objets Amazon S3 sous forme de fichiers à l'aide d'opérations de système de fichiers standard telles que la lecture et l'écriture sur le chemin de montage local. En savoir plus sur Amazon S3 Files.

Prérequis et configuration

Avant de configurer Amazon S3 Files avec votre fonction Lambda, assurez-vous de disposer des éléments suivants :

  • Un système de fichiers Amazon S3 et des cibles de montage à l'état disponible dans le même compte et en Région AWS tant que fonction Lambda.

  • Une fonction Lambda dans le même VPC que la cible de montage. Vous devez disposer d'une cible de montage dans chaque sous-réseau où votre fonction est déployée.

  • Groupes de sécurité qui autorisent le trafic NFS (port 2049) entre votre fonction Lambda et les cibles de montage. En savoir plus sur la configuration des groupes de sécurité.

Pour plus d'informations, consultez les rubriques suivantes dans le guide de l'utilisateur Amazon S3 :

Rôle d’exécution et autorisations utilisateur

Le rôle d'exécution de votre fonction doit disposer des autorisations suivantes pour accéder à un système de fichiers Amazon S3 Files :

Autorisations du rôle d’exécution
  • s3files : ClientMount — Nécessaire pour monter le système de fichiers.

  • s3files : ClientWrite — Nécessaire pour l'accès en lecture-écriture. Inutile pour les connexions en lecture seule.

Ces autorisations sont incluses dans la politique AmazonS3FilesClientReadWriteAccessgérée. En outre, votre rôle d'exécution doit posséder leautorisations requises pour se connecter au VPC du système de fichiers.

Note

Amazon S3 Files optimise le débit en diffusant les demandes de lecture éligibles directement depuis votre compartiment Amazon S3. Les lectures directes sont activées par défaut pour les fonctions configurées avec 512 Mo de mémoire ou plus. Pour plus d’informations, consultez Configuration des lectures directes.

Votre fonction a également besoin des autorisations suivantes pour lire directement depuis Amazon S3 :

  • s3 : GetObject

  • s3 : GetObjectVersion

Pour plus d'informations sur les autorisations requises, consultez la section Autorisations IAM pour les fichiers Amazon S3 dans le guide de l'utilisateur Amazon S3.

Lorsque vous configurez un système de fichiers dans la console, Lambda utilise vos autorisations pour vérifier les cibles de montage et les points d'accès. Pour configurer une fonction pour vous connecter à un système de fichiers, votre utilisateur a besoin des autorisations suivantes :

Autorisations des utilisateurs
  • Fichiers S3 : ListFileSystems

  • Fichiers S3 : ListAccessPoints

  • Fichiers S3 : GetFileSystem

  • Fichiers S3 : GetAccessPoint

  • s3files : CreateAccessPoint — Nécessaire si vous associez le système de fichiers à la fonction depuis la console.

L'exemple de politique suivant accorde à votre fonction des autorisations de rôle d'exécution lui permettant de monter un système de fichiers Amazon S3 avec un accès en lecture-écriture et en lecture directement depuis Amazon S3.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "S3FilesLambdaAccess", "Effect": "Allow", "Action": [ "s3files:ClientMount", "s3files:ClientWrite" ], "Resource": "*" }, { "Sid": "S3DirectRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "arn:aws:s3:::bucket-name/*" }, { "Sid": "S3FilesConsoleSetup", "Effect": "Allow", "Action": [ "s3files:ListFileSystems", "s3files:ListAccessPoints", "s3files:GetFileSystem", "s3files:GetAccessPoint", "s3files:CreateAccessPoint" ], "Resource": "*" } ] }

Connexion à un système de fichiers (console)

Une fonction se connecte à un système de fichiers sur le réseau local dans un VPC. Les sous-réseaux auquel votre fonction se connecte peuvent être les mêmes sous-réseaux qui contiennent des points de montage pour votre système de fichiers, ou des sous-réseaux de la même zone de disponibilité qui peuvent acheminer le trafic NFS (port 2049) vers le système de fichiers.

Note

Si votre fonction n'est pas déjà connectée à un VPC, veuillez consulter Permettre à Lambda Event Functions d'accéder aux ressources d'un Amazon VPC.

Pour configurer l'accès aux fichiers S3
  1. Ouvrez la page Event Functions de la console Lambda.

  2. Choisissez une fonction.

  3. Choisissez Configuration, puis Systèmes de fichiers.

  4. Choisissez Ajouter un système de fichiers (ou Modifier pour modifier une configuration existante).

  5. Sélectionnez S3 Files.

  6. Configurez les propriétés suivantes :

    • Système de fichiers S3 — Choisissez un système de fichiers dans la liste déroulante.

    • Point d'accès (facultatif) — Choisissez un point d'accès. Si le système de fichiers ne possède aucun point d'accès, Lambda en crée un automatiquement lors de l'enregistrement (UID/GID 1000:1000, répertoire /lambda racine, autorisations 755). S'il existe des points d'accès, vous devez en sélectionner un.

    • Chemin de montage local – Emplacement où le système de fichiers est monté sur la fonction Lambda, commençant par /mnt/.

    • Configuration avancée

      • Lectures S3 directes : contrôle si Lambda peut diffuser des lectures éligibles directement depuis votre compartiment Amazon S3 pour un débit plus élevé. Pour plus d’informations, consultez Configuration des lectures directes.

  7. Cliquez sur Enregistrer.

Votre système de fichiers est attaché la prochaine fois que vous appelez votre fonction Lambda.

Configuration des lectures directes

Les lectures directes optimisent le débit en diffusant des données directement depuis votre compartiment Amazon S3. Lambda utilise des lectures directes pour les lectures volumineuses et lorsque le stockage haute performance du système de fichiers ne contient pas les données des fichiers. Pour plus d'informations, consultez Comment S3 Files fournit des performances. Cette configuration facultative fait partie FileSystemConfigs de votre fonction et s'applique uniquement aux systèmes de fichiers Amazon S3. Le DirectS3Read paramètre accepte les valeurs suivantes :

  • AUTO(par défaut) — Active la lecture directe pour les fonctions configurées avec 512 Mo de mémoire ou plus.

  • ENABLED— Permet la lecture directe de votre fonction, y compris les fonctions avec moins de 512 Mo de mémoire.

  • DISABLED— Achemine toutes les lectures via le stockage haute performance du système de fichiers.

Note

Si une lecture directe échoue, Lambda recommence automatiquement à lire dans le système de fichiers.

Pour utiliser les lectures directes, le rôle d'exécution de votre fonction doit disposer des autorisations requises. Pour plus d'informations, consultez les politiques prérequises d'Amazon S3 Files.