

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éploiement d'une fonction Lambda à l'aide du AWS CDK CloudShell
<a name="tutorial-docker-cdk-deploy"></a>

Ce didacticiel explique comment déployer une fonction Lambda sur votre compte à l'aide de l' AWS Cloud Development Kit (AWS CDK) entrée. CloudShell

## Conditions préalables
<a name="prerequisites-docker-cdk-deploy"></a>
+ Démarrez votre compte pour l'utiliser avec le AWS CDK. *Pour plus d'informations sur le démarrage avec AWS CDK, consultez la section [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) dans le guide du développeur de la AWS CDK version v2.* Si vous n'avez pas démarré le compte, vous pouvez vous connecter. `cdk bootstrap` CloudShell
+ Assurez-vous de disposer des autorisations appropriées pour déployer des ressources sur votre compte. Les autorisations d'administrateur sont recommandées.

## Procédure du didacticiel
<a name="tutorial-docker-cdk-deploy-steps"></a>

Le didacticiel suivant explique comment déployer une fonction Lambda basée sur un conteneur Docker à l'aide du in. AWS CDK CloudShell

1. Créez un dossier dans votre répertoire personnel.

   ```
   mkdir ~/docker-cdk-tutorial
   ```

1. Accédez au dossier que vous avez créé.

   ```
   cd ~/docker-cdk-tutorial
   ```

1. Installez les AWS CDK dépendances localement.

   ```
   npm install aws-cdk aws-cdk-lib
   ```  
![\[Image de la commande utilisée pour installer les AWS CDK dépendances.\]](http://docs.aws.amazon.com/fr_fr/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%201-setup.png)

1. Créez un AWS CDK projet squelette dans le dossier que vous avez créé.

   ```
   touch cdk.json
   mkdir lib
   touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
   ```

1. À l'aide d'un éditeur de texte`nano cdk.json`, par exemple, ouvrez le fichier et collez-y le contenu suivant.

   ```
   {
     "app": "node lib/docker-tutorial.js"
   }
   ```

1. Ouvrez le `lib/docker-tutorial.js` fichier et collez-y le contenu suivant.

   ```
   // this file defines the CDK constructs we want to deploy
   
   const { App, Stack } = require('aws-cdk-lib');
   const { DockerImageFunction, DockerImageCode } = require('aws-cdk-lib/aws-lambda');
   const path = require('path');
   
   // create an application
   const app = new App();
   
   // define stack
   class DockerTutorialStack extends Stack {
     constructor(scope, id, props) {
       super(scope, id, props);
   
       // define lambda that uses a Docker container
       const dockerfileDir = path.join(__dirname);
       new DockerImageFunction(this, 'DockerTutorialFunction', {
         code: DockerImageCode.fromImageAsset(dockerfileDir),
         functionName: 'DockerTutorialFunction',
       });
     }
   }
   
   // instantiate stack
   new DockerTutorialStack(app, 'DockerTutorialStack');
   ```

1. Ouvrez le `lib/Dockerfile` et collez-y le contenu suivant.

   ```
   # Use a NodeJS 20.x runtime
   FROM public.ecr.aws/lambda/nodejs:20
   
   # Copy the function code to the LAMBDA_TASK_ROOT directory
   # This environment variable is provided by the lambda base image
   COPY hello.js ${LAMBDA_TASK_ROOT}
   
   # Set the CMD to the function handler
   CMD [ "hello.handler" ]
   ```

1. Ouvrez le `lib/hello.js` fichier et collez-y le contenu suivant.

   ```
   // define the handler
   exports.handler = async (event) => {
     // simply return a friendly success response
     const response = {
       statusCode: 200,
       body: JSON.stringify('Hello, World!'),
     };
     return response;
   };
   ```

1. Utilisez la AWS CDK CLI pour synthétiser le projet et déployer les ressources. Vous devez démarrer votre compte.

   ```
   npx cdk synth
   npx cdk deploy --require-approval never
   ```  
![\[Image de la commande permettant d'utiliser la AWS CDK CLI pour synthétiser le projet et déployer les ressources.\]](http://docs.aws.amazon.com/fr_fr/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%203-cdk-deploy-build.png)

1. Appelez la fonction Lambda pour la confirmer et la vérifier.

   ```
   aws lambda invoke --function-name DockerTutorialFunction out.json
   jq . out.json
   ```  
![\[Image de la commande utilisée pour appeler la fonction Lambda.\]](http://docs.aws.amazon.com/fr_fr/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%205-lambda-invoke.png)

   Vous avez maintenant déployé avec succès une fonction Lambda basée sur un conteneur Docker à l'aide du. AWS CDK Pour plus d'informations AWS CDK, consultez le [guide du développeur de la AWS CDK version v2](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html). Si vous rencontrez des erreurs ou des problèmes en essayant de suivre ce didacticiel, consultez la section [Dépannage](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) de ce guide pour obtenir de l'aide.

## Nettoyage
<a name="clean-up-docker-cdk-deploy"></a>

Vous avez maintenant déployé avec succès une fonction Lambda basée sur un conteneur Docker à l'aide du. AWS CDK Dans le AWS CDK projet, exécutez la commande suivante pour supprimer les ressources associées. Il vous sera demandé de confirmer la suppression.
+ 

  ```
  npx cdk destroy DockerTutorialStack
  ```
+ Pour supprimer de votre AWS CloudShell environnement les fichiers et les ressources que vous avez créés dans ce didacticiel, exécutez la commande suivante.

  ```
  cd ~
  rm -rf ~/docker-cli-tutorial
  ```