

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.

# Exécuter des builds sur AWS Lambda ordinateur
<a name="lambda"></a>

AWS Lambda compute offre des vitesses de démarrage optimisées pour vos builds. AWS Lambda prend en charge des builds plus rapides grâce à une latence de démarrage plus faible. AWS Lambda évolue également automatiquement, de sorte que les builds n'attendent pas dans la file d'attente pour s'exécuter. Cependant, certains cas d'utilisation AWS Lambda ne sont pas compatibles, et s'ils vous concernent, utilisez le calcul EC2. Pour de plus amples informations, veuillez consulter [Limites du AWS Lambda calcul](#lambda.limitations).

**Topics**
+ [Quels outils et environnements d'exécution seront inclus dans les images docker de l'environnement d'exécution sélectionnées sur lesquelles s'exécutent ? AWS Lambda](#lambda.tools)
+ [Et si l'image sélectionnée n'inclut pas les outils dont j'ai besoin ?](#lambda.custom)
+ [Dans quelles régions le AWS Lambda calcul CodeBuild est-il possible ?](#lambda.regions)
+ [Limites du AWS Lambda calcul](#lambda.limitations)
+ [Déployer une fonction Lambda à l'aide de AWS SAM CodeBuild Lambda Java](sample-lambda-sam-gradle.md)
+ [Créez une application React d'une seule page avec CodeBuild Lambda Node.js](sample-lambda-react-nodejs.md)
+ [Mettre à jour une configuration de fonction Lambda avec CodeBuild Lambda Python](sample-lambda-boto3-python.md)

## Quels outils et environnements d'exécution seront inclus dans les images docker de l'environnement d'exécution sélectionnées sur lesquelles s'exécutent ? AWS Lambda
<a name="lambda.tools"></a>

AWS Lambda prend en charge les outils suivants : AWS CLI v2, AWS SAM CLI, git, go, Java, Node.js, Python, pip, Ruby et .NET.

## Et si l'image sélectionnée n'inclut pas les outils dont j'ai besoin ?
<a name="lambda.custom"></a>

Si l'image sélectionnée n'inclut pas les outils dont vous avez besoin, vous pouvez fournir une image Docker d'environnement personnalisée qui inclut les outils nécessaires.

**Note**  
Lambda ne prend pas en charge les fonctions qui utilisent les images de conteneur multi-architecture. Pour plus d'informations, voir [Création d'une fonction Lambda à l'aide d'une image de conteneur](https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-reqs) dans le Guide du *AWS Lambda développeur*.

Notez que vous avez besoin des autorisations Amazon ECR suivantes pour utiliser des images personnalisées pour le calcul Lambda :

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/image-repo"
        }
    ]
}
```

------

Notez également que cela `wget` doit être installé `curl` ou doit être installé pour pouvoir utiliser des images personnalisées.

## Dans quelles régions le AWS Lambda calcul CodeBuild est-il possible ?
<a name="lambda.regions"></a>

En CodeBuild, le AWS Lambda calcul est pris en charge dans les pays suivants Régions AWS : USA Est (Virginie du Nord), USA Est (Ohio), USA Ouest (Oregon), Asie-Pacifique (Mumbai), Asie-Pacifique (Singapour), Asie-Pacifique (Sydney), Asie-Pacifique (Tokyo), Europe (Francfort), Europe (Irlande) et Amérique du Sud (São Paulo). Pour plus d'informations sur Régions AWS les CodeBuild zones disponibles, consultez la section [AWS Services par région](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Limites du AWS Lambda calcul
<a name="lambda.limitations"></a>

Certains cas d'utilisation AWS Lambda ne sont pas compatibles, et s'ils vous concernent, utilisez le calcul EC2 :
+ AWS Lambda ne prend pas en charge les outils qui nécessitent des autorisations root. Pour des outils tels que `yum` ou`rpm`, utilisez le type de calcul EC2 ou d'autres outils ne nécessitant pas d'autorisations root.
+ AWS Lambda ne prend pas en charge les builds ou les exécutions de Docker.
+ AWS Lambda ne prend pas en charge l'écriture dans des fichiers externes`/tmp`. Les gestionnaires de packages inclus sont configurés pour utiliser le `/tmp` répertoire par défaut pour le téléchargement et le référencement des packages.
+ AWS Lambda ne prend pas en charge le type d'environnement `LINUX_GPU_CONTAINER` et n'est pas pris en charge sur Windows Server Core 2019.
+ AWS Lambda ne prend pas en charge la mise en cache, les délais de génération personnalisés, les délais d'attente, les badges de génération, le mode privilégié, les environnements d'exécution personnalisés ou les durées d'exécution supérieures à 15 minutes.
+ AWS Lambda ne prend pas en charge la connectivité VPC, une plage fixe d'adresses IP CodeBuild sources, le système EFS, l'installation de certificats ou l'accès SSH avec le gestionnaire de session.

# Déployer une fonction Lambda à l'aide de AWS SAM CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle"></a>

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](https://github.com/aws/serverless-application-model) 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 construction, 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érentiel
<a name="sample-lambda-sam-gradle.set-up-repo"></a>

Créez un AWS SAM `Hello World` projet à l'aide de la AWS SAM CLI.

**Pour créer votre AWS SAM projet**

1. Suivez les instructions du *guide du AWS Serverless Application Model développeur* pour [installer la AWS SAM CLI](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/install-sam-cli.html) sur votre machine locale.

1. 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>
   ```

1. Téléchargez le dossier AWS SAM du projet dans un référentiel source compatible. Pour obtenir la liste des types de sources pris en charge, consultez [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Création d'un projet CodeBuild Lambda Java
<a name="sample-lambda-sam-gradle.create-project"></a>

Créez un projet AWS CodeBuild Lambda Java et configurez les autorisations IAM nécessaires pour le build.

**Pour créer votre projet CodeBuild Lambda Java**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Create build project**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. 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 construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

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

1. Dans **Environment (Environnement)** :
   + Pour **Compute**, sélectionnez **Lambda**.
   + Pour **Runtime (s)**, sélectionnez **Java**.
   + Pour **Image**, sélectionnez **aws/codebuild/amazonlinux-x86\$164-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**. Cela sera nécessaire lorsque vous mettrez à jour les autorisations IAM du projet ultérieurement dans cet exemple.

1. Choisissez **Créer un projet de génération**.

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. 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 construction, en choisissant **Modifier**, **Environnement**, puis **Rôle de service**.

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

1. Ajoutez la politique intégrée 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](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) 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
<a name="sample-lambda-sam-gradle.set-up-buildspec"></a>

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

**Pour configurer le buildspec de votre projet**

1. Dans la CodeBuild console, sélectionnez votre projet de build, puis choisissez **Edit** et **Buildspec**.

1. Dans **Buildspec**, choisissez **Insérer des commandes de construction**, puis **Passer** à l'éditeur.

1. Supprimez les commandes de construction préremplies et collez les spécifications de construction suivantes.

   ```
   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
   ```

1. Choisissez **Update buildspec (Mettre à jour buildspec)**.

## Déployez votre infrastructure AWS SAM Lambda
<a name="sample-lambda-sam-gradle.deploy"></a>

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 permettra de créer, de tester et de déployer automatiquement votre AWS SAM application pour AWS Lambda l'utiliser CloudFormation.

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

1. 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 s'ouvrir avec le message`"message": "hello world"`.

## Nettoyez votre infrastructure
<a name="sample-lambda-sam-gradle.clean-up"></a>

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 le`aws-sam-cli-managed-default`.

1. Dans **Ressources**, videz le compartiment de déploiement`SamCliSourceBucket`.

1. Supprimez la `aws-sam-cli-managed-default` pile.

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

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

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

# Créez une application React d'une seule page avec CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs"></a>

[Create React App](https://create-react-app.dev/) est un moyen de créer des applications React d'une seule page. L'exemple de fichier Node.js suivant utilise Node.js pour créer les artefacts source à partir de Create React App et renvoie les artefacts de construction.

## Configuration de votre référentiel source et de votre compartiment d'artefacts
<a name="sample-lambda-react-nodejs.set-up-repo"></a>

Créez un référentiel source pour votre projet à l'aide de yarn et de Create React App.

**Pour configurer le référentiel source et le compartiment d'artefacts**

1. Sur votre machine locale, lancez-le `yarn create react-app <app-name>` pour créer une application React simple.

1. Téléchargez le dossier du projet de l'application React dans un référentiel source compatible. Pour obtenir la liste des types de sources pris en charge, consultez [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Création d'un projet CodeBuild Lambda Node.js
<a name="sample-lambda-react-nodejs.create-project"></a>

Créez un projet AWS CodeBuild Lambda Node.js.

**Pour créer votre projet CodeBuild Lambda Node.js**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Créer un projet de construction**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. 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 construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

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

1. Dans **Environment (Environnement)** :
   + Pour **Compute**, sélectionnez **Lambda**.
   + Pour **Runtime (s)**, sélectionnez **Node.js**.
   + Pour **Image**, sélectionnez **aws/codebuild/amazonlinux-x86\$164-lambda-standard:nodejs20**.

1. Dans **Artefacts**:
   + Pour **Type**, sélectionnez **Amazon S3**.
   + Dans le **champ Nom du compartiment**, sélectionnez le compartiment d'artefacts du projet que vous avez créé précédemment.
   + Pour l'**emballage des artefacts**, sélectionnez **Zip**.

1. Choisissez **Créer un projet de génération**.

## Configurer le buildspec du projet
<a name="sample-lambda-react-nodejs.set-up-buildspec"></a>

Pour créer votre application React, CodeBuild lit et exécute les commandes de construction à partir d'un fichier buildspec.

**Pour configurer le buildspec de votre projet**

1. Dans la CodeBuild console, sélectionnez votre projet de build, puis choisissez **Edit** et **Buildspec**.

1. Dans **Buildspec**, choisissez **Insérer des commandes de construction**, puis **Basculer vers** l'éditeur.

1. Supprimez les commandes de construction préremplies et collez les spécifications de construction suivantes.

   ```
   version: 0.2
   phases:
     build:
       commands:
         - yarn
         - yarn add --dev jest-junit @babel/plugin-proposal-private-property-in-object
         - yarn run build
         - yarn run test -- --coverage --watchAll=false --testResultsProcessor="jest-junit" --detectOpenHandles
   artifacts:
     name: "build-output"
     files:
       - "**/*"
   reports:
     test-report:
       files:
         - 'junit.xml'
       file-format: 'JUNITXML'
     coverage-report:
       files:
         - 'coverage/clover.xml'
       file-format: 'CLOVERXML'
   ```

1. Choisissez **Update buildspec (Mettre à jour buildspec)**.

## Créez et exécutez votre application React
<a name="sample-lambda-react-nodejs.build"></a>

Créez l'application React sur CodeBuild Lambda, téléchargez les artefacts de construction et exécutez l'application React localement.

**Pour créer et exécuter votre application React**

1. Choisissez **Démarrer la génération**.

1. Une fois le build terminé, accédez au bucket d'artefacts de votre projet Amazon S3 et téléchargez l'artefact de l'application React.

1. Décompressez l'artefact de construction de React et placez-le `run npm install -g serve && serve -s build` dans le dossier du projet.

1. La `serve` commande servira le site statique sur un port local et imprimera le résultat sur votre terminal. Vous pouvez visiter l'URL localhost ci-dessous `Local:` dans la sortie du terminal pour afficher votre application React.

Pour en savoir plus sur la gestion du déploiement d'un serveur basé sur React, voir [Créer un déploiement d'applications React](https://create-react-app.dev/docs/deployment/).

## Nettoyez votre infrastructure
<a name="sample-lambda-react-nodejs.clean-up"></a>

Pour éviter des frais supplémentaires pour les ressources que vous avez utilisées au cours de ce didacticiel, supprimez les ressources créées pour votre CodeBuild projet.

**Pour nettoyer votre infrastructure**

1. Supprimer les artefacts de votre projet (compartiment Amazon S3)

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

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

# Mettre à jour une configuration de fonction Lambda avec CodeBuild Lambda Python
<a name="sample-lambda-boto3-python"></a>

L'exemple Python suivant utilise [Boto3](https://aws.amazon.com/sdk-for-python/) et Lambda CodeBuild Python pour mettre à jour la configuration d'une fonction Lambda. Cet exemple peut être étendu pour gérer d'autres AWS ressources par programmation. Pour plus d'informations, consultez la documentation de [Boto3](https://aws.amazon.com/sdk-for-python/).

## Conditions préalables
<a name="sample-lambda-boto3-python.prerequisites"></a>

Créez ou trouvez une fonction Lambda dans votre compte.

Cet exemple suppose que vous avez déjà créé une fonction Lambda dans votre compte et que vous l'utiliserez CodeBuild pour mettre à jour les variables d'environnement de la fonction Lambda. Pour plus d'informations sur la configuration d'une fonction Lambda via CodeBuild, consultez l'[Déployer une fonction Lambda à l'aide de AWS SAM CodeBuild Lambda Java](sample-lambda-sam-gradle.md)exemple ou rendez-vous sur. [AWS Lambda](https://aws.amazon.com/lambda/)

## Configurez votre référentiel de sources
<a name="sample-lambda-boto3-python.set-up-repo"></a>

Créez un dépôt source pour stocker votre script python Boto3.

**Pour configurer le référentiel source**

1. Copiez le script python suivant dans un nouveau fichier appelé`update_lambda_environment_variables.py`.

   ```
   import boto3
   from os import environ
   
   
   def update_lambda_env_variable(lambda_client):
       lambda_function_name = environ['LAMBDA_FUNC_NAME']
       lambda_env_variable = environ['LAMBDA_ENV_VARIABLE']
       lambda_env_variable_value = environ['LAMBDA_ENV_VARIABLE_VALUE']
       print("Updating lambda function " + lambda_function_name + " environment variable "
             + lambda_env_variable + " to " + lambda_env_variable_value)
       lambda_client.update_function_configuration(
           FunctionName=lambda_function_name,
           Environment={
               'Variables': {
                   lambda_env_variable: lambda_env_variable_value
               }
           },
       )
   
   
   if __name__ == "__main__":
       region = environ['AWS_REGION']
       client = boto3.client('lambda', region)
       update_lambda_env_variable(client)
   ```

1. Téléchargez le fichier python dans un référentiel source compatible. Pour obtenir la liste des types de sources pris en charge, consultez [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html).

## Création d'un projet CodeBuild Lambda Python
<a name="sample-lambda-boto3-python.create-project"></a>

Créez un projet CodeBuild Lambda Python.

**Pour créer votre projet CodeBuild Lambda Java**

1. Ouvrez la AWS CodeBuild console sur [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1.  Si une page CodeBuild d'informations s'affiche, choisissez **Create build project**. Sinon, dans le volet de navigation, développez **Build****, choisissez Build projects**, puis **Create build project**. 

1. 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 construction pour aider les autres utilisateurs à comprendre à quoi sert ce projet.

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

1. Dans **Environment (Environnement)** :
   + Pour **Compute**, sélectionnez **Lambda**.
   + Pour **Runtime (s)**, sélectionnez **Python**.
   + Pour **Image**, sélectionnez **aws/codebuild/amazonlinux-x86\$164-lambda-standard:python3.12**.
   + Pour **Rôle de service**, laissez l'option **Nouveau rôle de service** sélectionnée. Notez le **nom du rôle**. Cela sera nécessaire lorsque vous mettrez à jour les autorisations IAM du projet ultérieurement dans cet exemple.

1. Choisissez **Créer un projet de génération**.

1. Ouvrez la console IAM à l’adresse [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). 

1. 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 construction, en choisissant **Modifier**, **Environnement**, puis **Rôle de service**.

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

1. Ajoutez la politique intégrée 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](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) dans le *Guide de l’utilisateur IAM*.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "UpdateLambdaPermissions",
               "Effect": "Allow",
               "Action": [
                   "lambda:UpdateFunctionConfiguration"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

------

## Configurer le buildspec du projet
<a name="sample-lambda-boto3-python.set-up-buildspec"></a>

Afin de mettre à jour la fonction Lambda, le script lit les variables d'environnement depuis le buildspec pour trouver le nom, le nom de la variable d'environnement et la valeur de la variable d'environnement de la fonction Lambda.

**Pour configurer le buildspec de votre projet**

1. Dans la CodeBuild console, sélectionnez votre projet de build, puis choisissez **Edit** et **Buildspec**.

1. Dans **Buildspec**, choisissez **Insérer des commandes de construction**, puis **Passer** à l'éditeur.

1. Supprimez les commandes de construction préremplies et collez les spécifications de construction suivantes.

   ```
   version: 0.2
   env:
     variables:
       LAMBDA_FUNC_NAME: "<lambda-function-name>"
       LAMBDA_ENV_VARIABLE: "FEATURE_ENABLED"
       LAMBDA_ENV_VARIABLE_VALUE: "true"
   phases:
     install:
       commands:
          - pip3 install boto3
     build:
       commands:
          - python3 update_lambda_environment_variables.py
   ```

1. Choisissez **Update buildspec (Mettre à jour buildspec)**.

## Mettez à jour votre configuration Lambda
<a name="sample-lambda-boto3-python.update"></a>

Utilisez CodeBuild Lambda Python pour mettre à jour automatiquement la configuration de votre fonction Lambda.

**Pour mettre à jour la configuration de votre fonction Lambda**

1. Choisissez **Démarrer la génération**.

1. Une fois le build terminé, accédez à votre fonction Lambda.

1. Sélectionnez **Configuration**, puis Variables d'**environnement**. Vous devriez voir une nouvelle variable d'environnement contenant une clé `FEATURE_ENABLED` et une valeur`true`.

## Nettoyez votre infrastructure
<a name="sample-lambda-boto3-python.clean-up"></a>

Pour éviter des frais supplémentaires pour les ressources que vous avez utilisées au cours de ce didacticiel, supprimez les ressources créées pour votre CodeBuild projet.

**Pour nettoyer votre infrastructure**

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

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

1. Si vous avez créé une fonction Lambda aux fins de cet exemple, choisissez **Actions** et **fonction Supprimer pour nettoyer votre fonction** Lambda.

## Extensions
<a name="sample-lambda-boto3-python.extensions"></a>

Si vous souhaitez étendre cet exemple pour gérer d'autres AWS ressources à l'aide de AWS CodeBuild Lambda Python :
+ Mettez à jour le script Python pour modifier les nouvelles ressources à l'aide de Boto3.
+ Mettez à jour le rôle IAM associé à votre CodeBuild projet afin d'obtenir des autorisations pour les nouvelles ressources.
+ Ajoutez toutes les nouvelles variables d'environnement associées aux nouvelles ressources à vos spécifications de construction.