View a markdown version of this page

Stellen Sie eine Lambda-Funktion bereit 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.

Stellen Sie eine Lambda-Funktion bereit mit AWS SAM mit CodeBuild Lambda Java

The AWS Serverless Application Model (AWS SAM) ist ein Open-Source-Framework für die Erstellung serverloser Anwendungen. Weitere Informationen finden Sie im AWS Serverless Application Model Repository unter. 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 CloudFormation Vorlage und das Bereitstellungspaket bereitzustellen. Durch die Verwendung von CodeBuild Lambda werden die Build-, Test- und Bereitstellungsschritte automatisch ausgeführt, sodass die Infrastruktur schnell und ohne manuelles Eingreifen in einem einzigen Build aktualisiert werden kann.

Richten Sie Ihre ein AWS SAM Repository

Erstellen Sie ein AWS SAM Hello World Projekt mit der AWS SAM CLI.

Um Ihre zu erstellen AWS SAM Projekt
  1. Folgen Sie den Anweisungen im AWS Serverless Application Model Entwicklerhandbuch zur Installation der AWS SAM CLI auf Ihrem lokalen Computer.

  2. Führen Sie die folgende Projektkonfiguration aus sam init und wählen Sie sie 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 Sie ein CodeBuild Lambda-Java-Projekt

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

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

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

  3. Geben Sie unter Project name (Projektname) einen Namen für dieses Build-Projekt ein. Die Namen der Build-Projekte müssen für jedes AWS Konto eindeutig sein. Sie können auch eine optionale Beschreibung des Build-Projekts hinzufügen, damit andere Benutzer 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 Compute Lambda aus.

    • Wählen Sie für Runtime (s) Java aus.

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

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

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

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

  8. Wählen Sie im Navigationsbereich Rollen und dann die Ihrem Projekt zugeordnete Servicerolle aus. 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 später für die Bereitstellung Ihrer AWS SAM Infrastruktur verwendet. Informationen finden Sie im Abschnitt Hinzufügen und Entfernen von IAM-Identitätsberechtigungen im -IAM-Benutzerhandbuch.

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

Richten Sie das Projekt buildspec ein

CodeBuild Liest Build-Befehle aus einer Buildspec und führt sie aus, um Ihre Lambda-Funktion zu erstellen, zu testen und bereitzustellen.

Um die Buildspec Ihres Projekts einzurichten
  1. Wählen Sie in der CodeBuild Konsole Ihr Build-Projekt aus und wählen Sie dann Bearbeiten und Buildspec.

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

  3. Löschen Sie die vorgefüllten Build-Befehle und fügen Sie die folgende Buildspec 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).

Stellen Sie Ihr bereit AWS SAM Lambda-Infrastruktur

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

Um Ihre Lambda-Infrastruktur bereitzustellen
  1. Wählen Sie Start build (Build starten). Dadurch wird Ihre AWS SAM Anwendung automatisch erstellt, getestet und zur AWS Lambda Nutzung CloudFormation bereitgestellt.

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

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

Bereinigen Sie Ihre Infrastruktur

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

Um Ihre Infrastruktur zu bereinigen
  1. Navigieren Sie zur CloudFormation Konsole und wählen Sie dieaws-sam-cli-managed-default.

  2. Leeren Sie unter Ressourcen den Deployment-BucketSamCliSourceBucket.

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

  4. Löschen Sie den mit Ihrem AWS SAM Projekt verknüpften CloudFormation Stapel. Dieser Stapel sollte den gleichen Namen wie Ihr AWS SAM Projekt haben.

  5. Navigieren Sie zur CloudWatch Konsole und löschen Sie die mit Ihrem CodeBuild Projekt verknüpften CloudWatch Protokollgruppen.

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