View a markdown version of this page

Tutorial: Erstelle deine erste AWS CDK-App - AWS Cloud-Entwicklungskit (AWS CDK) v2

Dies ist das AWS CDK v2 Developer Guide. Für das ältere CDK v1 wurde am 1. Juni 2022 die Wartung abgeschlossen und der Support endete am 1. Juni 2023.

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.

Tutorial: Erstelle deine erste AWS CDK-App

Beginnen Sie mit der Verwendung des AWS Cloud Development Kit (AWS CDK), indem Sie das AWS CDK Command Line Interface (AWS CDK CLI) verwenden, um Ihre erste CDK-App zu entwickeln, Ihre AWS Umgebung zu booten und Ihre Anwendung auf bereitzustellen. AWS

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen, führen Sie alle Einrichtungsschritte unter Erste Schritte mit dem CDK durch. AWS

Über dieses Tutorial

In diesem Tutorial erstellen und implementieren Sie eine einfache Anwendung zur AWS Verwendung des AWS CDK. Die Anwendung besteht aus einer AWS Lambda-Funktion, die beim Aufrufen eine Hello World! Meldung zurückgibt. Die Funktion wird über eine Lambda-Funktions-URL aufgerufen, die als dedizierter HTTP (S) -Endpunkt für Ihre Lambda-Funktion dient.

In diesem Tutorial werden Sie Folgendes ausführen:

  • Erstellen Sie Ihr Projekt — Erstellen Sie ein CDK-Projekt mit dem cdk init CDK-CLI-Befehl.

  • Konfiguration Ihrer AWS Umgebung — Konfigurieren Sie die AWS Umgebung, in der Sie Ihre Anwendung bereitstellen werden.

  • Bootstrapping für Ihre AWS Umgebung — Bereiten Sie Ihre AWS Umgebung für die Bereitstellung vor, indem Sie sie mit dem CDK-CLI-Befehl bootstrappen. cdk bootstrap

  • Entwickeln Sie Ihre App — Verwenden Sie Konstrukte aus der AWS Construct Library, um Ihre Lambda-Funktion und die URL-Ressourcen der Lambda-Funktion zu definieren.

  • Bereiten Sie Ihre App für die Bereitstellung vor — Verwenden Sie die CDK-CLI, um Ihre App zu erstellen und eine Vorlage zu synthetisieren. AWS CloudFormation

  • Bereitstellen Ihrer App — Verwenden Sie den cdk deploy CDK-CLI-Befehl, um Ihre Anwendung bereitzustellen und Ihre Ressourcen bereitzustellen. AWS

  • Interagieren Sie mit Ihrer Anwendung — Interagieren Sie mit Ihrer bereitgestellten Lambda-Funktion, AWS indem Sie sie aufrufen und eine Antwort erhalten.

  • Modifizieren Sie Ihre App — Ändern Sie Ihre Lambda-Funktion und implementieren Sie sie, um Ihre Änderungen zu implementieren.

  • Löschen Sie Ihre App — Löschen Sie alle Ressourcen, die Sie mit dem cdk destroy CDK-CLI-Befehl erstellt haben.

Schritt 1: Erstellen Sie Ihr CDK-Projekt

In diesem Schritt erstellen Sie ein neues CDK-Projekt. Ein CDK-Projekt sollte sich in einem eigenen Verzeichnis mit eigenen lokalen Modulabhängigkeiten befinden.

Um ein CDK-Projekt zu erstellen
  1. Erstellen Sie von einem Startverzeichnis Ihrer Wahl aus ein Verzeichnis mit dem folgenden Namen hello-cdk und navigieren Sie zu diesem Verzeichnis:

    $ mkdir hello-cdk && cd hello-cdk
    Wichtig

    Achten Sie darauf, Ihr Projektverzeichnis genau so zu benennenhello-cdk, wie hier gezeigt. Die CDK-CLI verwendet diesen Verzeichnisnamen, um Dinge in Ihrem CDK-Code zu benennen. Wenn Sie einen anderen Verzeichnisnamen verwenden, werden Sie in diesem Tutorial auf Probleme stoßen.

  2. Initialisieren Sie im hello-cdk Verzeichnis ein neues CDK-Projekt mit dem CDK-CLI-Befehl. cdk init Geben Sie die app Vorlage und Ihre bevorzugte Programmiersprache mit der folgenden Option an: --language

    Beispiel
    TypeScript
    $ cdk init app --language typescript
    JavaScript
    $ cdk init app --language javascript
    Python
    $ cdk init app --language python

    Nachdem die App erstellt wurde, geben Sie auch die folgenden beiden Befehle ein. Diese aktivieren die virtuelle Python-Umgebung der App und installieren die AWS CDK-Kernabhängigkeiten.

    $ source .venv/bin/activate # On Windows, run `.\venv\Scripts\activate` instead $ python -m pip install -r requirements.txt
    Java
    $ cdk init app --language java

    Wenn Sie eine IDE verwenden, können Sie das Projekt jetzt öffnen oder importieren. Wählen Sie Eclipse beispielsweise „Datei“ > „Importieren“ > „Maven“ > „Bestehende Maven-Projekte“. Stellen Sie sicher, dass die Projekteinstellungen so eingestellt sind, dass Java 8 (1.8) verwendet wird.

    C#
    $ cdk init app --language csharp

    Wenn Sie Visual Studio verwenden, öffnen Sie die Lösungsdatei im src Verzeichnis.

    Go
    $ cdk init app --language go

    Nachdem die App erstellt wurde, geben Sie außerdem den folgenden Befehl ein, um die AWS Construct Library-Module zu installieren, die die App benötigt.

    $ go get

