Commencer avec AWS SAM et AWS CDK - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer avec AWS SAM et AWS CDK

Cette rubrique décrit ce dont vous avez besoin pour utiliser AWS SAMCLI les AWS CDK applications et fournit des instructions pour créer et tester localement une AWS CDK application simple.

Prérequis

Pour utiliser le AWS SAMCLI with AWS CDK, vous devez installer le AWS CDK, et le AWS SAMCLI.

Création et test local d'une application AWS CDK

Pour tester localement une AWS CDK application à l'aide de AWS SAMCLI, vous devez disposer d'une AWS CDK application contenant une fonction Lambda. Suivez les étapes ci-dessous pour créer une AWS CDK application de base avec une fonction Lambda. Pour plus d'informations, consultez la section Création d'une application sans serveur à l'aide de AWS CDK du Guide du développeur AWS Cloud Development Kit (AWS CDK) .

Note

Il AWS SAMCLI supporte la AWS CDK v1 à partir de la version 1.135.0 et la AWS CDK v2 à partir de la version 2.0.0.

Étape 1 : Création d'une application AWS CDK

Pour ce didacticiel, initialisez une AWS CDK application qui utilise TypeScript.

Commande à exécuter :

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

Étape 2 : Ajouter une fonction Lambda à votre application

Remplacez le code dans lib/cdk-sam-example-stack.ts par ce qui suit :

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

Étape 3 : Ajouter votre code de fonction Lambda

Créez un répertoire nommé my_function. Dans ce répertoire, créez un fichier nommé app.py.

Commande à exécuter :

mkdir my_function cd my_function touch app.py

Ajoutez le code suivant à app.py:

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

Étape 4 :Tester votre fonction Lambda

Vous pouvez utiliser le AWS SAMCLI pour appeler localement une fonction Lambda que vous définissez dans une AWS CDK application. Pour ce faire, vous avez besoin de l'identifiant de construction de la fonction et du chemin d'accès à votre AWS CloudFormation modèle synthétisé.

Commande à exécuter :

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

Exemple de sortie :

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

Pour plus d'informations sur les options disponibles pour tester AWS CDK les applications à l'aide de la AWS SAM CLI, consultezTester localement AWS CDK des applications avec AWS SAM.