Erste Schritte mit AWS SAM und dem AWS CDK - AWS Serverless Application Model

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit AWS SAM und dem AWS CDK

In diesem Thema wird beschrieben, was Sie für die Verwendung AWS SAMCLI mit AWS CDK Anwendungen benötigen, und es enthält Anweisungen zum Erstellen und lokalen Testen einer einfachen AWS CDK Anwendung.

Voraussetzungen

Um with verwenden zu können AWS CDK, müssen Sie die AWS CDK, und die installieren AWS SAMCLI. AWS SAMCLI

Eine AWS CDK Anwendung erstellen und lokal testen

Um eine AWS CDK Anwendung mit dem lokal zu testen AWS SAMCLI, benötigen Sie eine AWS CDK Anwendung, die eine Lambda-Funktion enthält. Gehen Sie wie folgt vor, um eine AWS CDK Basisanwendung mit einer Lambda-Funktion zu erstellen. Weitere Informationen finden Sie unter Erstellen einer serverlosen Anwendung mithilfe von AWS CDK im AWS Cloud Development Kit (AWS CDK) Entwicklerhandbuch.

Anmerkung

Das AWS SAMCLI unterstützt AWS CDK v1 ab Version 1.135.0 und AWS CDK v2 ab Version 2.0.0.

Schritt 1: Erstellen einer AWS CDK -Anwendung

Initialisieren Sie für dieses Tutorial eine AWS CDK Anwendung, die verwendet. TypeScript

Befehl zum Ausführen:

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

Schritt 2: Fügen Sie Ihrer Anwendung eine Lambda-Funktion hinzu

Ersetzen Sie den Code durch lib/cdk-sam-example-stack.ts den folgenden Code:

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

Schritt 3: Fügen Sie Ihren Lambda-Funktionscode hinzu

Erstellen Sie ein Verzeichnis mit dem Namen my_function. Erstellen Sie in diesem Verzeichnis eine Datei namens app.py.

Befehl zum Ausführen:

mkdir my_function cd my_function touch app.py

Fügen Sie folgenden Code zu hinz app.py:

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

Schritt 4: Testen Sie Ihre Lambda-Funktion

Sie können die verwenden AWS SAMCLI, um lokal eine Lambda-Funktion aufzurufen, die Sie in einer AWS CDK Anwendung definieren. Dazu benötigen Sie den Konstrukt-Identifier der Funktion und den Pfad zu Ihrer synthetisierten AWS CloudFormation Vorlage.

Befehl zum Ausführen:

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

Beispielausgabe:

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

Weitere Informationen zu den Optionen, die zum Testen von AWS CDK Anwendungen mit der AWS SAM CLI verfügbar sind, finden Sie unterLokales Testen AWS CDK von Anwendungen mit AWS SAM.