

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Implantando uma função Lambda usando o in AWS CDK CloudShell
<a name="tutorial-docker-cdk-deploy"></a>

Este tutorial mostra como implantar uma função Lambda em sua conta usando o AWS Cloud Development Kit (AWS CDK) in. CloudShell

## Pré-requisitos
<a name="prerequisites-docker-cdk-deploy"></a>
+ Inicialize sua conta para uso com o AWS CDK. *Para obter informações sobre como inicializar com AWS CDK, consulte [Bootstrapping](https://docs.aws.amazon.com/cdk/v2/guide/bootstrapping.html) no Guia do desenvolvedor v2.AWS CDK * Se você não inicializou a conta, pode acessá-la. `cdk bootstrap` CloudShell
+ Verifique se você tem as permissões apropriadas para implantar recursos em sua conta. As permissões de administrador são recomendadas.

## Procedimento do tutorial
<a name="tutorial-docker-cdk-deploy-steps"></a>

O tutorial a seguir descreve como implantar uma função Lambda baseada em contêiner do Docker usando o in. AWS CDK CloudShell

1. Crie uma pasta no seu diretório inicial.

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

1. Navegue até a pasta que você criou.

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

1. Instale as AWS CDK dependências localmente.

   ```
   npm install aws-cdk aws-cdk-lib
   ```  
![\[Imagem do comando usado para instalar as AWS CDK dependências.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%201-setup.png)

1. Crie um AWS CDK projeto básico na pasta que você criou.

   ```
   touch cdk.json
   mkdir lib
   touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
   ```

1. Usando um editor de texto, por exemplo, o `nano cdk.json`, abra o arquivo e cole o seguinte conteúdo nele.

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

1. Abra o arquivo `lib/docker-tutorial.js` e salve nele o conteúdo a seguir.

   ```
   // 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. Abra o `lib/Dockerfile` e salve nele o conteúdo a seguir.

   ```
   # 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. Abra o arquivo `lib/hello.js` e salve nele o conteúdo a seguir.

   ```
   // 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. Use a AWS CDK CLI para sintetizar o projeto e implantar os recursos. Você deve inicializar sua conta.

   ```
   npx cdk synth
   npx cdk deploy --require-approval never
   ```  
![\[Imagem do comando para usar a AWS CDK CLI para sintetizar o projeto e implantar os recursos.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%203-cdk-deploy-build.png)

1. Invoque a função do Lambda para confirmá-la e verificá-la.

   ```
   aws lambda invoke --function-name DockerTutorialFunction out.json
   jq . out.json
   ```  
![\[Imagem do comando usado para invocar a função do Lambda.\]](http://docs.aws.amazon.com/pt_br/cloudshell/latest/userguide/images/docker-cdk-tutorial%20-%205-lambda-invoke.png)

   Você implantou uma função do Lambda baseada em contêiner do Docker usando o AWS CDK. Para obter mais informações sobre AWS CDK, consulte o [Guia do desenvolvedor AWS CDK v2](https://docs.aws.amazon.com/cdk/v2/guide/hello_world.html). Se você encontrar erros ou problemas ao tentar concluir este tutorial, consulte a seção [Solução de problemas](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) deste guia para obter ajuda.

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

Você implantou uma função do Lambda baseada em contêiner do Docker usando o AWS CDK. Dentro do AWS CDK projeto, execute o comando a seguir para excluir os recursos associados. Você será solicitado a confirmar a exclusão.
+ 

  ```
  npx cdk destroy DockerTutorialStack
  ```
+ Para remover os arquivos e recursos que você criou neste tutorial do seu AWS CloudShell ambiente, execute o comando a seguir.

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