View a markdown version of this page

Déployez une fonction Lambda à l'aide de AWS SAM avec CodeBuild Lambda Java - AWS CodeBuild

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.

Déployez une fonction Lambda à l'aide de AWS SAM avec CodeBuild Lambda Java

The AWS Serverless Application Model (AWS SAM) est un framework open source permettant de créer des applications sans serveur. Pour plus d'informations, consultez le AWS Serverless Application Model référentiel sur GitHub. L'exemple Java suivant utilise Gradle pour créer et tester une AWS Lambda fonction. Ensuite, la AWS SAM CLI est utilisée pour déployer le CloudFormation modèle et le bundle de déploiement. Grâce à CodeBuild Lambda, les étapes de génération, de test et de déploiement sont toutes gérées automatiquement, ce qui permet de mettre à jour rapidement l'infrastructure sans intervention manuelle lors d'une seule génération.

Configurez votre AWS SAM référentiels

Créez un AWS SAM Hello World projet à l'aide de l' AWS SAM interface de ligne de commande.

Pour créer votre AWS SAM Project
  1. Suivez les instructions du Guide du AWS Serverless Application Model développeur pour installer la AWS SAM CLI sur votre machine locale.

  2. Exécutez sam init et sélectionnez la configuration de projet suivante.

    Which template source would you like to use?: 1 - AWS Quick Start Templates Choose an AWS Quick Start application template: 1 - Hello World Example Use the most popular runtime and package type? (Python and zip) [y/N]: N Which runtime would you like to use?: 8 - java21 What package type would you like to use?: 1 - Zip Which dependency manager would you like to use?: 1 - gradle Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]: N Project name [sam-app]: <insert project name>
  3. Téléchargez le dossier AWS SAM du projet dans un référentiel source pris en charge. Pour obtenir la liste des types de sources pris en charge, consultez ProjectSource.

Création d'un projet CodeBuild Lambda Java

Créez un projet AWS CodeBuild Lambda Java et configurez les autorisations IAM nécessaires à la génération.

Pour créer votre projet CodeBuild Lambda Java
  1. Ouvrez la AWS CodeBuild console à l'adresse https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Si une page CodeBuild d'informations s'affiche, choisissez Créer un projet de construction. Sinon, dans le volet de navigation, développez Générer, choisissez Créer des projets, puis choisissez Créer un projet de génération.

  3. Dans Nom du projet, saisissez un nom pour ce projet de génération. Les noms des projets de construction doivent être uniques pour chaque AWS compte. Vous pouvez également inclure une description facultative du projet de création pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

  4. Dans Source, sélectionnez le référentiel source dans lequel se trouve votre AWS SAM projet.

  5. Dans Environment (Environnement) :

    • Pour Compute, sélectionnez Lambda.

    • Pour Runtime (s), sélectionnez Java.

    • Dans Image, sélectionnez aws/codebuild /amazonlinux-x86_64-lambda-standard:corretto21.

    • Pour Rôle de service, laissez l'option Nouveau rôle de service sélectionnée. Notez le nom du rôle. Vous en aurez besoin lorsque vous mettrez à jour les autorisations IAM du projet ultérieurement dans cet exemple.

  6. Choisissez Créer un projet de génération.

  7. Ouvrez la console IAM à l’adresse https://console.aws.amazon.com/iam/.

  8. Dans le volet de navigation, choisissez Rôles et sélectionnez le rôle de service associé à votre projet. Vous pouvez trouver votre rôle dans le projet en CodeBuild sélectionnant votre projet de génération, en choisissant Modifier, Environnement, puis Rôle de service.

  9. Sélectionnez l'onglet Trust relationships (Relations d'approbation), puis Edit trust policy (Modifier la politique d'approbation).

  10. Ajoutez la politique en ligne suivante à votre rôle IAM. Cela sera utilisé pour déployer votre AWS SAM infrastructure ultérieurement. Pour plus d’informations, consultez Ajout et suppression d’autorisations basées sur l’identité IAM dans le Guide de l’utilisateur IAM.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": "arn:aws:iam::*:role/Service*" } ] }

Configurer le buildspec du projet

Afin de créer, de tester et de déployer votre fonction Lambda, CodeBuild lit et exécute les commandes de génération à partir d'une spécification de construction.

Pour configurer votre projet buildspec
  1. Dans la CodeBuild console, sélectionnez votre projet de build, puis choisissez Modifier et Buildspec.

  2. Dans Buildspec, choisissez Insérer des commandes de génération, puis Passez à l'éditeur.

  3. Supprimez les commandes de construction préremplies et collez-les dans la spécification de construction suivante.

    version: 0.2 env: variables: GRADLE_DIR: "HelloWorldFunction" phases: build: commands: - echo "Running unit tests..." - cd $GRADLE_DIR; gradle test; cd .. - echo "Running build..." - sam build --template-file template.yaml - echo "Running deploy..." - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml - yes | sam deploy
  4. Choisissez Update buildspec (Mettre à jour buildspec).

Déployez votre AWS SAM Infrastructure Lambda

Utilisez CodeBuild Lambda pour déployer automatiquement votre infrastructure Lambda

Pour déployer votre infrastructure Lambda
  1. Choisissez Démarrer la génération. Cela créera, testera et déploiera automatiquement votre AWS SAM application pour AWS Lambda l'utiliser CloudFormation.

  2. Une fois la compilation terminée, accédez à la AWS Lambda console et recherchez votre nouvelle fonction Lambda sous le nom du AWS SAM projet.

  3. Testez votre fonction Lambda en sélectionnant API Gateway dans la vue d'ensemble des fonctions, puis en cliquant sur l'URL du point de terminaison de l'API. Vous devriez voir une page contenant le message s'ouvrir"message": "hello world".

Nettoyez votre infrastructure

Pour éviter des frais supplémentaires pour les ressources que vous avez utilisées au cours de ce didacticiel, supprimez les ressources créées par votre AWS SAM modèle et CodeBuild.

Pour nettoyer votre infrastructure
  1. Accédez à la CloudFormation console et sélectionnez leaws-sam-cli-managed-default.

  2. Dans Ressources, videz le compartiment de déploiementSamCliSourceBucket.

  3. Supprimez la aws-sam-cli-managed-default pile.

  4. Supprimez la CloudFormation pile associée à votre AWS SAM projet. Cette pile doit porter le même nom que votre AWS SAM projet.

  5. Accédez à la CloudWatch console et supprimez les groupes de CloudWatch journaux associés à votre CodeBuild projet.

  6. Accédez à la CodeBuild console et supprimez votre CodeBuild projet en choisissant Supprimer le projet de construction.