Activer Lambda Insights sur le déploiement d'une image de conteneur Lambda - Amazon CloudWatch

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.

Activer Lambda Insights sur le déploiement d'une image de conteneur Lambda

Pour activer Lambda Insights sur une fonction Lambda déployée en tant qu'image de conteneur, ajoutez des lignes dans votre Dockerfile. Ces lignes installent l'agent Lambda Insights comme une extension dans votre image de conteneur. Les lignes à ajouter sont différentes pour les conteneurs x86-64 et les conteneurs. ARM64

Note

L'agent Lambda Insights est uniquement pris en charge sur les environnements d'exécution Lambda qui utilisent Amazon Linux 2 et Amazon Linux 2023.

Déploiement d'images de conteneur x86-64

Pour activer Lambda Insights sur une fonction Lambda déployée en tant qu'image de conteneur exécutée sur un conteneur x86-64, ajoutez les lignes suivantes dans votre Dockerfile. Ces lignes installent l'agent Lambda Insights comme une extension dans votre image de conteneur.

RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm

Après avoir créé votre fonction Lambda, attribuez la politique CloudWatchLambdaInsightsExecutionRolePolicyIAM au rôle d'exécution de la fonction, et Lambda Insights est activé sur la fonction Lambda basée sur l'image du conteneur.

Note

Pour utiliser une ancienne version de l'extension Lambda Insights, remplacez l'URL des commandes précédentes par cette URL : https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.1.0.111.0.rpm. Seules les versions 1.0.111.0 et ultérieures de Lambda Insights sont actuellement disponibles. Pour de plus amples informations, veuillez consulter Versions disponibles de l'extension Lambda Insights.

Pour vérifier la signature du package d'agent Lambda Insights sur un serveur Linux
  1. Saisissez la commande suivante pour télécharger la clé publique.

    shell$ wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
  2. Saisissez la commande suivante pour importer la clé publique dans votre porte-clés.

    shell$ gpg --import lambda-insights-extension.gpg

    La sortie est similaire à ce qui suit. Notez la valeur key, car vous en aurez besoin lors de l'étape suivante. Dans cet exemple de sortie, la valeur clé est 848ABDC8.

    gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
  3. Vérifiez l'empreinte digitale en saisissant la commande suivante. Remplacez key-value avec la valeur de la clé de l'étape précédente.

    shell$ gpg --fingerprint key-value

    La chaîne d'empreinte digitale dans la sortie de cette commande doit être équivalente à E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8. Si la chaîne ne correspond pas, n'installez pas l'agent et contactez AWS.

  4. Après avoir vérifié l'empreinte digitale, vous pouvez l'utiliser pour vérifier le package d'agent Lambda Insights. Téléchargez le fichier signature de package en saisissant la commande suivante.

    shell$ wget https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm.sig
  5. Vérifiez la signature en saisissant la commande suivante.

    shell$ gpg --verify lambda-insights-extension.rpm.sig lambda-insights-extension.rpm

    Le résultat doit ressembler à ce qui suit :

    gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8

    La sortie attendue peut être composée d'un avertissement concernant une signature approuvée. Une clé est uniquement approuvée si vous ou une personne de confiance l'a signée. Cela ne signifie pas que la signature n'est pas valide, mais seulement que vous n'avez pas vérifié la clé publique.

    Si la sortie contient BAD signature, vérifiez si vous avez effectué les étapes correctement. Si vous recevez toujours une BAD signature réponse, contactez le fichier téléchargé AWS et évitez de l'utiliser.

Exemple x86-64

Cette section inclut un exemple d'activation de Lambda Insights sur une fonction Python Lambda basée sur une image de conteneur.

Exemple d'activation de Lambda Insights sur une image de conteneur Lambda
  1. Créez un fichier Dockerfile semblable à ce qui suit :

    FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension.rpm && \ rpm -U lambda-insights-extension.rpm && \ rm -f lambda-insights-extension.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
  2. Créez un fichier Python nommé index.py, qui est semblable à ce qui suit :

    def handler(event, context): return { 'message': 'Hello World!' }
  3. Placez le fichier Dockerfile et index.py dans le même répertoire. Ensuite, exécutez les étapes suivantes dans ce répertoire pour créer l'image Docker et la télécharger sur Amazon ECR.

    // create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
  4. Utilisez cette image Amazon ECR que vous venez de créer pour créer la fonction Lambda.

  5. Assignez la politique CloudWatchLambdaInsightsExecutionRolePolicyIAM au rôle d'exécution de la fonction.

ARM64 déploiement d'images de conteneurs

Pour activer Lambda Insights sur une fonction Lambda déployée sous forme d'image de conteneur exécutée sur un conteneur AL2 _aarch64 (qui utilise une ARM64 architecture), ajoutez les lignes suivantes dans votre Dockerfile. Ces lignes installent l'agent Lambda Insights comme une extension dans votre image de conteneur.

RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm

Après avoir créé votre fonction Lambda, attribuez la politique CloudWatchLambdaInsightsExecutionRolePolicyIAM au rôle d'exécution de la fonction, et Lambda Insights est activé sur la fonction Lambda basée sur l'image du conteneur.

Note

Pour utiliser une ancienne version de l'extension Lambda Insights, remplacez l'URL des commandes précédentes par cette URL : https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.1.0.229.0.rpm. Seules les versions 1.0.229.0 et ultérieures de Lambda Insights sont actuellement disponibles. Pour de plus amples informations, veuillez consulter Versions disponibles de l'extension Lambda Insights.

Pour vérifier la signature du package d'agent Lambda Insights sur un serveur Linux
  1. Saisissez la commande suivante pour télécharger la clé publique.

    shell$ wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/lambda-insights-extension.gpg
  2. Saisissez la commande suivante pour importer la clé publique dans votre porte-clés.

    shell$ gpg --import lambda-insights-extension.gpg

    La sortie est similaire à ce qui suit. Notez la valeur key, car vous en aurez besoin lors de l'étape suivante. Dans cet exemple de sortie, la valeur clé est 848ABDC8.

    gpg: key 848ABDC8: public key "Amazon Lambda Insights Extension" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1)
  3. Vérifiez l'empreinte digitale en saisissant la commande suivante. Remplacez key-value avec la valeur de la clé de l'étape précédente.

    shell$ gpg --fingerprint key-value

    La chaîne d'empreinte digitale dans la sortie de cette commande doit être équivalente à E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8. Si la chaîne ne correspond pas, n'installez pas l'agent et contactez AWS.

  4. Après avoir vérifié l'empreinte digitale, vous pouvez l'utiliser pour vérifier le package d'agent Lambda Insights. Téléchargez le fichier signature de package en saisissant la commande suivante.

    shell$ wget https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm.sig
  5. Vérifiez la signature en saisissant la commande suivante.

    shell$ gpg --verify lambda-insights-extension-arm64.rpm.sig lambda-insights-extension-arm64.rpm

    Le résultat doit ressembler à ce qui suit :

    gpg: Signature made Thu 08 Apr 2021 06:41:00 PM UTC using RSA key ID 848ABDC8 gpg: Good signature from "Amazon Lambda Insights Extension" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: E0AF FA11 FFF3 5BD7 349E E222 479C 97A1 848A BDC8

    La sortie attendue peut être composée d'un avertissement concernant une signature approuvée. Une clé est uniquement approuvée si vous ou une personne de confiance l'a signée. Cela ne signifie pas que la signature n'est pas valide, mais seulement que vous n'avez pas vérifié la clé publique.

    Si la sortie contient BAD signature, vérifiez si vous avez effectué les étapes correctement. Si vous recevez toujours une BAD signature réponse, contactez le fichier téléchargé AWS et évitez de l'utiliser.

ARM64 Exemple

Cette section inclut un exemple d'activation de Lambda Insights sur une fonction Python Lambda basée sur une image de conteneur.

Exemple d'activation de Lambda Insights sur une image de conteneur Lambda
  1. Créez un fichier Dockerfile semblable à ce qui suit :

    FROM public.ecr.aws/lambda/python:3.8 // extra lines to install the agent here RUN curl -O https://lambda-insights-extension-arm64.s3-ap-northeast-1.amazonaws.com/amazon_linux/lambda-insights-extension-arm64.rpm && \ rpm -U lambda-insights-extension-arm64.rpm && \ rm -f lambda-insights-extension-arm64.rpm COPY index.py ${LAMBDA_TASK_ROOT} CMD [ "index.handler" ]
  2. Créez un fichier Python nommé index.py, qui est semblable à ce qui suit :

    def handler(event, context): return { 'message': 'Hello World!' }
  3. Placez le fichier Dockerfile et index.py dans le même répertoire. Ensuite, exécutez les étapes suivantes dans ce répertoire pour créer l'image Docker et la télécharger sur Amazon ECR.

    // create an ECR repository aws ecr create-repository --repository-name test-repository // build the docker image docker build -t test-image . // sign in to AWS aws ecr get-login-password | docker login --username AWS --password-stdin "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com // tag the image docker tag test-image:latest "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest // push the image to ECR docker push "${ACCOUNT_ID}".dkr.ecr."${REGION}".amazonaws.com/test-repository:latest
  4. Utilisez cette image Amazon ECR que vous venez de créer pour créer la fonction Lambda.

  5. Assignez la politique CloudWatchLambdaInsightsExecutionRolePolicyIAM au rôle d'exécution de la fonction.