Tutorial: Implantando uma função Lambda usando o AWS CDK - AWS CloudShell

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

Tutorial: Implantando uma função Lambda usando o AWS CDK

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

Pré-requisitos

  • Inicialize sua conta para uso com o. AWS CDK Para obter informações sobre como inicializar comAWS CDK, consulte Bootstrapping 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 tutorial

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

  1. Crie uma nova pasta no seu diretório pessoal.

    mkdir ~/docker-cdk-tutorial
  2. Navegue até a pasta que você criou.

    cd ~/docker-cdk-tutorial
  3. 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.
  4. 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
  5. Usando um editor de texto, por exemplonano cdk.json, abra o arquivo e cole o conteúdo a seguir nele.

    { "app": "node lib/docker-tutorial.js" }
  6. Abra o lib/docker-tutorial.js arquivo e cole o conteúdo a seguir nele.

    // 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. Abra o lib/Dockerfile e cole o seguinte conteúdo nele.

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

    // 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. 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.
  10. Invoque a função 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 Lambda.

    Agora você implantou com sucesso uma função Lambda baseada em contêiner Docker usando o. AWS CDK Para obter mais informações sobreAWS CDK, consulte o Guia do desenvolvedor AWS CDK v2. Se você encontrar erros ou problemas ao tentar concluir este tutorial, consulte a seção Solução de problemas deste guia para obter ajuda.

Limpeza

Agora você implantou com sucesso uma função Lambda baseada em contêiner 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