

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à.

# Implementazione di una funzione Lambda utilizzando in AWS CDK CloudShell
<a name="tutorial-docker-cdk-deploy"></a>

Questo tutorial mostra come implementare una funzione Lambda sul tuo account utilizzando AWS Cloud Development Kit (AWS CDK) in. CloudShell

## Prerequisiti
<a name="prerequisites-docker-cdk-deploy"></a>
+ Avvia il tuo account per utilizzarlo con. AWS CDK*Per informazioni sul bootstrap con AWS CDK, consulta [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) 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
<a name="tutorial-docker-cdk-deploy-steps"></a>

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

1. Crea una nuova cartella nella directory home.

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

1. Vai alla cartella che hai creato.

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

1. Installa le AWS CDK dipendenze localmente.

   ```
   npm install aws-cdk aws-cdk-lib
   ```  
![\[Immagine del comando usato per installare le AWS CDK dipendenze.\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%201-setup.png)

1. 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
   ```

1. Utilizzando un editor di testo, ad esempio`nano cdk.json`, aprite il file e incollate il seguente contenuto al suo interno.

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

1. 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');
   ```

1. 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" ]
   ```

1. 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;
   };
   ```

1. 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.\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%203-cdk-deploy-build.png)

1. 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.\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%205-lambda-invoke.png)

   Ora hai distribuito con successo una funzione Lambda basata su container Docker utilizzando. AWS CDK[Per ulteriori informazioni su AWS CDK, consulta la Guida per sviluppatori v2.AWS CDK](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html) Se riscontri errori o riscontri problemi durante il tentativo di completare questo tutorial, consulta la sezione [Risoluzione dei problemi](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) di questa guida per ricevere assistenza.

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

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