Empezar con AWS SAM y el AWS CDK - AWS Serverless Application Model

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Empezar con AWS SAM y el AWS CDK

En este tema se describe lo que necesita para usar el AWS SAM CLI con AWS CDK aplicaciones y proporciona instrucciones para crear y probar localmente una AWS CDK aplicación sencilla.

Requisitos previos

Para usar el AWS SAM CLI con AWS CDK, debe instalar el AWS CDK, y el AWS SAM CLI.

  • Para obtener información sobre cómo instalar el AWS CDK, consulte Introducción a él AWS CDK en la Guía para AWS Cloud Development Kit (AWS CDK) desarrolladores.

  • Para obtener información sobre la instalación del AWS SAM CLI, consulte Instala la AWS SAM CLI.

Crear y probar localmente una aplicación AWS CDK

Para probar una AWS CDK aplicación de forma local mediante el AWS SAM CLI, debe tener una AWS CDK aplicación que contenga una función Lambda. Siga los pasos siguientes para crear una AWS CDK aplicación básica con una función Lambda. Para obtener más información, consulta Crear una aplicación sin servidor usando la AWS CDK en la Guía para desarrolladores de AWS Cloud Development Kit (AWS CDK) .

nota

El AWS SAM CLI admite la versión AWS CDK v1 a partir de la versión 1.135.0 y la AWS CDK v2 a partir de la versión 2.0.0.

Paso 1: Crear una aplicación de AWS CDK

Para este tutorial, inicialice una AWS CDK aplicación que utilice. TypeScript

Comando a ejecutar:

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

Paso 2: Añadir una función de Lambda a la aplicación

Reemplaza el código en lib/cdk-sam-example-stack.ts con lo siguiente:

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'), }); } }

Paso 3: Añadir el código de la función de Lambda

Cree un directorio llamado my_function. En dicho directorio, cree un archivo llamado app.py.

Comando a ejecutar:

OS and Linux
mkdir my_function cd my_function touch app.py
Windows
mkdir my_function cd my_function type nul > app.py
PowerShell
mkdir my_function cd my_function New-Item -Path "app.py”

Añada el siguiente código a app.py:

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

Paso 4: comprobación de la función de Lambda

Puede utilizar el AWS SAM CLI para invocar localmente una función Lambda que defina en AWS CDK una aplicación. Para ello, necesita el identificador de construcción de la función y la ruta a la plantilla sintetizada AWS CloudFormation .

Ejecute el siguiente comando para volver al lib directorio:

cd ..

Comando a ejecutar:

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

Ejemplo del 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 obtener más información sobre las opciones disponibles para probar AWS CDK aplicaciones mediante el AWS SAM CLI, consultePruebas de AWS CDK aplicaciones a nivel local AWS SAM.