Tutorial: Bereitstellen einer Lambda-Funktion mit dem AWS CDK - AWS CloudShell

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: Bereitstellen einer Lambda-Funktion mit dem AWS CDK

Dieses Tutorial zeigt Ihnen, wie Sie mithilfe von eine Lambda-Funktion für Ihr Konto bereitstellen. AWS Cloud Development Kit (AWS CDK)

Voraussetzungen

  • Starten Sie Ihr Konto für die Verwendung mit dem. AWS CDK Informationen zum Bootstrapping mit AWS CDK finden Sie unter Bootstrapping im v2 Developer Guide. AWS CDK Wenn Sie das Konto noch nicht gebootet haben, können Sie es ausführen. cdk bootstrap CloudShell

  • Stellen Sie sicher, dass Sie über die entsprechenden Berechtigungen verfügen, um Ressourcen für Ihr Konto bereitzustellen. Administratorrechte werden empfohlen.

Ablauf des Tutorials

Das folgende Tutorial beschreibt, wie Sie eine auf einem Docker-Container basierende Lambda-Funktion mithilfe von bereitstellen. AWS CDK

  1. Erstellen Sie einen neuen Ordner in Ihrem Home-Verzeichnis.

    mkdir ~/docker-cdk-tutorial
  2. Navigieren Sie zu dem Ordner, den Sie erstellt haben.

    cd ~/docker-cdk-tutorial
  3. Installieren Sie die AWS CDK Abhängigkeiten lokal.

    npm install aws-cdk aws-cdk-lib
    Bild des Befehls, der zur Installation der AWS CDK Abhängigkeiten verwendet wurde.
  4. Erstellen Sie ein AWS CDK Skelettprojekt in dem Ordner, den Sie erstellt haben.

    touch cdk.json mkdir lib touch lib/docker-tutorial.js lib/Dockerfile lib/hello.js
  5. Öffnen Sie die Datei nano cdk.json beispielsweise mit einem Texteditor und fügen Sie den folgenden Inhalt ein.

    { "app": "node lib/docker-tutorial.js" }
  6. Öffnen Sie die lib/docker-tutorial.js Datei und fügen Sie den folgenden Inhalt ein.

    // this file defines the CDK constructs we want to deploy const { App, Stack } = require('aws-cdk-lib'); const { DockerImageFunction, DockerImageCode } = require('aws-cdk-lib/aws-lambda'); const path = require('path'); // create an application const app = new App(); // define stack class DockerTutorialStack extends Stack { constructor(scope, id, props) { super(scope, id, props); // define lambda that uses a Docker container const dockerfileDir = path.join(__dirname); new DockerImageFunction(this, 'DockerTutorialFunction', { code: DockerImageCode.fromImageAsset(dockerfileDir), functionName: 'DockerTutorialFunction', }); } } // instantiate stack new DockerTutorialStack(app, 'DockerTutorialStack');
  7. Öffnen Sie die lib/Dockerfile und fügen Sie den folgenden Inhalt ein.

    # Use a NodeJS 20.x runtime FROM public.ecr.aws/lambda/nodejs:20 # Copy the function code to the LAMBDA_TASK_ROOT directory # This environment variable is provided by the lambda base image COPY hello.js ${LAMBDA_TASK_ROOT} # Set the CMD to the function handler CMD [ "hello.handler" ]
  8. Öffnen Sie die lib/hello.js Datei und fügen Sie den folgenden Inhalt ein.

    // define the handler exports.handler = async (event) => { // simply return a friendly success response const response = { statusCode: 200, body: JSON.stringify('Hello, World!'), }; return response; };
  9. Verwenden Sie die AWS CDK CLI, um das Projekt zu synthetisieren und die Ressourcen bereitzustellen. Sie müssen Ihr Konto booten.

    npx cdk synth npx cdk deploy --require-approval never
    Bild des Befehls zur Verwendung der AWS CDK CLI zur Synthese des Projekts und zur Bereitstellung der Ressourcen.
  10. Rufen Sie die Lambda-Funktion auf, um dies zu bestätigen und zu verifizieren.

    aws lambda invoke --function-name DockerTutorialFunction out.json jq . out.json
    Bild des Befehls, mit dem die Lambda-Funktion aufgerufen wurde.

    Sie haben jetzt erfolgreich eine Container-basierte Docker-Lambda-Funktion mit dem bereitgestellt. AWS CDK Weitere Informationen dazu finden Sie im v2 AWS CDK Developer Guide. AWS CDK Wenn Sie beim Durcharbeiten dieses Tutorials auf Fehler oder Probleme stoßen, finden Sie im Abschnitt zur Fehlerbehebung in diesem Handbuch Hilfe.

Bereinigen

Sie haben jetzt erfolgreich eine Container-basierte Docker-Lambda-Funktion mit dem bereitgestellt. AWS CDK Führen Sie innerhalb des AWS CDK Projekts den folgenden Befehl aus, um die zugehörigen Ressourcen zu löschen. Sie werden aufgefordert, den Löschvorgang zu bestätigen.

  • npx cdk destroy DockerTutorialStack
  • Führen Sie den folgenden Befehl aus, um die Dateien und Ressourcen, die Sie in diesem Tutorial erstellt haben, aus Ihrer AWS CloudShell Umgebung zu entfernen.

    cd ~ rm -rf ~/docker-cli-tutorial