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
Crie uma nova pasta no seu diretório pessoal.
mkdir ~/docker-cdk-tutorial
Navegue até a pasta que você criou.
cd ~/docker-cdk-tutorial
Instale as AWS CDK dependências localmente.
npm install aws-cdk aws-cdk-lib
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
Usando um editor de texto, por exemplo
nano cdk.json
, abra o arquivo e cole o conteúdo a seguir nele.{ "app": "node lib/docker-tutorial.js" }
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');
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" ]
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; };
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
Invoque a função Lambda para confirmá-la e verificá-la.
aws lambda invoke --function-name DockerTutorialFunction out.json jq . out.json
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