Tutorial: Implementación de una función Lambda mediante el AWS CDK - AWS CloudShell

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tutorial: Implementación de una función Lambda mediante el AWS CDK

En este tutorial se muestra cómo implementar una función de Lambda en su cuenta mediante. AWS Cloud Development Kit (AWS CDK)

Requisitos previos

  • Inicie su cuenta para usarla con. AWS CDK Para obtener información sobre el arranque conAWS CDK, consulte Bootstrapping en la Guía para desarrolladores de la versión 2. AWS CDK Si no has iniciado la cuenta, puedes entrar corriendo. cdk bootstrap CloudShell

  • Asegúrate de tener los permisos adecuados para implementar recursos en tu cuenta. Se recomiendan permisos de administrador.

Procedimiento tutorial

El siguiente tutorial describe cómo implementar una función Lambda basada en contenedores de Docker mediante. AWS CDK

  1. Cree una nueva carpeta en su directorio principal.

    mkdir ~/docker-cdk-tutorial
  2. Navega hasta la carpeta que creaste.

    cd ~/docker-cdk-tutorial
  3. Instale las AWS CDK dependencias localmente.

    npm install aws-cdk aws-cdk-lib
    Imagen del comando utilizado para instalar las AWS CDK dependencias.
  4. Cree un AWS CDK proyecto básico en la carpeta que creó.

    touch cdk.json mkdir lib touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
  5. Con un editor de texto, por ejemplonano cdk.json, abra el archivo y pegue el siguiente contenido en él.

    { "app": "node lib/docker-tutorial.js" }
  6. Abre el lib/docker-tutorial.js archivo y pega el siguiente contenido en él.

    // 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. Abre lib/Dockerfile y pega el siguiente contenido en él.

    # 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. Abre el lib/hello.js archivo y pega el siguiente contenido en él.

    // 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. Utilice la AWS CDK CLI para sintetizar el proyecto e implementar los recursos. Debe iniciar su cuenta.

    npx cdk synth npx cdk deploy --require-approval never
    Imagen del comando para usar la AWS CDK CLI para sintetizar el proyecto e implementar los recursos.
  10. Invoque la función Lambda para confirmarla y verificarla.

    aws lambda invoke --function-name DockerTutorialFunction out.json jq . out.json
    Imagen del comando utilizado para invocar la función Lambda.

    Ahora ha implementado correctamente una función Lambda basada en contenedores de Docker mediante. AWS CDK Para obtener más informaciónAWS CDK, consulte la Guía para desarrolladores de la versión 2AWS CDK. Si encuentra errores o problemas al intentar completar este tutorial, consulte la sección de solución de problemas de esta guía para obtener ayuda.

Limpieza

Ahora ha implementado correctamente una función Lambda basada en contenedores de Docker mediante. AWS CDK Dentro del AWS CDK proyecto, ejecute el siguiente comando para eliminar los recursos asociados. Se le pedirá que confirme la eliminación.

  • npx cdk destroy DockerTutorialStack
  • Para eliminar de su AWS CloudShell entorno los archivos y recursos que creó en este tutorial, ejecute el siguiente comando.

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