Crea la tua prima funzione Lambda - AWS Lambda

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à.

Crea la tua prima funzione Lambda

Per iniziare a utilizzare Lambda, usa la console Lambda per creare una funzione. In pochi minuti puoi creare e implementare una funzione, e testarla nella console.

Mano a mano che esegui il tutorial, apprenderai alcuni concetti fondamentali di Lambda, ad esempio come passare argomenti a una funzione tramite l'oggetto evento di Lambda. Imparerai anche come restituire gli output di log dalla tua funzione e come visualizzare i log di invocazione della funzione in Amazon Logs. CloudWatch

A scopo di semplificazione, crea la funzione utilizzando il runtime Python o Node.js. Con questi linguaggi interpretati, puoi modificare il codice della funzione direttamente nell'editor del codice integrato della console. Con linguaggi compilati come Java e C#, devi creare un pacchetto di distribuzione sulla tua macchina di build locale e caricarlo su Lambda. Per informazioni sull'implementazione di funzioni in Lambda tramite altri runtime, consulta i link nella sezione Risorse aggiuntive e fasi successive.

Suggerimento

Per scoprire come creare soluzioni serverless, consulta la Guida allo sviluppo serverless.

Prerequisiti

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

Per iscriverti a un Account AWS
  1. Apri la https://portal.aws.amazon.com/billing/registrazione.

  2. Segui le istruzioni online.

    Nel corso della procedura di registrazione riceverai una telefonata, durante la quale sarà necessario inserire un codice di verifica attraverso la tastiera del telefono.

    Quando ti iscrivi a un Account AWS, Utente root dell'account AWSviene creato un. L'utente root dispone dell'accesso a tutte le risorse e tutti i Servizi AWS nell'account. Come best practice di sicurezza, assegna l'accesso amministrativo a un utente e utilizza solo l'utente root per eseguire attività che richiedono l'accesso di un utente root.

AWS ti invia un'email di conferma dopo il completamento della procedura di registrazione. In qualsiasi momento, puoi visualizzare l'attività corrente del tuo account e gestirlo accedendo a https://aws.amazon.com/e scegliendo Il mio account.

Dopo esserti registrato Account AWS, proteggi Utente root dell'account AWS AWS IAM Identity Center, abilita e crea un utente amministrativo in modo da non utilizzare l'utente root per le attività quotidiane.

Proteggi i tuoi Utente root dell'account AWS
  1. Accedi AWS Management Consolecome proprietario dell'account scegliendo Utente root e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password.

    Per informazioni sull'accesso utilizzando un utente root, consulta la pagina Signing in as the root user della Guida per l'utente di Accedi ad AWS .

  2. Abilita l'autenticazione a più fattori (MFA) per l'utente root.

    Per istruzioni, consulta Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console) nella Guida per l'utente IAM.

Crea un utente con accesso amministrativo
  1. Abilita Centro identità IAM.

    Per istruzioni, consulta Abilitazione di AWS IAM Identity Center nella Guida per l'utente di AWS IAM Identity Center .

  2. In IAM Identity Center, assegna l'accesso amministrativo a un utente.

    Per un tutorial sull'utilizzo di IAM Identity Center directory come fonte di identità, consulta Configurare l'accesso utente con l'impostazione predefinita IAM Identity Center directory nella Guida per l'AWS IAM Identity Center utente.

Accesso come utente amministratore
  • Per accedere con l'utente IAM Identity Center, utilizza l'URL di accesso che è stato inviato al tuo indirizzo e-mail quando hai creato l'utente IAM Identity Center.

    Per informazioni sull'accesso utilizzando un utente IAM Identity Center, consulta AWS Accedere al portale di accesso nella Guida per l'Accedi ad AWS utente.

Assegna l'accesso a ulteriori utenti
  1. In IAM Identity Center, crea un set di autorizzazioni conforme alla best practice dell'applicazione di autorizzazioni con il privilegio minimo.

    Segui le istruzioni riportate nella pagina Creazione di un set di autorizzazioni nella Guida per l'utente di AWS IAM Identity Center .

  2. Assegna al gruppo prima gli utenti e poi l'accesso con autenticazione unica (Single Sign-On).

    Per istruzioni, consulta Aggiungere gruppi nella Guida per l'utente di AWS IAM Identity Center .

Creare una funzione Lambda con la console

In questo esempio, la funzione acquisisce un oggetto JSON contenente due valori interi etichettati "length" e "width". La funzione moltiplica tali valori per calcolare un'area e la restituisce come stringa JSON.

La funzione stampa anche l'area calcolata, insieme al nome del relativo gruppo di CloudWatch log. Più avanti nel tutorial, imparerai a usare CloudWatch Logs per visualizzare i record di invocazione delle tue funzioni.

