Bereitstellen einer Lambda-Funktion mit AWS SAM mit CodeBuild Lambda Java - AWS CodeBuild

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.

Bereitstellen einer Lambda-Funktion mit AWS SAM mit CodeBuild Lambda Java

Die AWS Serverless Application Model (AWS SAM) ist ein Open-Source-Framework für die Erstellung von Serverless-Anwendungen. Weitere Informationen finden Sie im AWS Serverless Application ModelRepository auf GitHub. Das folgende Java-Beispiel verwendet Gradle, um eine AWS Lambda Funktion zu erstellen und zu testen. Danach wird die AWS SAM CLI verwendet, um die AWS CloudFormation Vorlage und das Bereitstellungspaket bereitzustellen. Durch die Verwendung von CodeBuild Lambda werden die Build-, Test- und Bereitstellungsschritte alle automatisch ausgeführt, sodass die Infrastruktur schnell und ohne manuellen Eingriff in einem einzigen Build aktualisiert werden kann.

Einrichten Ihres AWS SAMRepositorys

Erstellen Sie ein -AWS SAMHello WorldProjekt mit der -AWS SAMCLI.

So erstellen Sie Ihr AWS SAM Projekt
  1. Folgen Sie den Anweisungen im -AWS Serverless Application ModelEntwicklerhandbuch zum Installieren der AWS SAM -CLI auf Ihrem lokalen Computer.

  2. Führen Sie aus sam init und wählen Sie die folgende Projektkonfiguration aus.

    Which template source would you like to use?: 1 - AWS Quick Start Templates Choose an AWS Quick Start application template: 1 - Hello World Example Use the most popular runtime and package type? (Python and zip) [y/N]: N Which runtime would you like to use?: 8 - java21 What package type would you like to use?: 1 - Zip Which dependency manager would you like to use?: 1 - gradle Would you like to enable X-Ray tracing on the function(s) in your application? [y/N]: N Would you like to enable monitoring using CloudWatch Application Insights? [y/N]: N Would you like to set Structured Logging in JSON format on your Lambda functions? [y/N]: N Project name [sam-app]: <insert project name>
  3. Laden Sie den AWS SAM Projektordner in ein unterstütztes Quell-Repository hoch. Eine Liste der unterstützten Quelltypen finden Sie unter ProjectSource.

Erstellen eines CodeBuild Lambda-Java-Projekts

Erstellen Sie ein AWS CodeBuild Lambda-Java-Projekt und richten Sie die für den Build erforderlichen IAM-Berechtigungen ein.

So erstellen Sie Ihr CodeBuild Lambda-Java-Projekt
  1. Öffnen Sie die -AWS CodeBuildKonsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wenn eine CodeBuild Informationsseite angezeigt wird, wählen Sie Build-Projekt erstellen aus. Erweitern Sie andernfalls im Navigationsbereich Build , wählen Sie Build-Projekte und dann Build-Projekt erstellen aus.

  3. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Build-Projektnamen müssen in allen AWS-Konten eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts einfügen, um anderen Benutzern zu helfen zu verstehen, wofür dieses Projekt verwendet wird.

  4. Wählen Sie unter Quelle das Quell-Repository aus, in dem sich Ihr AWS SAM Projekt befindet.

  5. In Environment (Umgebung):

    • Wählen Sie für Datenverarbeitung die Option Lambda aus.

    • Wählen Sie für Laufzeit(en) Java aus.

    • Wählen Sie für Image aws/codebuild/amazonlinux-x86_64-lambda-standard :corretto21 aus.

    • Lassen Sie für Servicerolle die Option Neue Servicerolle ausgewählt. Notieren Sie sich den Rollennamen . Dies ist erforderlich, wenn Sie die IAM-Berechtigungen des Projekts später in diesem Beispiel aktualisieren.

  6. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  7. Öffnen Sie die IAM-Konsole unter https://console.aws.amazon.com/iam/.

  8. Wählen Sie im Navigationsbereich Rollen und dann die Servicerolle aus, die Ihrem Projekt zugeordnet ist. Sie finden Ihre Projektrolle in , CodeBuild indem Sie Ihr Build-Projekt auswählen, Bearbeiten, Umgebung und dann Servicerolle auswählen.

  9. Wählen Sie die Registerkarte Trust Relationships (Vertrauensstellungen) und dann Edit trust policy (Vertrauensrichtlinie bearbeiten) aus.

  10. Fügen Sie Ihrer IAM-Rolle die folgende Inline-Richtlinie hinzu. Dies wird verwendet, um Ihre AWS SAM Infrastruktur später bereitzustellen. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im -IAM-Benutzerhandbuch.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": [ "cloudformation:*", "lambda:*", "iam:*", "apigateway:*", "s3:*" ], "Resource": [ "*" ] } ] }

