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
Créez un nouveau dossier dans votre répertoire personnel.
mkdir ~/docker-cdk-tutorial
Accédez au dossier que vous avez créé.
cd ~/docker-cdk-tutorial
Installez les AWS CDK dépendances localement.
npm install aws-cdk aws-cdk-lib
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
À 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" }
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');
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" ]
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; };
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
Appelez la fonction Lambda pour la confirmer et la vérifier.
aws lambda invoke --function-name DockerTutorialFunction out.json jq . out.json
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