Der cdk init Befehl erstellt eine Struktur von Dateien und Ordnern innerhalb des hello-cdk Verzeichnisses, um den Quellcode für Ihre CDK-App zu organisieren. Diese Struktur aus Dateien und Ordnern wird Ihr CDK-Projekt genannt. Nehmen Sie sich einen Moment Zeit, um Ihr CDK-Projekt zu erkunden.

Wenn Sie es Git installiert haben, cdk init wird jedes Projekt, das Sie verwenden, auch als Git Repository initialisiert.

Während der Projektinitialisierung erstellt die CDK-CLI eine CDK-App, die einen einzelnen CDK-Stack enthält. Die CDK-App-Instanz wird mithilfe des Konstrukts erstellt. App Das Folgende ist ein Teil dieses Codes aus Ihrer CDK-Anwendungsdatei:

Beispiel
TypeScript

Befindet sich inbin/hello-cdk.ts:

#!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack', { });
JavaScript

Befindet sich inbin/hello-cdk.js:

#!/usr/bin/env node const cdk = require('aws-cdk-lib'); const { HelloCdkStack } = require('../lib/hello-cdk-stack'); const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack', { });
Python

Befindet sich inapp.py:

#!/usr/bin/env python3 import os import aws_cdk as cdk from hello_cdk.hello_cdk_stack import HelloCdkStack app = cdk.App() HelloCdkStack(app, "HelloCdkStack",) app.synth()
Java

Befindet sich insrc/main/java/…​/HelloCdkApp.java:

package com.myorg; import software.amazon.awscdk.App; import software.amazon.awscdk.Environment; import software.amazon.awscdk.StackProps; import java.util.Arrays; public class HelloCdkApp { public static void main(final String[] args) { App app = new App(); new HelloCdkStack(app, "HelloCdkStack", StackProps.builder() .build()); app.synth(); } }
C#

Befindet sich insrc/HelloCdk/Program.cs:

using Amazon.CDK; using System; using System.Collections.Generic; using System.Linq; namespace HelloCdk { sealed class Program { public static void Main(string[] args) { var app = new App(); new HelloCdkStack(app, "HelloCdkStack", new StackProps {}); app.Synth(); } } }
Go

Befindet sich inhello-cdk.go:

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) // ... func main() { defer jsii.Close() app := awscdk.NewApp(nil) NewHelloCdkStack(app, "HelloCdkStack", &HelloCdkStackProps{ awscdk.StackProps{ Env: env(), }, }) app.Synth(nil) } // ...

Der CDK-Stack wird mithilfe des Stack Konstrukts erstellt. Das Folgende ist ein Teil dieses Codes aus Ihrer CDK-Stack-Datei:

Beispiel
TypeScript

Befindet sich inlib/hello-cdk-stack.ts:

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; export class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Define your constructs here } }
JavaScript

Befindet sich inlib/hello-cdk-stack.js:

const { Stack } = require('aws-cdk-lib'); class HelloCdkStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // Define your constructs here } } module.exports = { HelloCdkStack }
Python

Befindet sich inhello_cdk/hello_cdk_stack.py:

