Começando com AWS SAM e o AWS CDK - AWS Serverless Application Model

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

Começando com AWS SAM e o AWS CDK

Este tópico descreve o que você precisa usar AWS SAMCLI com AWS CDK aplicativos e fornece instruções para criar e testar localmente um AWS CDK aplicativo simples.

Pré-requisitos

Para usar o AWS SAMCLI with AWS CDK, você deve instalar o AWS CDK, AWS SAMCLI e.

  • Para obter informações sobre a instalação do AWS CDK, consulte Introdução ao AWS CDK no Guia do AWS Cloud Development Kit (AWS CDK) desenvolvedor.

  • Para obter informações sobre a instalação do AWS SAMCLI, consulteInstale o AWS SAM CLI.

Criando e testando localmente um AWS CDK aplicativo

Para testar localmente um AWS CDK aplicativo usando o AWS SAMCLI, você deve ter um AWS CDK aplicativo que contenha uma função Lambda. Use as etapas a seguir para criar um AWS CDK aplicativo básico com uma função Lambda. Para obter mais informações, consulte Criar seu aplicativo sem servidor usando AWS CDK no Guia do desenvolvedor do AWS Cloud Development Kit (AWS CDK) .

nota

O AWS SAMCLI suporta AWS CDK v1 a partir da versão 1.135.0 e AWS CDK v2 a partir da versão 2.0.0.

Etapa 1: Criar um aplicativo do AWS CDK

Para este tutorial, inicialize um AWS CDK aplicativo que usa TypeScript.

Comando a ser executado:

AWS CDK v2
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript
AWS CDK v1
mkdir cdk-sam-example cd cdk-sam-example cdk init app --language typescript npm install @aws-cdk/aws-lambda

Etapa 2: adicionar uma função do Lambda ao seu aplicativo

Substitua o código em lib/cdk-sam-example-stack.ts pelo seguinte:

AWS CDK v2
import { Stack, StackProps } from 'aws-cdk-lib'; import { Construct } from 'constructs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; export class CdkSamExampleStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new lambda.Function(this, 'MyFunction', { runtime: lambda.Runtime.PYTHON_3_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }
AWS CDK v1
import * as cdk from '@aws-cdk/core'; import * as lambda from '@aws-cdk/aws-lambda'; export class CdkSamExampleStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); new lambda.Function(this, 'MyFunction', { runtime: lambda.Runtime.PYTHON_3_9, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }

Etapa 3: adicionar o código da função do Lambda

Crie um diretório chamado my_function. Nesse diretório, crie um arquivo chamado app.py.

Comando a ser executado:

mkdir my_function cd my_function touch app.py

Adicione o seguinte código a app.py:

def lambda_handler(event, context): return "Hello from SAM and the CDK!"

Etapa 4: testar sua função do Lambda

Você pode usar o AWS SAMCLI para invocar localmente uma função Lambda que você define em AWS CDK um aplicativo. Para fazer isso, você precisa do identificador de construção da função e do caminho para seu modelo sintetizado AWS CloudFormation .

Comando a ser executado:

cdk synth --no-staging
sam local invoke MyFunction --no-event -t ./cdk.out/CdkSamExampleStack.template.json

Exemplos de resultado:

Invoking app.lambda_handler (python3.9)
     
START RequestId: 5434c093-7182-4012-9b06-635011cac4f2 Version: $LATEST
"Hello from SAM and the CDK!"
END RequestId: 5434c093-7182-4012-9b06-635011cac4f2
REPORT RequestId: 5434c093-7182-4012-9b06-635011cac4f2	Init Duration: 0.32 ms	Duration: 177.47 ms	Billed Duration: 178 ms	Memory Size: 128 MB	Max Memory Used: 128 MB

Para obter mais informações sobre as opções disponíveis para testar AWS CDK aplicativos usando a AWS SAM CLI, consulte. Testando AWS CDK aplicativos localmente com AWS SAM