Création de points d'accès Object Lambda - Amazon Simple Storage Service

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.

Création de points d'accès Object Lambda

Un point d'accès Object Lambda est associé à exactement un point d'accès standard et donc à un compartiment Amazon S3. Pour créer un point d'accès Object Lambda, vous avez besoin des ressources suivantes :

  • Un compartiment Amazon S3. Pour plus d’informations sur la création de compartiments, consultez Créer un compartiment.

  • Un point d'accès S3 standard. Lorsque vous utilisez des points d'accès Object Lambda, ce point d'accès standard est appelé point d'accès de prise en charge. Pour obtenir des informations sur la création de points d'accès standard, consultez Création de points d'accès.

  • Une AWS Lambda fonction. Vous pouvez créer votre propre fonction Lambda ou utiliser une fonction prédéfinie. Pour plus d'informations sur la création de fonctions Lambda, consultez Écriture de fonctions Lambda pour les points d'accès S3 Object Lambda. Pour plus d’informations sur les fonctions prédéfinies, consultez Utilisation de AWS fonctions Lambda intégrées.

  • (Facultatif) Une AWS Identity and Access Management (IAM) politique. Les points d'accès Amazon S3 prennent en charge les politiques de IAM ressources que vous pouvez utiliser pour contrôler l'utilisation du point d'accès par ressource, par utilisateur ou selon d'autres conditions. Pour plus d'informations sur la création de telles politiques, consultez Configuration des IAM politiques pour les points d'accès Object Lambda.

Les sections suivantes décrivent comment créer un point d'accès Object Lambda en utilisant :

  • Le AWS Management Console

  • Le AWS Command Line Interface (AWS CLI)

  • Un AWS CloudFormation modèle

  • Le AWS Cloud Development Kit (AWS CDK)

Pour plus d'informations sur la création d'un point d'accès Object Lambda à l'aide du RESTAPI, consultez CreateAccessPointForObjectLambdale manuel Amazon Simple Storage Service API Reference.

Créer un point d'accès Object Lambda

Utilisez l'une des procédures suivantes pour créer votre point d'accès Object Lambda.

