Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild - AWS CodeBuild

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Implementa una funzione Lambda utilizzando AWS SAM con Lambda Java CodeBuild

Il AWS Serverless Application Model (AWS SAM) è un framework open source per la creazione di applicazioni serverless. Per ulteriori informazioni, consulta il AWS Serverless Application Modelrepository su. GitHub Il seguente esempio di Java utilizza Gradle per creare e testare una AWS Lambda funzione. Dopodiché, la AWS SAM CLI viene utilizzata per distribuire il AWS CloudFormation modello e il pacchetto di distribuzione. Utilizzando CodeBuild Lambda, le fasi di compilazione, test e implementazione vengono tutte gestite automaticamente, consentendo di aggiornare rapidamente l'infrastruttura senza l'intervento manuale in un'unica build.

Configura il tuo repository AWS SAM

Crea un AWS SAM Hello World progetto utilizzando la AWS SAM CLI.

Per creare il tuo progetto AWS SAM
  1. Segui le istruzioni contenute nella Guida per gli AWS Serverless Application Model sviluppatori per l'installazione della AWS SAM CLI sul tuo computer locale.

  2. Esegui sam init e seleziona la seguente configurazione del progetto.

    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. Carica la cartella AWS SAM del progetto in un repository di sorgenti supportato. Per un elenco dei tipi di sorgenti supportati, consulta ProjectSource.

Creare un progetto CodeBuild Lambda Java

Crea un progetto AWS CodeBuild Lambda Java e configura le autorizzazioni IAM necessarie per la build.

Per creare il tuo progetto CodeBuild Lambda Java
  1. Apri la AWS CodeBuild console all'indirizzo https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Se viene visualizzata una pagina di CodeBuild informazioni, scegli Crea progetto di compilazione. Altrimenti, nel riquadro di navigazione, espandi Crea, scegli Crea progetti, quindi scegli Crea progetto di compilazione.

  3. In Project name (Nome progetto) immettere un nome per questo progetto di compilazione. I nomi dei progetti di compilazione devono essere univoci per ogni account AWS. Puoi anche includere una descrizione opzionale del progetto di compilazione per aiutare gli altri utenti a capire a cosa serve questo progetto.

  4. In Source, seleziona il repository di origine in cui si trova il AWS SAM progetto.

  5. In Environment (Ambiente):

    • Per Compute, seleziona Lambda.

    • Per Runtime (s), seleziona Java.

    • Per Image, seleziona aws/codebuild/amazonlinux-x86_64-lambda-standard:corretto21.

    • Per Ruolo di servizio, lascia selezionato Nuovo ruolo di servizio. Prendi nota del nome del ruolo. Ciò sarà necessario quando aggiornerai le autorizzazioni IAM del progetto più avanti in questo esempio.

  6. Scegliere Create build project (Crea progetto di compilazione).

  7. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  8. Nel riquadro di navigazione, scegli Ruoli e seleziona il ruolo di servizio associato al tuo progetto. Puoi trovare il tuo ruolo nel progetto CodeBuild selezionando il progetto di compilazione, scegliendo Modifica, Ambiente e quindi Ruolo di servizio.

  9. Scegli la scheda Relazioni di attendibilità e quindi Modifica policy di attendibilità.

  10. Aggiungi la seguente policy in linea al tuo ruolo IAM. Questo verrà utilizzato per implementare la tua AWS SAM infrastruttura in un secondo momento. Per ulteriori informazioni, consulta Aggiunta e rimozione di autorizzazioni per identità IAM nella Guida per l'utente di IAM .

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

Configura il progetto buildspec

Per creare, testare e distribuire la tua funzione Lambda CodeBuild , legge ed esegue i comandi di compilazione da un buildspec.

Per configurare il tuo progetto buildspec
  1. Nella CodeBuild console, seleziona il tuo progetto di build, quindi scegli Modifica e Buildspec.

  2. In Buildspec, scegli Inserisci comandi di compilazione e poi Passa all'editor.

  3. Elimina i comandi di compilazione precompilati e incollali nella seguente buildspec.

    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. Selezionare Update buildspec (Aggiorna buildspec).

Implementa la tua infrastruttura AWS SAM Lambda

Usa CodeBuild Lambda per implementare automaticamente la tua infrastruttura Lambda

Per implementare la tua infrastruttura Lambda
  1. Selezionare Start build (Avvia compilazione). Questo creerà, testerà e distribuirà automaticamente AWS SAM l'applicazione per utilizzarla. AWS Lambda AWS CloudFormation

  2. Una volta terminata la compilazione, accedi alla AWS Lambda console e cerca la tua nuova funzione Lambda sotto il nome del AWS SAM progetto.

  3. Testa la tua funzione Lambda selezionando API Gateway nella panoramica delle funzioni, quindi facendo clic sull'URL dell'endpoint API. Dovresti vedere una pagina aperta con il messaggio. "message": "hello world"

Pulisci la tua infrastruttura

Per evitare ulteriori addebiti per le risorse utilizzate durante questo tutorial, elimina le risorse create dal AWS SAM modello e CodeBuild.

Per ripulire la tua infrastruttura
  1. Vai alla AWS CloudFormation console e selezionaaws-sam-cli-managed-default.

  2. In Risorse, svuota il bucket SamCliSourceBucket di distribuzione.

  3. Elimina lo aws-sam-cli-managed-default stack.

  4. Elimina lo AWS CloudFormation stack associato al tuo AWS SAM progetto. Questo stack dovrebbe avere lo stesso nome del tuo AWS SAM progetto.

  5. Accedi alla CloudWatch console ed elimina i gruppi di CloudWatch log associati al tuo CodeBuild progetto.

  6. Vai alla CodeBuild console ed elimina il CodeBuild progetto scegliendo Elimina progetto di compilazione.