Per creare una funzione Lambda Hello world con la console
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli Crea funzione.

  3. Scegli Crea da zero.

  4. Nel riquadro Informazioni base, per Nome funzione inserisci myLambdaFunction.

  5. Per Runtime, scegli Node.js 22.x o Python 3.13.

  6. Lascia l'architettura impostata su x86_64 e scegli Crea funzione.

Oltre a una funzione semplice che restituisce il messaggio Hello from Lambda!, Lambda crea anche un ruolo di esecuzione per la tua funzione. Un ruolo di esecuzione è un ruolo AWS Identity and Access Management (IAM) che concede a una funzione Lambda l'autorizzazione all' Servizi AWS accesso e alle risorse. Per la tua funzione, il ruolo creato da Lambda concede le autorizzazioni di base per la scrittura nei registri. CloudWatch

Utilizza l'editor di codice integrato della console per sostituire il codice Hello world creato da Lambda con il codice della tua funzione.

Node.js
Per modificare il codice nella console
  1. Scegli la scheda Codice.

    Nell'editor di codice integrato della console, dovresti vedere il codice della funzione creato da Lambda. Se non vedi la scheda index.js nell'editor di codice, seleziona index.js in Esplora file, come illustrato nel diagramma seguente.

    Diagramma che mostra l'editor di codice della console e il file index.mjs in Esplora file
  2. Incolla il codice seguente nella scheda index.js, sostituendo il codice creato da Lambda.

    export const handler = async (event, context) => { const length = event.length; const width = event.width; let area = calculateArea(length, width); console.log(`The area is ${area}`); console.log('CloudWatch log group: ', context.logGroupName); let data = { "area": area, }; return JSON.stringify(data); function calculateArea(length, width) { return length * width; } };
  3. Nella sezione DEPLOY, scegli Implementa per aggiornare il codice della tua funzione:

    Pulsante Implementa nell'editor di codice della console Lambda
Comprendere il codice della funzione

Prima di passare alla fase successiva, esaminiamo il codice della funzione e apprendiamo alcuni concetti chiave di Lambda.

  • Il gestore Lambda:

    La tua funzione Lambda contiene una funzione Node.js denominata handler. Una funzione Lambda in Node.js può contenere più di una funzione Node.js, ma la funzione del gestore è sempre il punto di ingresso al codice. Quando viene richiamata la funzione, Lambda esegue questo metodo.

    Una volta creata la funzione Hello world utilizzando la console, Lambda imposta automaticamente su handler il nome del metodo del gestore per la funzione. Non modificare il nome di questa funzione Node.js. Se modifichi il nome, Lambda non sarà in grado di eseguire il codice quando richiami la funzione.

    Per ulteriori informazioni sul gestore Lambda in Node.js, consulta Definire l'handler delle funzioni Lambda in Node.js.

  • L'oggetto evento Lambda:

    La funzione handler acquisisce due argomenti, event e context. Un evento in Lambda è un documento in formato JSON contenente i dati che la funzione deve elaborare.

    Se la funzione viene richiamata da un'altra Servizio AWS, l'oggetto evento contiene informazioni sull'evento che ha causato l'invocazione. Ad esempio, se la funzione viene richiamata quando un oggetto viene caricato in un bucket Amazon Simple Storage Service (Amazon S3), l'evento conterrà il nome del bucket e la chiave dell'oggetto.

    In questo esempio verrà creato un evento nella console inserendo un documento in formato JSON con due coppie chiave-valore.

  • L'oggetto contestuale Lambda:

    Il secondo argomento acquisito dalla funzione è context. Lambda passa l'oggetto contestuale alla tua funzione automaticamente. L'oggetto contestuale contiene informazioni sull'invocazione della funzione e sull'ambiente di esecuzione.

    Puoi utilizzare l'oggetto contestuale per generare informazioni sull'invocazione della funzione a scopo di monitoraggio. In questo esempio, la funzione utilizza il logGroupName parametro per restituire il nome del relativo CloudWatch gruppo di log.

    Per ulteriori informazioni sull'oggetto contestuale Lambda in Node.js, consulta Utilizzo dell'oggetto di contesto Lambda per recuperare le informazioni sulla funzione Node.js.

  • Accesso a Lambda:

    Con Node.js, puoi usare metodi della console come console.log e console.error per inviare informazioni al log della funzione. Il codice di esempio utilizza console.log istruzioni per restituire l'area calcolata e il nome del gruppo CloudWatch Logs della funzione. Puoi utilizzare anche qualunque libreria di log che scrive in stdout o stderr.

    Per ulteriori informazioni, consulta Registrare e monitorare funzioni Lambda in Node.js. Per informazioni sui log in altri runtime, consulta le pagine “Creazione con” per i runtime a cui sei interessato.