Pour créer un point d'accès Object Lambda à l'aide de la console
  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la barre de navigation, choisissez le nom du fichier actuellement affiché Région AWS. Choisissez ensuite la région vers laquelle vous souhaitez passer.

  3. Dans le panneau de navigation de gauche, choisissez Points d'accès Object Lambda.

  4. Dans la page Points d'accès Object Lambda), choisissez Créer un point d'accès Object Lambda).

  5. Pour Object Lambda Access Point name (Nom du point d'accès Object Lambda), saisissez le nom que vous souhaitez utiliser pour le point d'accès.

    Comme pour les points d'accès standard, des règles s'appliquent à l'attribution de noms pour des points d'accès Object Lambda. Pour plus d’informations, consultez Règles relatives à l'attribution de noms pour les points d'accès Amazon S3.

  6. Pour Supporting Access Point (Point d'accès de prise en charge), saisissez le point d'accès standard à utiliser ou accédez-y. Le point d'accès doit se trouver dans le même Région AWS emplacement que les objets que vous souhaitez transformer. Pour obtenir des informations sur la création de points d'accès standard, consultez Création de points d'accès.

  7. Sous Configuration de transformation, vous pouvez ajouter une fonction qui transforme vos données pour votre point d'accès Object Lambda. Effectuez l’une des actions suivantes :

    • Si vous avez déjà une AWS Lambda fonction dans votre compte, vous pouvez la sélectionner sous Invoke Lambda function. Vous pouvez saisir ici le nom Amazon Resource (ARN) d'une fonction Lambda dans votre répertoire Compte AWS ou choisir une fonction Lambda dans le menu déroulant.

    • Si vous souhaitez utiliser une fonction AWS intégrée, choisissez le nom de la fonction sous fonction AWS construite et sélectionnez Créer une fonction Lambda. Cela vous mènera à la console Lambda où vous pourrez déployer une fonction intégrée dans votre. Compte AWS Pour plus d'informations sur les fonctions définies, consultez Utilisation de AWS fonctions Lambda intégrées.

    Sous S3 APIs, choisissez une ou plusieurs API opérations à appeler. Pour chaque API fonction sélectionnée, vous devez spécifier une fonction Lambda à invoquer.

  8. (Facultatif) Sous Charge utile, ajoutez JSON le texte que vous souhaitez fournir à votre fonction Lambda en entrée. Vous pouvez configurer des charges utiles avec différents paramètres pour différents points d'accès Object Lambda qui invoquent la même fonction Lambda, augmentant ainsi la flexibilité de votre fonction Lambda.

    Important

    Lorsque vous utilisez des points d'accès Object Lambda, vérifiez que la charge utile ne contient pas d'informations confidentielles.

  9. (Facultatif) Pour Range and part number (Plage et numéro de partie), vous devez activer cette option pour traiter les requêtes GET et HEAD avec des en-têtes de plage et de numéro de partie. L'activation de cette option confirme que votre fonction Lambda est capable de reconnaître et de traiter ces demandes. Pour plus d'informations sur les en-têtes de plage et les numéros de partie, voir Travailler avec Range and partNumber headers.

  10. (Facultatif) Pour Métriques de demande), choisissez Activer ou Désactiver pour ajouter la surveillance Amazon S3 à votre point d'accès Object Lambda. Les statistiques relatives aux demandes sont facturées au CloudWatch tarif standard d'Amazon.

  11. (Facultatif) Sous Object Lambda Access Point policy (Politique de points d'accès Object Lambda), définissez une politique de ressources. Les politiques de ressources accordent des autorisations pour le point d'accès Object Lambda spécifié et peuvent contrôler l'utilisation du point d'accès par ressource, utilisateur ou d'autres conditions. Pour plus d'informations sur les politiques de ressources d'un point d'accès Object Lambda, consultez Configuration des IAM politiques pour les points d'accès Object Lambda.

  12. Sous Block Public Access settings for this Object Lambda Access Point (Paramètres de blocage d'accès public pour ce point d'accès Object Lambda), sélectionnez les paramètres de blocage d'accès public que vous voulez appliquer. Tous les paramètres de blocage d'accès public sont activés par défaut pour les nouveaux points d'accès Object Lambda et nous vous recommandons de laisser les paramètres par défaut activés. Actuellement, Amazon S3 ne prend pas en charge la modification des paramètres de blocage d'accès public d'un point d'accès Object Lambda après la création de ce point d'accès Object Lambda.

    Pour plus d'informations sur l'utilisation du blocage de l'accès public Amazon S3, consultez Gestion de l'accès public aux points d'accès.

  13. Choisissez Create Object Lambda Access Point (Créer un point d'accès Object Lambda).

Pour créer un point d'accès Object Lambda à l'aide d'un modèle AWS CloudFormation
Note

Pour utiliser les commandes suivantes, remplacez user input placeholders par vos propres informations.

  1. Téléchargez le package de déploiement des AWS Lambda fonctions s3objectlambda_deployment_package.zip dans la configuration par défaut de S3 Object Lambda.

  2. Exécutez la commande put-object suivante pour charger le package dans un compartiment Amazon S3.

    aws s3api put-object --bucket Amazon S3 bucket name --key s3objectlambda_deployment_package.zip --body release/s3objectlambda_deployment_package.zip
  3. Téléchargez le AWS CloudFormation modèle dans la s3objectlambda_defaultconfig.yaml configuration par défaut de S3 Object Lambda.

  4. Exécutez la commande deploy suivante pour déployer le modèle dans votre Compte AWS.

    aws cloudformation deploy --template-file s3objectlambda_defaultconfig.yaml \ --stack-name AWS CloudFormation stack name \ --parameter-overrides ObjectLambdaAccessPointName=Object Lambda Access Point name \ SupportingAccessPointName=Amazon S3 access point S3BucketName=Amazon S3 bucket \ LambdaFunctionS3BucketName=Amazon S3 bucket containing your Lambda package \ LambdaFunctionS3Key=Lambda object key LambdaFunctionS3ObjectVersion=Lambda object version \ LambdaFunctionRuntime=Lambda function runtime --capabilities capability_IAM

Vous pouvez configurer ce AWS CloudFormation modèle pour appeler Lambda pour les opérations GETHEAD, et LISTAPI. Pour plus d'informations sur la modification de la configuration par défaut du modèle, consultez Automatisez la configuration de S3 Object Lambda à l'aide d'un modèle CloudFormation.

Pour créer un point d'accès Object Lambda à l'aide du AWS CLI
Note

Pour utiliser les commandes suivantes, remplacez user input placeholders par vos propres informations.

L'exemple suivant crée un point d'accès Object Lambda nommé my-object-lambda-ap pour le seau amzn-s3-demo-bucket1 dans le compte 111122223333. Cet exemple suppose qu'un point d'accès standard nommé exemple-ap a déjà été créé. Pour plus d'informations sur la création d'un point d'accès standard, veuillez consulter Création de points d'accès.

Cet exemple utilise la fonction AWS prédéfinie. decompress Pour plus d’informations sur les fonctions prédéfinies, consultez Utilisation de AWS fonctions Lambda intégrées.

  1. Créez un compartiment. Dans cet exemple, nous utiliserons amzn-s3-demo-bucket1. Pour plus d'informations sur la création de buckets, consultezCréer un compartiment.

  2. Créez un point d'accès standard et attachez-le à votre compartiment. Dans cet exemple, nous utiliserons exemple-ap. Pour plus d'informations sur la création de points d'accès standard, consultezCréation de points d'accès.

  3. Effectuez l’une des actions suivantes :

  4. Créez un fichier JSON de configuration nommémy-olap-configuration.json. Dans cette configuration, indiquez le point d'accès compatible et le nom de ressource Amazon (ARN) pour la fonction Lambda que vous avez créée lors des étapes précédentes ou ARN pour la fonction prédéfinie que vous utilisez.

    { "SupportingAccessPoint" : "arn:aws:s3:us-east-1:111122223333:accesspoint/example-ap", "TransformationConfigurations": [{ "Actions" : ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation" : { "AwsLambda": { "FunctionPayload" : "{\"compressionType\":\"gzip\"}", "FunctionArn" : "arn:aws:lambda:us-east-1:111122223333:function/compress" } } }] }
  5. Exécutez la commande create-access-point-for-object-lambda pour créer votre point d'accès Object Lambda.

    aws s3control create-access-point-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --configuration file://my-olap-configuration.json
  6. (Facultatif) Créez un fichier JSON de politique nommémy-olap-policy.json.

    L'ajout d'une politique de ressources de points d'accès Object Lambda peut contrôler l'utilisation du point d'accès par ressource, utilisateur ou d'autres conditions. Cette politique de ressources accorde l'GetObjectautorisation d'ouvrir un compte 444455556666 au point d'accès Object Lambda spécifié.

    { "Version": "2008-10-17", "Statement": [ { "Sid": "Grant account 444455556666 GetObject access", "Effect": "Allow", "Action": "s3-object-lambda:GetObject", "Principal": { "AWS": "arn:aws:iam::444455556666:root" }, "Resource": "your-object-lambda-access-point-arn" } ] }
  7. (Facultatif) Exécutez la commande put-access-point-policy-for-object-lambda pour définir votre politique de ressources.

    aws s3control put-access-point-policy-for-object-lambda --account-id 111122223333 --name my-object-lambda-ap --policy file://my-olap-policy.json
  8. (Facultatif) Spécifiez une charge utile.

    Une charge utile est facultative JSON et vous pouvez la fournir à votre AWS Lambda fonction en entrée. Vous pouvez configurer des charges utiles avec différents paramètres pour différents points d'accès Object Lambda qui invoquent la même fonction Lambda, augmentant ainsi la flexibilité de votre fonction Lambda.

    La configuration suivante du point d'accès Object Lambda affiche une charge utile avec deux paramètres.

    { "SupportingAccessPoint": "AccessPointArn", "CloudWatchMetricsEnabled": false, "TransformationConfigurations": [{ "Actions": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn": "FunctionArn", "FunctionPayload": "{\"res-x\": \"100\",\"res-y\": \"100\"}" } } }] }

    La configuration de point d'accès Object Lambda suivante montre une charge utile avec un seul paramètre et avec GetObject-Range, GetObject-PartNumber, HeadObject-Range et HeadObject-PartNumber activés.

    { "SupportingAccessPoint":"AccessPointArn", "CloudWatchMetricsEnabled": false, "AllowedFeatures": ["GetObject-Range", "GetObject-PartNumber", "HeadObject-Range", "HeadObject-PartNumber"], "TransformationConfigurations": [{ "Action": ["GetObject", "HeadObject", "ListObjects", "ListObjectsV2"], "ContentTransformation": { "AwsLambda": { "FunctionArn":"FunctionArn", "FunctionPayload": "{\"compression-amount\": \"5\"}" } } }] }
    Important

    Lorsque vous utilisez des points d'accès Object Lambda, vérifiez que la charge utile ne contient pas d'informations confidentielles.

Vous pouvez créer un point d'accès Object Lambda à l'aide de la configuration par défaut fournie par Amazon S3. Vous pouvez télécharger un AWS CloudFormation modèle et le code source d'une fonction Lambda depuis le GitHub référentiel et déployer ces ressources pour configurer un point d'accès Object Lambda fonctionnel.

Pour plus d'informations sur la modification de la configuration par défaut du AWS CloudFormation modèle, consultezAutomatisez la configuration de S3 Object Lambda à l'aide d'un modèle CloudFormation.

Pour plus d'informations sur la configuration des points d'accès Object Lambda AWS CloudFormation sans le modèle, consultez le guide AWS::S3ObjectLambda::AccessPointde l'AWS CloudFormation utilisateur.

Pour charger le package de déploiement de votre fonction Lambda
  1. Téléchargez le package de déploiement des AWS Lambda fonctions s3objectlambda_deployment_package.zip dans la configuration par défaut de S3 Object Lambda.

  2. Chargez le package dans un compartiment Amazon S3.

Pour créer un point d'accès Object Lambda à l'aide de la console AWS CloudFormation
  1. Téléchargez le AWS CloudFormation modèle dans la s3objectlambda_defaultconfig.yaml configuration par défaut de S3 Object Lambda.

  2. Connectez-vous à la console de AWS gestion et ouvrez la console à l'adresse AWS CloudFormation https://console.aws.amazon.com/cloudformation.

  3. Effectuez l’une des actions suivantes :

    • Si vous ne l'avez jamais utilisé AWS CloudFormation auparavant, sur la page d' AWS CloudFormation accueil, choisissez Create stack.

    • Si vous l'avez AWS CloudFormation déjà utilisé, dans le volet de navigation de gauche, choisissez Stacks. Choisissez Create stack (Créer une pile), puis With new resources (standard) (Avec de nouvelles ressources (standard)).

  4. Pour Prerequisite - Prepare template (Prérequis – Préparer le modèle), choisissez Template is ready (Le modèle est prêt).

  5. Pour Specify template (Spécifier le modèle), choisissez Upload a template file (Charger un fichier de modèle) et chargez s3objectlambda_defaultconfig.yaml.

  6. Choisissez Suivant.

  7. Sur la page Specify stack details (Spécifier les détails de la pile), saisissez un nom pour la pile.

  8. Dans la section Parameters (Paramètres), spécifiez les paramètres suivants, définis dans le modèle de pile :

    1. Pour CreateNewSupportingAccessPoint, effectuez l'une des opérations suivantes :

      • Si vous disposez déjà d'un point d'accès de prise en charge pour le compartiment S3 dans lequel vous avez chargé le modèle, choisissez false (faux).

      • Si vous souhaitez créer un nouveau point d'accès pour ce compartiment, choisissez true (vrai).

    2. Pour EnableCloudWatchMonitoring, choisissez vrai ou faux, selon que vous souhaitez activer les métriques de CloudWatch demande et les alarmes Amazon.

    3. (Facultatif) Pour LambdaFunctionPayload, ajoutez JSON le texte que vous souhaitez fournir à votre fonction Lambda en entrée. Vous pouvez configurer des charges utiles avec différents paramètres pour différents points d'accès Object Lambda qui invoquent la même fonction Lambda, augmentant ainsi la flexibilité de votre fonction Lambda.

      Important

      Lorsque vous utilisez des points d'accès Object Lambda, vérifiez que la charge utile ne contient pas d'informations confidentielles.

    4. Pour LambdaFunctionRuntime, entrez votre environnement d'exécution préféré pour la fonction Lambda. Les options disponibles sont nodejs14.x, python3.9 et java11.

    5. Pour LambdaFunctionS3 BucketName, entrez le nom du compartiment Amazon S3 dans lequel vous avez chargé le package de déploiement.

    6. Pour LambdaFunctionS3Key, entrez la clé d'objet Amazon S3 sur laquelle vous avez chargé le package de déploiement.

    7. Pour LambdaFunctionS3 ObjectVersion, entrez la version de l'objet Amazon S3 dans laquelle vous avez chargé le package de déploiement.

    8. Pour ObjectLambdaAccessPointName, entrez un nom pour votre point d'accès Object Lambda.

    9. Pour S3 BucketName, entrez le nom du compartiment Amazon S3 qui sera associé à votre point d'accès Object Lambda.

    10. Pour SupportingAccessPointName, entrez le nom de votre point d'accès compatible.

      Note

      Il s'agit d'un point d'accès associé au compartiment Amazon S3 que vous avez choisi à l'étape précédente. Si aucun point d'accès n'est associé à votre compartiment Amazon S3, vous pouvez configurer le modèle pour en créer un pour vous en choisissant true for CreateNewSupportingAccessPoint.

  9. Choisissez Suivant.

  10. Sur la page Configurer les options de pile, choisissez Suivant.

    Pour plus d'informations sur les paramètres facultatifs figurant sur cette page, consultez Définition des options des piles AWS CloudFormation dans le Guide de l'utilisateur AWS CloudFormation .

  11. Sur la page Review (Vérification), choisissez Create stack (Créer une pile).

Pour plus d'informations sur la configuration des points d'accès Object Lambda à l'aide de AWS CDK, consultez la section AWS::S3ObjectLambdaConstruct Library dans la AWS Cloud Development Kit (AWS CDK) API référence.