Déploiement d'une fonction Lambda à l'aide du AWS CDKAWS CloudShell - AWS CloudShell

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 CDKAWS CloudShell

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

Prérequis

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

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 nouveau dossier dans votre répertoire personnel.

    mkdir ~/docker-cdk-tutorial
  2. Accédez au dossier que vous avez créé.

    cd ~/docker-cdk-tutorial
  3. 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.
  4. 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
  5. À l'aide d'un éditeur de textenano cdk.json, par exemple, ouvrez le fichier et collez-y le contenu suivant.

    { "app": "node lib/docker-tutorial.js" }
  6. 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');
  7. 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" ]
  8. 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; };
  9. Utilisez le 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 à utiliser AWS CDK CLI pour synthétiser le projet et déployer les ressources.
  10. 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.

    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. Si vous rencontrez des erreurs ou des problèmes lorsque vous tentez de suivre ce didacticiel, consultez la section Dépannage de ce guide pour obtenir de l'aide.

Nettoyage

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