Python
Per modificare il codice nella console
  1. Scegli la scheda Codice.

    Nell'editor di codice integrato della console, dovresti vedere il codice della funzione creato da Lambda. Se non vedi la scheda lambda_function.py nell'editor di codice, seleziona lambda_function.py in Esplora file, come illustrato nel diagramma seguente.

    Diagramma che mostra l'editor di codice della console e il file lambda_function.py in Esplora file
  2. Incolla il codice seguente nella scheda lambda_function.py, sostituendo il codice creato da Lambda.

    import json import logging logger = logging.getLogger() logger.setLevel(logging.INFO) def lambda_handler(event, context): # Get the length and width parameters from the event object. The # runtime converts the event object to a Python dictionary length = event['length'] width = event['width'] area = calculate_area(length, width) print(f"The area is {area}") logger.info(f"CloudWatch logs group: {context.log_group_name}") # return the calculated area as a JSON string data = {"area": area} return json.dumps(data) def calculate_area(length, width): return length*width
  3. Nella sezione DEPLOY, scegli Implementa per aggiornare il codice della tua funzione:

    Pulsante Implementa nell'editor di codice della console Lambda
Comprendere il codice della funzione

Prima di passare alla fase successiva, esaminiamo il codice della funzione e apprendiamo alcuni concetti chiave di Lambda.

  • Il gestore Lambda:

    La funzione Lambda contiene una funzione Python denominata lambda_handler. Una funzione Lambda in Python può contenere più di una funzione Python, ma la funzione del gestore è sempre il punto di ingresso al codice. Quando viene richiamata la funzione, Lambda esegue questo metodo.

    Una volta creata la funzione Hello world utilizzando la console, Lambda imposta automaticamente su lambda_handler il nome del metodo del gestore per la funzione. Non modificare il nome di questa funzione Python. Se modifichi il nome, Lambda non sarà in grado di eseguire il codice quando richiami la funzione.

    Per ulteriori informazioni sul gestore Lambda in Python, consulta Definire l'handler della funzione Lambda in Python.

  • L'oggetto evento Lambda:

    La funzione lambda_handler acquisisce due argomenti, event e context. Un evento in Lambda è un documento in formato JSON contenente i dati che la funzione deve elaborare.

    Se la funzione viene richiamata da un'altra Servizio AWS, l'oggetto evento contiene informazioni sull'evento che ha causato la chiamata. Ad esempio, se la funzione viene richiamata quando un oggetto viene caricato in un bucket Amazon Simple Storage Service (Amazon S3), l'evento conterrà il nome del bucket e la chiave dell'oggetto.

    In questo esempio verrà creato un evento nella console inserendo un documento in formato JSON con due coppie chiave-valore.

  • L'oggetto contestuale Lambda:

    Il secondo argomento acquisito dalla funzione è context. Lambda passa l'oggetto contestuale alla tua funzione automaticamente. L'oggetto contestuale contiene informazioni sull'invocazione della funzione e sull'ambiente di esecuzione.

    Puoi utilizzare l'oggetto contestuale per generare informazioni sull'invocazione della funzione a scopo di monitoraggio. In questo esempio, la funzione utilizza il log_group_name parametro per restituire il nome del relativo CloudWatch gruppo di log.

    Per ulteriori informazioni sull'oggetto contestuale Lambda in Python, consulta Utilizzo dell'oggetto del contesto Lambda per recuperare le informazioni sulla funzione Python.

  • Accesso a Lambda:

    Con Python, puoi usare un'istruzione print o una libreria di log Python per inviare informazioni al log della funzione. Per illustrare la differenza tra i dati acquisiti, il codice di esempio utilizza entrambi i metodi. In un'applicazione in produzione, è preferibile utilizzare una libreria di log.

    Per ulteriori informazioni, consulta Registrare e monitorare le funzioni Lambda con Python. Per informazioni sui log in altri runtime, consulta le pagine “Creazione con” per i runtime a cui sei interessato.

Richiamare la funzione Lambda tramite l'editor di codice della console

Per richiamare la funzione utilizzando l'editor di codice della console Lambda, devi prima creare un evento di test da inviare alla tua funzione. L'evento è un documento in formato JSON contenente due coppie chiave-valore con le chiavi "length" e "width".

Per creare un evento di test
  1. Nella sezione TEST EVENTS dell'editor di codice della console, scegli Crea evento di test.

    Pulsante Crea evento di test nell'editor di codice della console Lambda
  2. Per Event name (Nome evento), immettere myTestEvent.

  3. Nella sezione JSON dell'evento, sostituisci il codice JSON predefinito con il seguente:

    { "length": 6, "width": 7 }
  4. Seleziona Salva.

Per testare la funzione e visualizzare i record di invocazione nella console

Nella sezione TEST EVENTS dell'editor di codice della console, scegli l'icona di esecuzione accanto all'evento di test:

