Tutorial: distribuzione di una funzione Lambda utilizzando AWS CDK - AWS CloudShell

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: distribuzione di una funzione Lambda utilizzando AWS CDK

Questo tutorial mostra come distribuire una funzione Lambda sul tuo account utilizzando il. AWS Cloud Development Kit (AWS CDK)

Prerequisiti

  • Avvia il tuo account per utilizzarlo con. AWS CDK Per informazioni sul bootstrap conAWS CDK, consulta Bootstrapping nella Guida per sviluppatori v2. AWS CDK Se non hai ancora avviato l'account, puoi iniziare. cdk bootstrap CloudShell

  • Assicurati di disporre delle autorizzazioni appropriate per distribuire risorse sul tuo account. Le autorizzazioni di amministratore sono consigliate.

Procedura del tutorial

Il seguente tutorial illustra come distribuire una funzione Lambda basata su container Docker utilizzando. AWS CDK

  1. Crea una nuova cartella nella tua home directory.

    mkdir ~/docker-cdk-tutorial
  2. Vai alla cartella che hai creato.

    cd ~/docker-cdk-tutorial
  3. Installa le AWS CDK dipendenze localmente.

    npm install aws-cdk aws-cdk-lib
    Immagine del comando usato per installare le AWS CDK dipendenze.
  4. Crea un AWS CDK progetto scheletrico nella cartella che hai creato.

    touch cdk.json mkdir lib touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
  5. Utilizzando un editor di testo, ad esempionano cdk.json, aprite il file e incollate il seguente contenuto al suo interno.

    { "app": "node lib/docker-tutorial.js" }
  6. Apri il lib/docker-tutorial.js file e incolla il seguente contenuto al suo interno.

    // 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. Apri lib/Dockerfile e incolla il seguente contenuto al suo interno.

    # 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. Apri il lib/hello.js file e incolla il seguente contenuto al suo interno.

    // 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. Utilizza la AWS CDK CLI per sintetizzare il progetto e distribuire le risorse. Devi avviare il tuo account.

    npx cdk synth npx cdk deploy --require-approval never
    Immagine del comando per utilizzare la AWS CDK CLI per sintetizzare il progetto e distribuire le risorse.
  10. Invoca la funzione Lambda per confermarla e verificarla.

    aws lambda invoke --function-name DockerTutorialFunction out.json jq . out.json
    Immagine del comando usato per richiamare la funzione Lambda.

    Ora hai distribuito con successo una funzione Lambda basata su container Docker utilizzando. AWS CDK Per ulteriori informazioni suAWS CDK, consulta la Guida per sviluppatori v2. AWS CDK Se riscontri errori o riscontri problemi durante il tentativo di completare questo tutorial, consulta la sezione Risoluzione dei problemi di questa guida per ricevere assistenza.

Eliminazione

Ora hai distribuito con successo una funzione Lambda basata su container Docker utilizzando. AWS CDK All'interno del AWS CDK progetto, esegui il comando seguente per eliminare le risorse associate. Ti verrà richiesto di confermare l'eliminazione.

  • npx cdk destroy DockerTutorialStack
  • Per rimuovere i file e le risorse che hai creato in questo tutorial dal tuo AWS CloudShell ambiente, esegui il comando seguente.

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