from aws_cdk import ( Stack, ) from constructs import Construct class HelloCdkStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # Define your constructs here
Java

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; public class HelloCdkStack extends Stack { public HelloCdkStack(final Construct scope, final String id) { this(scope, id, null); } public HelloCdkStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // Define your constructs here } }
C#

Befindet sich insrc/HelloCdk/HelloCdkStack.cs:

using Amazon.CDK; using Constructs; namespace HelloCdk { public class HelloCdkStack : Stack { internal HelloCdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // Define your constructs here } } }
Go

Befindet sich inhello-cdk.go:

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) type HelloCdkStackProps struct { awscdk.StackProps } func NewHelloCdkStack(scope constructs.Construct, id string, props *HelloCdkStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) return stack } // ...

Schritt 2: Konfiguriere deine AWS Umgebung

In diesem Schritt konfigurieren Sie die AWS Umgebung für Ihren CDK-Stack. Auf diese Weise geben Sie an, in welcher Umgebung Ihr CDK-Stack bereitgestellt wird.

Bestimmen Sie zunächst die AWS Umgebung, die Sie verwenden möchten. Eine AWS Umgebung besteht aus einem AWS Konto und einer AWS Region.

Wenn Sie die AWS CLI verwenden, um Sicherheitsanmeldeinformationen auf Ihrem lokalen Computer zu konfigurieren, können Sie die AWS CLI dann verwenden, um AWS Umgebungsinformationen für ein bestimmtes Profil abzurufen.

So verwenden Sie die AWS CLI, um Ihre AWS Konto-ID abzurufen
  1. Führen Sie den folgenden AWS CLI-Befehl aus, um die AWS Konto-ID für Ihr default Profil abzurufen:

    $ aws sts get-caller-identity --query "Account" --output text
  2. Wenn Sie lieber ein benanntes Profil verwenden möchten, geben Sie den Namen Ihres Profils mithilfe der --profile Option an:

    $ aws sts get-caller-identity --profile your-profile-name --query "Account" --output text
Um die AWS CLI zu verwenden, um Ihre AWS Region abzurufen
  1. Führen Sie den folgenden AWS CLI-Befehl aus, um die Region abzurufen, die Sie für Ihr default Profil konfiguriert haben:

    $ aws configure get region
  2. Wenn Sie lieber ein benanntes Profil verwenden möchten, geben Sie den Namen Ihres Profils mithilfe der --profile Option an:

    $ aws configure get region --profile your-profile-name

Als Nächstes konfigurieren Sie die AWS Umgebung für Ihren CDK-Stack, indem Sie die HelloCdkStack Instanz in Ihrer Anwendungsdatei ändern. Für dieses Tutorial werden Sie Ihre AWS Umgebungsinformationen fest codieren. Dies wird für Produktionsumgebungen nicht empfohlen. Informationen zu anderen Möglichkeiten, Umgebungen zu konfigurieren, finden Sie unter Konfigurieren von Umgebungen zur Verwendung mit dem AWS CDK.

So konfigurieren Sie die Umgebung für Ihren CDK-Stack
  1. Verwenden Sie in Ihrer Anwendungsdatei die env Eigenschaft des Stack Konstrukts, um Ihre Umgebung zu konfigurieren. Im Folgenden wird ein Beispiel gezeigt:

    Beispiel
    TypeScript

    Befindet sich inbin/hello-cdk.ts:

    #!/usr/bin/env node import 'source-map-support/register'; import * as cdk from 'aws-cdk-lib'; import { HelloCdkStack } from '../lib/hello-cdk-stack'; const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack', { env: { account: '123456789012', region: 'us-east-1' }, });
    JavaScript

    Befindet sich inbin/hello-cdk.js:

    #!/usr/bin/env node const cdk = require('aws-cdk-lib'); const { HelloCdkStack } = require('../lib/hello-cdk-stack'); const app = new cdk.App(); new HelloCdkStack(app, 'HelloCdkStack', { env: { account: '123456789012', region: 'us-east-1' }, });
    Python

    Befindet sich inapp.py:

    #!/usr/bin/env python3 import os import aws_cdk as cdk from hello_cdk.hello_cdk_stack import HelloCdkStack app = cdk.App() HelloCdkStack(app, "HelloCdkStack", env=cdk.Environment(account='123456789012', region='us-east-1'), ) app.synth()
    Java

    Befindet sich insrc/main/java/…​/HelloCdkApp.java:

    package com.myorg; import software.amazon.awscdk.App; import software.amazon.awscdk.Environment; import software.amazon.awscdk.StackProps; import java.util.Arrays; public class HelloCdkApp { public static void main(final String[] args) { App app = new App(); new HelloCdkStack(app, "HelloCdkStack", StackProps.builder() .env(Environment.builder() .account("123456789012") .region("us-east-1") .build()) .build()); app.synth(); } }
    C#

    Befindet sich insrc/HelloCdk/Program.cs:

    using Amazon.CDK; using System; using System.Collections.Generic; using System.Linq; namespace HelloCdk { sealed class Program { public static void Main(string[] args) { var app = new App(); new HelloCdkStack(app, "HelloCdkStack", new StackProps { Env = new Amazon.CDK.Environment { Account = "123456789012", Region = "us-east-1", } }); app.Synth(); } } }
    Go

    Befindet sich inhello-cdk.go:

    package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" ) // ... func main() { defer jsii.Close() app := awscdk.NewApp(nil) NewHelloCdkStack(app, "HelloCdkStack", &HelloCdkStackProps{ awscdk.StackProps{ Env: env(), }, }) app.Synth(nil) } func env() *awscdk.Environment { return &awscdk.Environment{ Account: jsii.String("123456789012"), Region: jsii.String("us-east-1"), } }

Schritt 3: Bootstrappen Sie Ihre AWS Umgebung

In diesem Schritt booten Sie die AWS Umgebung, die Sie im vorherigen Schritt konfiguriert haben. Dadurch wird Ihre Umgebung auf CDK-Bereitstellungen vorbereitet.

Um Ihre Umgebung zu booten, führen Sie im Stammverzeichnis Ihres CDK-Projekts Folgendes aus:

$ cdk bootstrap

Wenn Sie das Bootstrapping vom Stammverzeichnis Ihres CDK-Projekts aus durchführen, müssen Sie keine zusätzlichen Informationen angeben. Die CDK-CLI ruft Umgebungsinformationen aus Ihrem Projekt ab. Wenn Sie außerhalb eines CDK-Projekts Bootstrap durchführen, müssen Sie mit dem Befehl Umgebungsinformationen angeben. cdk bootstrap Weitere Informationen finden Sie unter Bootstrapping Ihrer Umgebung für die Verwendung mit dem CDK. AWS

Schritt 4: Erstellen Sie Ihre CDK-App

In den meisten Programmierumgebungen erstellen oder kompilieren Sie Code, nachdem Sie Änderungen vorgenommen haben. Dies ist beim AWS CDK nicht erforderlich, da die CDK-CLI diesen Schritt automatisch ausführt. Sie können jedoch immer noch manuell erstellen, wenn Sie Syntax- und Tippfehler abfangen möchten. Im Folgenden wird ein Beispiel gezeigt:

Beispiel
TypeScript
$ npm run build > hello-cdk@0.1.0 build > tsc
JavaScript

Es ist kein Build-Schritt erforderlich.

Python

Es ist kein Build-Schritt erforderlich.

Java
$ mvn compile -q

Oder drücken Sie Control-B Eclipse ein (andere Java-IDEs können variieren)

C#
$ dotnet build src

Oder drücken Sie F6 in Visual Studio

Go
$ go build

Schritt 5: Listen Sie die CDK-Stacks in Ihrer App auf

Zu diesem Zeitpunkt sollten Sie eine CDK-App haben, die einen einzelnen CDK-Stack enthält. Verwenden Sie zur Überprüfung den cdk list CDK-CLI-Befehl, um Ihre Stacks anzuzeigen. Die Ausgabe sollte einen einzelnen Stack mit dem Namen anzeigen: HelloCdkStack

$ cdk list HelloCdkStack

Wenn Sie diese Ausgabe nicht sehen, überprüfen Sie, ob Sie sich im richtigen Arbeitsverzeichnis Ihres Projekts befinden, und versuchen Sie es erneut. Wenn Sie Ihren Stack immer noch nicht sehen, wiederholen Sie Schritt 1: Erstellen Sie Ihr CDK-Projekt und versuchen Sie es erneut.

Schritt 6: Definieren Sie Ihre Lambda-Funktion

In diesem Schritt importieren Sie das aws_lambda Modul aus der AWS Construct Library und verwenden das Function L2-Konstrukt.

Ändern Sie Ihre CDK-Stack-Datei wie folgt:

Beispiel
TypeScript

Befindet sich inlib/hello-cdk-stack.ts:

import * as cdk from 'aws-cdk-lib'; import { Construct } from 'constructs'; // Import the Lambda module import * as lambda from 'aws-cdk-lib/aws-lambda'; export class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Define the Lambda function resource const myFunction = new lambda.Function(this, "HelloWorldFunction", { runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime handler: "index.handler", code: lambda.Code.fromInline(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; `), }); } }
JavaScript

Befindet sich inlib/hello-cdk-stack.js:

const { Stack } = require('aws-cdk-lib'); // Import the Lambda module const lambda = require('aws-cdk-lib/aws-lambda'); class HelloCdkStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // Define the Lambda function resource const myFunction = new lambda.Function(this, "HelloWorldFunction", { runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime handler: "index.handler", code: lambda.Code.fromInline(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; `), }); } } module.exports = { HelloCdkStack }
Python

Befindet sich inhello_cdk/hello_cdk_stack.py:

from aws_cdk import ( Stack, aws_lambda as _lambda, # Import the Lambda module ) from constructs import Construct class HelloCdkStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # Define the Lambda function resource my_function = _lambda.Function( self, "HelloWorldFunction", runtime = _lambda.Runtime.NODEJS_20_X, # Provide any supported Node.js runtime handler = "index.handler", code = _lambda.Code.from_inline( """ exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; """ ), )
Java

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

package com.myorg; import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; // Import Lambda function import software.amazon.awscdk.services.lambda.Code; import software.amazon.awscdk.services.lambda.Function; import software.amazon.awscdk.services.lambda.Runtime; public class HelloCdkStack extends Stack { public HelloCdkStack(final Construct scope, final String id) { this(scope, id, null); } public HelloCdkStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // Define the Lambda function resource Function myFunction = Function.Builder.create(this, "HelloWorldFunction") .runtime(Runtime.NODEJS_20_X) // Provide any supported Node.js runtime .handler("index.handler") .code(Code.fromInline( "exports.handler = async function(event) {" + " return {" + " statusCode: 200," + " body: JSON.stringify('Hello World!')" + " };" + "};")) .build(); } }
C#

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

using Amazon.CDK; using Constructs; // Import the Lambda module using Amazon.CDK.AWS.Lambda; namespace HelloCdk { public class HelloCdkStack : Stack { internal HelloCdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // Define the Lambda function resource var myFunction = new Function(this, "HelloWorldFunction", new FunctionProps { Runtime = Runtime.NODEJS_20_X, // Provide any supported Node.js runtime Handler = "index.handler", Code = Code.FromInline(@" exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; "), }); } } }
Go

Befindet sich inhello-cdk.go:

package main import ( "github.com/aws/aws-cdk-go/awscdk/v2" "github.com/aws/constructs-go/constructs/v10" "github.com/aws/jsii-runtime-go" // Import the Lambda module "github.com/aws/aws-cdk-go/awscdk/v2/awslambda" ) type HelloCdkStackProps struct { awscdk.StackProps } func NewHelloCdkStack(scope constructs.Construct, id string, props *HelloCdkStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) // Define the Lambda function resource myFunction := awslambda.NewFunction(stack, jsii.String("HelloWorldFunction"), &awslambda.FunctionProps{ Runtime: awslambda.Runtime_NODEJS_20_X(), // Provide any supported Node.js runtime Handler: jsii.String("index.handler"), Code: awslambda.Code_FromInline(jsii.String(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; `)), }) return stack } // ...

Schauen wir uns das Function Konstrukt genauer an. Wie alle Konstrukte benötigt die Function Klasse drei Parameter:

  • scope — Definiert Ihre Stack Instanz als übergeordnete Instanz des Function Konstrukts. Alle Konstrukte, die AWS Ressourcen definieren, werden im Rahmen eines Stacks erstellt. Sie können Konstrukte innerhalb von Konstrukten definieren und so eine Hierarchie (Baum) erstellen. Hier und in den meisten Fällen ist der Gültigkeitsbereich this (selfin Python).

  • Id — Die Konstrukt-ID der Function in Ihrer AWS CDK-App. Diese ID sowie ein Hash, der auf der Position der Funktion innerhalb des Stacks basiert, identifizieren die Funktion während der Bereitstellung eindeutig. Das AWS CDK verweist auch auf diese ID, wenn Sie das Konstrukt in Ihrer App aktualisieren und erneut bereitstellen, um die bereitgestellte Ressource zu aktualisieren. Hier lautet Ihre Konstrukt-ID. HelloWorldFunction Funktionen können auch einen Namen haben, der mit der functionName Eigenschaft angegeben wird. Dies unterscheidet sich von der Konstrukt-ID.

  • props — Ein Bündel von Werten, die Eigenschaften der Funktion definieren. Hier definieren Sie die code Eigenschaften runtimehandler, und.

    Requisiten werden in den vom AWS CDK unterstützten Sprachen unterschiedlich dargestellt.

    • In TypeScript und props steht ein einzelnes Argument JavaScript, und Sie übergeben ein Objekt, das die gewünschten Eigenschaften enthält.

    • In Python werden Requisiten als Schlüsselwortargumente übergeben.

    • In Java wird ein Builder bereitgestellt, um die Requisiten zu übergeben. Es gibt zwei: einen für und einen zweiten fürFunctionProps, Function damit Sie das Konstrukt und das zugehörige Requisiten-Objekt in einem Schritt erstellen können. Dieser Code verwendet Letzteres.

    • In C# instanziieren Sie ein FunctionProps Objekt mithilfe eines Objektinitialisierers und übergeben es als dritten Parameter.

      Wenn die Requisiten eines Konstrukts optional sind, können Sie den Parameter vollständig weglassen. props

Alle Konstrukte verwenden dieselben drei Argumente, sodass Sie sich leicht orientieren können, wenn Sie neue Argumente kennenlernen. Und wie Sie vielleicht erwarten, können Sie jedes Konstrukt unterklassifizieren, um es an Ihre Bedürfnisse anzupassen oder wenn Sie seine Standardwerte ändern möchten.

Schritt 7: Definieren Sie Ihre Lambda-Funktions-URL

In diesem Schritt verwenden Sie die addFunctionUrl Hilfsmethode des Function Konstrukts, um eine Lambda-Funktions-URL zu definieren. Um den Wert dieser URL bei der Bereitstellung auszugeben, erstellen Sie mithilfe des CfnOutput Konstrukts eine AWS CloudFormation Ausgabe.

Fügen Sie Ihrer CDK-Stack-Datei Folgendes hinzu:

Beispiel
TypeScript

Befindet sich inlib/hello-cdk-stack.ts:

// ... export class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Define the Lambda function resource // ... // Define the Lambda function URL resource const myFunctionUrl = myFunction.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE, }); // Define a CloudFormation output for your URL new cdk.CfnOutput(this, "myFunctionUrlOutput", { value: myFunctionUrl.url, }) } }
JavaScript

Befindet sich inlib/hello-cdk-stack.js:

const { Stack, CfnOutput } = require('aws-cdk-lib'); // Import CfnOutput class HelloCdkStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // Define the Lambda function resource // ... // Define the Lambda function URL resource const myFunctionUrl = myFunction.addFunctionUrl({ authType: lambda.FunctionUrlAuthType.NONE, }); // Define a CloudFormation output for your URL new CfnOutput(this, "myFunctionUrlOutput", { value: myFunctionUrl.url, }) } } module.exports = { HelloCdkStack }
Python

Befindet sich inhello_cdk/hello_cdk_stack.py:

from aws_cdk import ( # ... CfnOutput # Import CfnOutput ) from constructs import Construct class HelloCdkStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # Define the Lambda function resource # ... # Define the Lambda function URL resource my_function_url = my_function.add_function_url( auth_type = _lambda.FunctionUrlAuthType.NONE, ) # Define a CloudFormation output for your URL CfnOutput(self, "myFunctionUrlOutput", value=my_function_url.url)
Java

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

package com.myorg; // ... // Import Lambda function URL import software.amazon.awscdk.services.lambda.FunctionUrl; import software.amazon.awscdk.services.lambda.FunctionUrlAuthType; import software.amazon.awscdk.services.lambda.FunctionUrlOptions; // Import CfnOutput import software.amazon.awscdk.CfnOutput; public class HelloCdkStack extends Stack { public HelloCdkStack(final Construct scope, final String id) { this(scope, id, null); } public HelloCdkStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // Define the Lambda function resource // ... // Define the Lambda function URL resource FunctionUrl myFunctionUrl = myFunction.addFunctionUrl(FunctionUrlOptions.builder() .authType(FunctionUrlAuthType.NONE) .build()); // Define a CloudFormation output for your URL CfnOutput.Builder.create(this, "myFunctionUrlOutput") .value(myFunctionUrl.getUrl()) .build(); } }
C#

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

// ... namespace HelloCdk { public class HelloCdkStack : Stack { internal HelloCdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // Define the Lambda function resource // ... // Define the Lambda function URL resource var myFunctionUrl = myFunction.AddFunctionUrl(new FunctionUrlOptions { AuthType = FunctionUrlAuthType.NONE }); // Define a CloudFormation output for your URL new CfnOutput(this, "myFunctionUrlOutput", new CfnOutputProps { Value = myFunctionUrl.Url }); } } }
Go

Befindet sich inhello-cdk.go:

// ... func NewHelloCdkStack(scope constructs.Construct, id string, props *HelloCdkStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) // Define the Lambda function resource // ... // Define the Lambda function URL resource myFunctionUrl := myFunction.AddFunctionUrl(&awslambda.FunctionUrlOptions{ AuthType: awslambda.FunctionUrlAuthType_NONE, }) // Define a CloudFormation output for your URL awscdk.NewCfnOutput(stack, jsii.String("myFunctionUrlOutput"), &awscdk.CfnOutputProps{ Value: myFunctionUrl.Url(), }) return stack } // ...
Warnung

Um dieses Tutorial einfach zu halten, ist Ihre Lambda-Funktions-URL ohne Authentifizierung definiert. Bei der Bereitstellung wird dadurch ein öffentlich zugänglicher Endpunkt erstellt, der zum Aufrufen Ihrer Funktion verwendet werden kann. Wenn Sie mit diesem Tutorial fertig sind, folgen Sie Schritt 12: Löschen Sie Ihre Anwendung, um diese Ressourcen zu löschen.

Schritt 8: Synthetisieren Sie eine Vorlage CloudFormation

In diesem Schritt bereiten Sie sich auf die Bereitstellung vor, indem Sie eine CloudFormation Vorlage mit dem CDK-CLI-Befehl synthetisieren. cdk synth Dieser Befehl führt eine grundlegende Validierung Ihres CDK-Codes durch, führt Ihre CDK-App aus und generiert eine CloudFormation Vorlage aus Ihrem CDK-Stack.

Wenn Ihre App mehr als einen Stapel enthält, müssen Sie angeben, welche Stapel synthetisiert werden sollen. Da Ihre App einen einzelnen Stack enthält, erkennt die CDK-CLI automatisch den zu synthetisierenden Stack.

Wenn Sie keine Vorlage synthetisieren, führt die CDK-CLI diesen Schritt bei der Bereitstellung automatisch aus. Wir empfehlen jedoch, diesen Schritt vor jeder Bereitstellung auszuführen, um nach Synthesefehlern zu suchen.

Bevor Sie eine Vorlage synthetisieren, können Sie optional Ihre Anwendung erstellen, um Syntax- und Tippfehler abzufangen. Eine Anleitung finden Sie unter Schritt 4: Erstellen Sie Ihre CDK-App.

Um eine CloudFormation Vorlage zu synthetisieren, führen Sie im Stammverzeichnis Ihres Projekts Folgendes aus:

$ cdk synth
Anmerkung

Wenn Sie eine Fehlermeldung wie die folgende erhalten, überprüfen Sie, ob Sie sich im hello-cdk Verzeichnis befinden, und versuchen Sie es erneut:

--app is required either in command-line, in cdk.json or in ~/.cdk.json

Bei Erfolg gibt die CDK-CLI eine YAML —formatierte CloudFormation Vorlage in das Verzeichnis Ihres Projekts aus stdout und speichert eine JSON —formatierte Vorlage. cdk.out

Im Folgenden finden Sie ein Beispiel für die Ausgabe der Vorlage: CloudFormation

Resources: HelloWorldFunctionServiceRole<unique-identifier>: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Statement: - Action: sts:AssumeRole Effect: Allow Principal: Service: lambda.amazonaws.com Version: "2012-10-17" ManagedPolicyArns: - Fn::Join: - "" - - "arn:" - Ref: AWS::Partition - :iam::aws:policy/service-role/AWSLambdaBasicExecutionRole Metadata: aws:cdk:path: HelloCdkStack/HelloWorldFunction/ServiceRole/Resource HelloWorldFunction<unique-identifier>: Type: AWS::Lambda::Function Properties: Code: ZipFile: " \ exports.handler = async function(event) { \ return { \ statusCode: 200, \ body: JSON.stringify('Hello World!'), \ }; \ }; \ " Handler: index.handler Role: Fn::GetAtt: - HelloWorldFunctionServiceRole<unique-identifier> - Arn Runtime: nodejs20.x DependsOn: - HelloWorldFunctionServiceRole<unique-identifier> Metadata: aws:cdk:path: HelloCdkStack/HelloWorldFunction/Resource HelloWorldFunctionFunctionUrl<unique-identifier>: Type: AWS::Lambda::Url Properties: AuthType: NONE TargetFunctionArn: Fn::GetAtt: - HelloWorldFunction<unique-identifier> - Arn Metadata: aws:cdk:path: HelloCdkStack/HelloWorldFunction/FunctionUrl/Resource HelloWorldFunctioninvokefunctionurl<unique-identifier>: Type: AWS::Lambda::Permission Properties: Action: lambda:InvokeFunctionUrl FunctionName: Fn::GetAtt: - HelloWorldFunction<unique-identifier> - Arn FunctionUrlAuthType: NONE Principal: "*" Metadata: aws:cdk:path: HelloCdkStack/HelloWorldFunction/invoke-function-url CDKMetadata: Type: AWS::CDK::Metadata Properties: Analytics: v2:deflate64:<unique-identifier> Metadata: aws:cdk:path: HelloCdkStack/CDKMetadata/Default Condition: CDKMetadataAvailable Outputs: myFunctionUrlOutput: Value: Fn::GetAtt: - HelloWorldFunctionFunctionUrl<unique-identifier> - FunctionUrl Parameters: BootstrapVersion: Type: AWS::SSM::Parameter::Value<String> Default: /cdk-bootstrap/<unique-identifier>/version Description: Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip] Rules: CheckBootstrapVersion: Assertions: - Assert: Fn::Not: - Fn::Contains: - - "1" - "2" - "3" - "4" - "5" - Ref: BootstrapVersion AssertDescription: CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.
Anmerkung

Jede generierte Vorlage enthält standardmäßig eine AWS::CDK::Metadata Ressource. Das AWS CDK-Team verwendet diese Metadaten, um einen Einblick in die AWS CDK-Nutzung zu erhalten und Möglichkeiten zu finden, diese zu verbessern. Einzelheiten, einschließlich der Möglichkeit, sich von der Versionsberichterstattung abzumelden, finden Sie unter Versionsberichterstattung.

Durch die Definition eines einzelnen L2-Konstrukts erstellt das AWS CDK eine umfangreiche CloudFormation Vorlage, die Ihre Lambda-Ressourcen zusammen mit den Berechtigungen und der Glue-Logik enthält, die für die Interaktion Ihrer Ressourcen innerhalb Ihrer Anwendung erforderlich sind.

Schritt 9: Stellen Sie Ihren CDK-Stack bereit

In diesem Schritt verwenden Sie den cdk deploy CDK-CLI-Befehl, um Ihren CDK-Stack bereitzustellen. Mit diesem Befehl wird Ihre generierte CloudFormation Vorlage abgerufen und bereitgestellt AWS CloudFormation, wodurch Ihre Ressourcen als Teil eines Stacks bereitgestellt werden. CloudFormation

Führen Sie im Stammverzeichnis Ihres Projekts Folgendes aus. Bestätigen Sie Änderungen, wenn Sie dazu aufgefordert werden:

$ cdk deploy ✨ Synthesis time: 2.69s HelloCdkStack: start: Building <unique-identifier>:current_account-current_region HelloCdkStack: success: Built <unique-identifier>:current_account-current_region HelloCdkStack: start: Publishing <unique-identifier>:current_account-current_region HelloCdkStack: success: Published <unique-identifier>:current_account-current_region This deployment will make potentially sensitive changes according to your current security approval level (--require-approval broadening). Please confirm you intend to make the following modifications: IAM Statement Changes ┌───┬───────────────────────────────────────┬────────┬──────────────────────────┬──────────────────────────────┬───────────┐ │ │ Resource │ Effect │ Action │ Principal │ Condition │ ├───┼───────────────────────────────────────┼────────┼──────────────────────────┼──────────────────────────────┼───────────┤ │ + │ ${HelloWorldFunction.Arn} │ Allow │ lambda:InvokeFunctionUrl │ * │ │ ├───┼───────────────────────────────────────┼────────┼──────────────────────────┼──────────────────────────────┼───────────┤ │ + │ ${HelloWorldFunction/ServiceRole.Arn} │ Allow │ sts:AssumeRole │ Service:lambda.amazonaws.com │ │ └───┴───────────────────────────────────────┴────────┴──────────────────────────┴──────────────────────────────┴───────────┘ IAM Policy Changes ┌───┬───────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────┐ │ │ Resource │ Managed Policy ARN │ ├───┼───────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────┤ │ + │ ${HelloWorldFunction/ServiceRole} │ arn:${AWS::Partition}:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole │ └───┴───────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────┘ (NOTE: There may be security-related changes not in this list. See https://github.com/aws/aws-cdk/issues/1299) Do you wish to deploy these changes (y/n)? y

Ähnlich wie müssen cdk synth Sie den AWS CDK-Stack nicht angeben, da die App einen einzelnen Stapel enthält.

Während der Bereitstellung zeigt die CDK-CLI Fortschrittsinformationen an, während Ihr Stack bereitgestellt wird. Wenn Sie fertig sind, können Sie zur AWS CloudFormation Konsole gehen, um Ihren HelloCdkStack Stack anzusehen. Sie können auch zur Lambda-Konsole gehen, um Ihre HelloWorldFunction Ressource anzusehen.

Wenn die Bereitstellung abgeschlossen ist, gibt die CDK-CLI Ihre Endpunkt-URL aus. Kopieren Sie diese URL für den nächsten Schritt. Im Folgenden wird ein Beispiel gezeigt:

... HelloCdkStack: deploying... [1/1] HelloCdkStack: creating CloudFormation changeset... ✅ HelloCdkStack ✨ Deployment time: 41.65s Outputs: HelloCdkStack.myFunctionUrlOutput = https://<api-id>.lambda-url.<Region>.on.aws/ Stack ARN: arn:aws:cloudformation:<Region:account-id>:stack/HelloCdkStack/<unique-identifier> ✨ Total time: 44.34s

Schritt 10: Interagieren Sie mit Ihrer Anwendung auf AWS

In diesem Schritt interagieren Sie mit Ihrer Anwendung, AWS indem Sie Ihre Lambda-Funktion über die Funktions-URL aufrufen. Wenn Sie auf die URL zugreifen, gibt Ihre Lambda-Funktion die Nachricht zurück. Hello World!

Um Ihre Funktion aufzurufen, greifen Sie über Ihren Browser oder über die Befehlszeile auf die Funktions-URL zu. Im Folgenden wird ein Beispiel gezeigt:

$ curl https://<api-id>.lambda-url.<Region>.on.aws/ "Hello World!"%

Schritt 11: Ändern Sie Ihre Anwendung

In diesem Schritt ändern Sie die Meldung, die die Lambda-Funktion zurückgibt, wenn sie aufgerufen wird. Sie führen einen Vergleich mit dem cdk diff CDK-CLI-Befehl durch, um eine Vorschau Ihrer Änderungen anzuzeigen, und führen die Bereitstellung durch, um Ihre Anwendung zu aktualisieren. Anschließend interagieren Sie mit Ihrer Anwendung AWS , um Ihre neue Nachricht zu sehen.

Ändern Sie die myFunction Instanz in Ihrer CDK-Stack-Datei wie folgt:

Beispiel
TypeScript

Befindet sich inlib/hello-cdk-stack.ts:

// ... export class HelloCdkStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props); // Modify the Lambda function resource const myFunction = new lambda.Function(this, "HelloWorldFunction", { runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime handler: "index.handler", code: lambda.Code.fromInline(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; `), }); // ... } }
JavaScript

Befindet sich inlib/hello-cdk-stack.js:

// ... class HelloCdkStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // Modify the Lambda function resource const myFunction = new lambda.Function(this, "HelloWorldFunction", { runtime: lambda.Runtime.NODEJS_20_X, // Provide any supported Node.js runtime handler: "index.handler", code: lambda.Code.fromInline(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; `), }); // ... } } module.exports = { HelloCdkStack }
Python

Befindet sich inhello_cdk/hello_cdk_stack.py:

# ... class HelloCdkStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) # Modify the Lambda function resource my_function = _lambda.Function( self, "HelloWorldFunction", runtime = _lambda.Runtime.NODEJS_20_X, # Provide any supported Node.js runtime handler = "index.handler", code = _lambda.Code.from_inline( """ exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; """ ), ) # ...
Java

Befindet sich insrc/main/java/…​/HelloCdkStack.java:

// ... public class HelloCdkStack extends Stack { public HelloCdkStack(final Construct scope, final String id) { this(scope, id, null); } public HelloCdkStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props); // Modify the Lambda function resource Function myFunction = Function.Builder.create(this, "HelloWorldFunction") .runtime(Runtime.NODEJS_20_X) // Provide any supported Node.js runtime .handler("index.handler") .code(Code.fromInline( "exports.handler = async function(event) {" + " return {" + " statusCode: 200," + " body: JSON.stringify('Hello CDK!')" + " };" + "};")) .build(); // ... } }
C#
// ... namespace HelloCdk { public class HelloCdkStack : Stack { internal HelloCdkStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { // Modify the Lambda function resource var myFunction = new Function(this, "HelloWorldFunction", new FunctionProps { Runtime = Runtime.NODEJS_20_X, // Provide any supported Node.js runtime Handler = "index.handler", Code = Code.FromInline(@" exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; "), }); // ... } } }
Go
// ... type HelloCdkStackProps struct { awscdk.StackProps } func NewHelloCdkStack(scope constructs.Construct, id string, props *HelloCdkStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) // Modify the Lambda function resource myFunction := awslambda.NewFunction(stack, jsii.String("HelloWorldFunction"), &awslambda.FunctionProps{ Runtime: awslambda.Runtime_NODEJS_20_X(), // Provide any supported Node.js runtime Handler: jsii.String("index.handler"), Code: awslambda.Code_FromInline(jsii.String(` exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; `)), }) // ... }

Derzeit haben Ihre Codeänderungen keine direkten Aktualisierungen an Ihrer bereitgestellten Lambda-Ressource vorgenommen. Ihr Code definiert den gewünschten Zustand Ihrer Ressource. Um Ihre bereitgestellte Ressource zu ändern, verwenden Sie die CDK-CLI, um den gewünschten Status in einer neuen AWS CloudFormation Vorlage zu synthetisieren. Anschließend stellen Sie Ihre neue CloudFormation Vorlage als Änderungssatz bereit. Mit Änderungssätzen werden nur die Änderungen vorgenommen, die erforderlich sind, um den neuen gewünschten Status zu erreichen.

Führen Sie den cdk diff Befehl aus, um eine Vorschau Ihrer Änderungen anzuzeigen. Im Folgenden wird ein Beispiel gezeigt:

$ cdk diff Stack HelloCdkStack Hold on while we create a read-only change set to get a diff with accurate replacement information (use --method=template to use a less accurate but faster template-only diff) Resources [~] AWS::Lambda::Function HelloWorldFunction HelloWorldFunction<unique-identifier> └─ [~] Code └─ [~] .ZipFile: ├─ [-] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello World!'), }; }; └─ [+] exports.handler = async function(event) { return { statusCode: 200, body: JSON.stringify('Hello CDK!'), }; }; ✨ Number of stacks with differences: 1

Um diesen Unterschied zu erstellen, fragt die CDK-CLI in Ihrem AWS Kontokonto nach der neuesten AWS CloudFormation Vorlage für den HelloCdkStack Stack ab. Dann vergleicht es die neueste Vorlage mit der Vorlage, die es gerade aus Ihrer App synthetisiert hat.

Führen Sie den cdk deploy Befehl aus, um Ihre Änderungen zu implementieren. Im Folgenden wird ein Beispiel gezeigt:

$ cdk deploy ✨ Synthesis time: 2.12s HelloCdkStack: start: Building <unique-identifier>:current_account-current_region HelloCdkStack: success: Built <unique-identifier>:current_account-current_region HelloCdkStack: start: Publishing <unique-identifier>:current_account-current_region HelloCdkStack: success: Published <unique-identifier>:current_account-current_region HelloCdkStack: deploying... [1/1] HelloCdkStack: creating CloudFormation changeset... ✅ HelloCdkStack ✨ Deployment time: 26.96s Outputs: HelloCdkStack.myFunctionUrlOutput = https://<unique-identifier>.lambda-url.<Region>.on.aws/ Stack ARN: arn:aws:cloudformation:<Region:account-id>:stack/HelloCdkStack/<unique-identifier> ✨ Total time: 29.07s

Um mit Ihrer Anwendung zu interagieren, wiederholen Sie Schritt 10: Interagieren Sie mit Ihrer Anwendung auf AWS. Im Folgenden wird ein Beispiel gezeigt:

$ curl https://<api-id>.lambda-url.<Region>.on.aws/ "Hello CDK!"%

Schritt 12: Löschen Sie Ihre Bewerbung

In diesem Schritt verwenden Sie den cdk destroy CDK-CLI-Befehl, um Ihre Anwendung zu löschen. Dieser Befehl löscht den CloudFormation Stack, der Ihrem CDK-Stack zugeordnet ist, einschließlich der Ressourcen, die Sie erstellt haben.

Um Ihre Anwendung zu löschen, führen Sie den cdk destroy Befehl aus und bestätigen Sie Ihre Anfrage, die Anwendung zu löschen. Im Folgenden wird ein Beispiel gezeigt:

$ cdk destroy Are you sure you want to delete: HelloCdkStack (y/n)? y HelloCdkStack: destroying... [1/1] ✅ HelloCdkStack: destroyed

Nächste Schritte

Herzlichen Glückwunsch! Sie haben dieses Tutorial abgeschlossen und das AWS CDK verwendet, um Ressourcen in der AWS Cloud erfolgreich zu erstellen, zu ändern und zu löschen. Sie sind jetzt bereit, das AWS CDK zu verwenden.

Weitere Informationen zur Verwendung des AWS CDK in Ihrer bevorzugten Programmiersprache finden Sie unter Arbeiten mit der AWS CDK-Bibliothek.

Weitere Ressourcen finden Sie unter den folgenden Links:

  • Probieren Sie den CDK-Workshop aus, wenn Sie einen ausführlicheren Überblick über ein komplexeres Projekt erhalten möchten.

  • Sehen Sie sich die API-Referenz an, um mit der Erkundung der CDK-Konstrukte zu beginnen, die für Ihre bevorzugten Dienste verfügbar sind. AWS

  • Besuchen Sie Construct Hub, um Konstrukte zu entdecken, die von und anderen erstellt AWS wurden.

  • Entdecken Sie Beispiele für die Verwendung des AWS CDK.

Das AWS CDK ist ein Open-Source-Projekt. Wie Sie dazu beitragen können, finden Sie unter Zum AWS Cloud Development Kit (AWS CDK) beitragen.