Pulsante Esegui evento di test nell'editor di codice della console Lambda

Al termine dell'esecuzione della funzione, verranno visualizzati i log della risposta e della funzione nella scheda OUTPUT. Sono visualizzati risultati simili ai seguenti:

Node.js
Status: Succeeded Test Event Name: myTestEvent Response "{\"area\":42}" Function Logs START RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Version: $LATEST 2024-08-31T23:39:45.313Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2024-08-31T23:39:45.331Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a REPORT RequestId: 5c012b0a-18f7-4805-b2f6-40912935034a Duration: 20.67 ms Billed Duration: 21 ms Memory Size: 128 MB Max Memory Used: 66 MB Init Duration: 163.87 ms Request ID 5c012b0a-18f7-4805-b2f6-40912935034a
Python
Status: Succeeded Test Event Name: myTestEvent Response "{\"area\": 42}" Function Logs START RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Version: $LATEST The area is 42 [INFO] 2024-08-31T23:43:26.428Z 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b REPORT RequestId: 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b Duration: 1.42 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 39 MB Init Duration: 123.74 ms Request ID 2d0b1579-46fb-4bf7-a6e1-8e08840eae5b

Quando richiami la tua funzione al di fuori della console Lambda, devi CloudWatch usare Logs per visualizzare i risultati di esecuzione della funzione.

Per visualizzare i record di invocazione della funzione nei registri CloudWatch
  1. Apri la pagina Log groups della console. CloudWatch

  2. Scegli il nome del gruppo di log per la funzione (/aws/lambda/myLambdaFunction). Questo è il nome del gruppo di log che la funzione ha stampato sulla console.

  3. Scorri verso il basso e scegli il flusso di log per le invocazioni delle funzioni che desideri esaminare.

    Elencare i flussi di log per una funzione Lambda.

    Verrà visualizzato un output simile al seguente:

    Node.js
    INIT_START Runtime Version: nodejs:22.v13 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:e3aaabf6b92ef8755eaae2f4bfdcb7eb8c4536a5e044900570a42bdba7b869d9 START RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Version: $LATEST 2024-08-23T22:04:15.809Z 5c012b0a-18f7-4805-b2f6-40912935034a INFO The area is 42 2024-08-23T22:04:15.810Z aba6c0fc-cf99-49d7-a77d-26d805dacd20 INFO CloudWatch log group: /aws/lambda/myLambdaFunction END RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 REPORT RequestId: aba6c0fc-cf99-49d7-a77d-26d805dacd20 Duration: 17.77 ms Billed Duration: 18 ms Memory Size: 128 MB Max Memory Used: 67 MB Init Duration: 178.85 ms
    Python
    INIT_START Runtime Version: python:3.13.v16 Runtime Version ARN: arn:aws:lambda:us-west-2::runtime:ca202755c87b9ec2b58856efb7374b4f7b655a0ea3deb1d5acc9aee9e297b072 START RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Version: $LATEST The area is 42 [INFO] 2024-09-01T00:05:22.464Z 9315ab6b-354a-486e-884a-2fb2972b7d84 CloudWatch logs group: /aws/lambda/myLambdaFunction END RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e REPORT RequestId: 9d4096ee-acb3-4c25-be10-8a210f0a9d8e Duration: 1.15 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 40 MB

Eliminazione

Quando hai terminato il lavoro con la funzione di esempio, eliminala. Puoi anche eliminare il gruppo di log che memorizza i log della funzione e il ruolo di esecuzione creato dalla console.

Per eliminare la funzione Lambda
  1. Aprire la pagina Functions (Funzioni) della console Lambda.

  2. Selezionare la funzione creata.

  3. Scegliere Operazioni, Elimina.

  4. Inserisci confirm nel campo di immissione del testo, quindi scegli Elimina.

Come eliminare il gruppo di log
  1. Apri la pagina Log groups page (Pagina dei gruppi di log) della console CloudWatch.

  2. Scegli il gruppo di log della funzione (/aws/lambda/myLambdaFunction).

  3. Scegli Actions (Azioni), Delete log group(s) (Elimina gruppo/i di log).

  4. Nella finestra di dialogo Delete log group(s) (Elimina gruppo/i di log) scegli Delete (Elimina).

Come eliminare il ruolo di esecuzione
  1. Apri la pagina Ruoli della console AWS Identity and Access Management (IAM).

  2. Seleziona il ruolo di esecuzione della funzione (ad esempio, myLambdaFunction-role-31exxmpl).

  3. Scegli Elimina.

  4. Nella finestra di dialogo Elimina ruolo, immetti il nome del ruolo, quindi scegli Elimina.

Risorse aggiuntive e fasi successive

Una volta creata e testata una semplice funzione Lambda tramite la console, completa le seguenti fasi successive: