Introducción alAWS SAMy laAWS 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.

Introducción alAWS SAMy laAWS CDK

En este tema se describe lo que necesita para usar laAWS SAMCLI conAWS CDKaplicaciones y proporciona instrucciones para crear y probar localmente un sencilloAWS CDKrevisiones de.

Requisitos previos

Para utilizar elAWS SAMCLI conAWS CDK, debe instalar laAWS CDK, y elAWS SAMCLI.

Crear y probar localmente unAWS CDKaplicación

Para probar localmente unAWS CDKaplicación utilizando elAWS SAMCLI:, debe haber unaAWS CDKaplicación que contiene una función Lambda. Utilice los siguientes pasos para crear unaAWS CDKaplicación con función Lambda. Para obtener más información, consulteCreación de una aplicación sin servidor mediante laAWS CDKen laAWS Cloud Development Kit (AWS CDK)Guía para desarrolladores.

nota

LaAWS SAMCompatible con CLIAWS CDKv1 a partir de la versión 1.135.0 yAWS CDKv2 a partir de la versión 2.0.0.

Paso 1: Creación de unAWS CDKaplicación

Para este tutorial, inicialice unaAWS CDKaplicación que utiliza TypeScript.

Comando para 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 Lambda a la aplicación

Sustituir el código enlib/cdk-sam-example-stack.tscon 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_7, 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_7, handler: 'app.lambda_handler', code: lambda.Code.fromAsset('./my_function'), }); } }

Paso 3: Añada el código de su función Lambda

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

Comando para ejecutar:

mkdir my_function cd my_function touch app.py

Agregue el siguiente código a app.py:

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

Paso 4: Pruebe la función de Lambda

Puede utilizar elAWS SAMCLI para invocar localmente una función Lambda definida en unAWS CDKrevisiones de. Para ello, necesita el identificador de constructo de función y la ruta a su sintetizada.AWS CloudFormationplantilla.

Comando para 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.7)
     
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 acerca de las opciones disponibles para probarAWS CDKaplicaciones mediante laAWS SAMCLI:, consultePruebas localesAWS CDKAplicaciones de.