Einrichten der Projekt-Build-Spezifikation

Um Ihre Lambda-Funktion zu erstellen, zu testen und bereitzustellen, CodeBuild liest und führt Build-Befehle aus einer Build-Spezifikation aus.

So richten Sie Ihre Projekt-Build-Spezifikation ein
  1. Wählen Sie in der - CodeBuild Konsole Ihr Build-Projekt und dann Bearbeiten und Buildspec aus.

  2. Wählen Sie unter Buildspec die Option Build-Befehle einfügen und dann Zum Editor wechseln aus.

  3. Löschen Sie die vorausgefüllten Build-Befehle und fügen Sie die folgende Build-Spezifikation ein.

    version: 0.2 env: variables: GRADLE_DIR: "HelloWorldFunction" phases: build: commands: - echo "Running unit tests..." - cd $GRADLE_DIR; gradle test; cd .. - echo "Running build..." - sam build --template-file template.yaml - echo "Running deploy..." - sam package --output-template-file packaged.yaml --resolve-s3 --template-file template.yaml - yes | sam deploy
  4. Wählen Sie Update buildspec (Buildspec aktualisieren).

Bereitstellen Ihrer AWS SAM Lambda-Infrastruktur

Verwenden Sie CodeBuild Lambda, um Ihre Lambda-Infrastruktur automatisch bereitzustellen

So stellen Sie Ihre Lambda-Infrastruktur bereit
  1. Wählen Sie Start build (Build starten). Dadurch wird Ihre AWS SAM Anwendung automatisch AWS Lambda mithilfe von erstellt, getestet und in bereitgestelltAWS CloudFormation.

  2. Sobald der Build abgeschlossen ist, navigieren Sie zur AWS Lambda Konsole und suchen Sie nach Ihrer neuen Lambda-Funktion unter dem AWS SAM Projektnamen.

  3. Testen Sie Ihre Lambda-Funktion, indem Sie API Gateway in der Funktionsübersicht auswählen und dann auf die API-Endpunkt-URL klicken. Sie sollten eine Seite mit der Meldung geöffnet sehen"message": "hello world".

Bereinigen Ihrer Infrastruktur

Um weitere Gebühren für Ressourcen zu vermeiden, die Sie in diesem Tutorial verwendet haben, löschen Sie die Ressourcen, die von Ihrer AWS SAM Vorlage und erstellt wurden CodeBuild.

So bereinigen Sie Ihre Infrastruktur
  1. Navigieren Sie zur -AWS CloudFormationKonsole und wählen Sie ausaws-sam-cli-managed-default.

  2. Leeren Sie unter Ressourcen den Bereitstellungs-Bucket SamCliSourceBucket.

  3. Löschen Sie den aws-sam-cli-managed-defaultStack.

  4. Löschen Sie den AWS CloudFormationStack, der Ihrem AWS SAM Projekt zugeordnet ist. Dieser Stack sollte denselben Namen wie Ihr AWS SAM Projekt haben.

  5. Navigieren Sie zur - CloudWatch Konsole und löschen Sie die CloudWatch Protokollgruppen, die Ihrem CodeBuild Projekt zugeordnet sind.

  6. Navigieren Sie zur - CodeBuild Konsole und löschen Sie Ihr CodeBuild Projekt, indem Sie Build-Projekt löschen auswählen.