Iniziare conAWS SAM eAWS CDK - AWS Serverless Application Model

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Iniziare conAWS SAM eAWS CDK

Questo argomento descrive cosa è necessario per utilizzare laAWS SAM CLI conAWS CDK le applicazioni e fornisce istruzioni per creare e testare localmente una sempliceAWS CDK applicazione.

Prerequisiti

Per utilizzare laAWS SAM CLI conAWS CDK, è necessario installare eAWS SAM CLI.AWS CDK

Creazione e test locale di un'AWS CDKapplicazione

Per testare localmente un'AWS CDKapplicazione utilizzando laAWS SAM CLI, è necessario disporre di un'AWS CDKapplicazione che contenga una funzione Lambda. Utilizzare i passaggi seguenti per creare un'AWS CDKapplicazione di base con una funzione Lambda. Per ulteriori informazioni, vedere Creazione di un'applicazione serverless utilizzando laAWS CDK nella Guida per gliAWS Cloud Development Kit (AWS CDK) sviluppatori.

Nota

LaAWS SAM CLI supporta la versioneAWS CDK 1 a partire dalla versione 1.135.0 e laAWS CDK v2 a partire dalla versione 2.0.0.

Fase 1: creazione di un'applicazione AWS CDK

Per questo tutorial, inizializza un'AWS CDKapplicazione che utilizza TypeScript.

Comando da eseguire:

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

Fase 2: aggiunta di una funzione Lambda all'applicazione

Sostituisci il codicelib/cdk-sam-example-stack.ts con il seguente:

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

Fase 3: aggiunta del codice funzione Lambda

Crea una directory denominata my_function. Nella directory, creare un file denominato app.py.

Comando da eseguire:

mkdir my_function cd my_function touch app.py

Aggiungere il seguente codice a app.py:

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

Fase 4: Test della funzione Lambda

È possibile utilizzare laAWS SAM CLI per richiamare localmente una funzione Lambda definita in un'AWS CDKapplicazione. Per fare ciò, è necessario l'identificatore del costrutto della funzione e il percorso delAWS CloudFormation modello sintetizzato.

Comando da eseguire:

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

Esempio di output:

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

Per ulteriori informazioni sulle opzioni disponibili per testareAWS CDK le applicazioni utilizzando laAWS SAM CLI, vedereTest in localeAWS CDKapplicazioni.