

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

# Registrazione delle chiamate API Web Function utilizzando AWS CloudTrail
<a name="web-functions-logging-cloudtrail"></a>

Con [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html), puoi tenere traccia delle azioni intraprese da un utente, da un ruolo o Servizio AWS in Web Functions. AWS Lambda CloudTrail fornisce una registrazione di queste azioni. CloudTrail acquisisce le chiamate di Web Function come eventi di dati. È possibile utilizzare queste informazioni per determinare chi ha richiamato una funzione Web, quando e da dove, il che aiuta con l'analisi della sicurezza e il controllo operativo.

## Eventi relativi ai dati di Web Function in CloudTrail
<a name="web-functions-cloudtrail-data-events"></a>

Gli eventi relativi ai dati forniscono informazioni sulle operazioni eseguite su una risorsa. Ad esempio, l'invocazione di un endpoint Web Function è un evento relativo ai dati. Queste operazioni sono note anche come operazioni sul piano dei dati e spesso richiedono volumi elevati. Per impostazione predefinita, CloudTrail non registra gli eventi relativi ai dati e la **cronologia degli CloudTrail eventi** non li registra.

Per gli eventi di dati sono previsti costi aggiuntivi. Per ulteriori informazioni, consulta [Prezzi di CloudTrail ](https://aws.amazon.com/cloudtrail/pricing/).

È possibile registrare gli eventi relativi ai dati per il tipo di `AWS::Lambda::WebFunction` risorsa utilizzando la CloudTrail AWS CLI console o le operazioni CloudTrail API. CloudTrail registra ogni chiamata nell'area Regione AWS che ha fornito la richiesta e `awsRegion` identifica tale regione. A differenza dei log e delle metriche, gli eventi di chiamata non sono centralizzati nella regione di origine. Per un `PerRegion` endpoint `MultiRegion` or, utilizzate un trail multiregionale o un data store di eventi in modo da registrare le chiamate in ogni regione servita dall'endpoint.

La tabella seguente mostra il tipo di evento relativo ai dati per Web Functions.


| Tipo di evento di dati (console) | valore resources.type | API di dati registrate su CloudTrail | 
| --- | --- | --- | 
| Funzione Web Lambda | AWS::Lambda::WebFunction | InvokeWebFunctionEndpoint | 

CloudTrail registra i seguenti identificatori chiave per una chiamata di Web Function:


| Identificatore | Valore | 
| --- | --- | 
| eventSource | lambda.amazonaws.com | 
| eventName | InvokeWebFunctionEndpoint. Questo è il valore in base al quale filtrare. | 
| Azione IAM | lambda:InvokeWebFunctionEndpoint | 
| readOnly | false, perché una chiamata esegue il codice della funzione. | 
| resources.type | AWS::Lambda::WebFunction | 
| resources.ARN | La funzione ARN, non l'ARN dell'endpoint. I selettori Trail funzionano quindi a livello di funzione. | 

Il seguente selettore di eventi avanzato registra le chiamate per una sola funzione Web.

```
[
    {
        "Name": "web-function-invokes",
        "FieldSelectors": [
            { "Field": "eventCategory", "Equals": ["Data"] },
            { "Field": "resources.type", "Equals": ["AWS::Lambda::WebFunction"] },
            { "Field": "resources.ARN", "Equals": ["arn:aws:lambda:us-east-1:111122223333:web-function/hello-world"] }
        ]
    }
]
```

Per attivare gli eventi relativi ai dati su una traccia, utilizzare la procedura seguente.

**Per attivare e verificare gli eventi relativi ai dati di Web Function (AWS CLI)**

1. Crea o scegli il percorso che registrerà gli eventi relativi ai dati. Per istruzioni, consulta [Registrazione degli eventi relativi ai dati](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html) nella *Guida per l'AWS CloudTrail utente*.

1. Salva il seguente selettore di eventi avanzato come. `web-function-data-events.json` Registra le chiamate per una funzione Web. Per registrare le chiamate per ogni funzione Web nell'account, rimuovi il selettore di campo. `resources.ARN`

   ```
   [
     {
       "Name": "web-function-invocations",
       "FieldSelectors": [
         {
           "Field": "eventCategory",
           "Equals": ["Data"]
         },
         {
           "Field": "resources.type",
           "Equals": ["AWS::Lambda::WebFunction"]
         },
         {
           "Field": "resources.ARN",
           "Equals": [
             "arn:aws:lambda:us-east-1:111122223333:web-function/my-web-app"
           ]
         }
       ]
     }
   ]
   ```

1. Applica il selettore alla traccia:

   ```
   aws cloudtrail put-event-selectors \
       --trail-name {{my-trail}} \
       --advanced-event-selectors file://web-function-data-events.json
   ```
**Importante**  
`put-event-selectors`sostituisce i selettori di eventi esistenti del percorso. Se il percorso registra già altri eventi, includi i relativi selettori nello stesso file.

1. Invoca l'endpoint con una richiesta di test.

1. Interroga la destinazione del percorso per. `eventName = InvokeWebFunctionEndpoint` Verifica l'ARN della funzione, l'ora dell'evento, l'ID della richiesta, le informazioni sul chiamante disponibili per il percorso di autenticazione ed eventuali campi di errore condizionali. Se il selettore funziona, la query restituisce un `InvokeWebFunctionEndpoint` evento per la richiesta di test, simile all'esempio in. [Esempio: chiamata riuscita (chiamante non autenticato)](#web-functions-cloudtrail-example-success)

Per registrare invece eventi relativi ai dati in un data store di eventi CloudTrail Lake, aggiungi gli stessi selettori di campo all'event data store. Per ulteriori informazioni, consulta la *Guida per l’utente di AWS CloudTrail *.

## Campi in un evento InvokeWebFunctionEndpoint
<a name="web-functions-cloudtrail-event-fields"></a>

La tabella seguente descrive i campi di un `InvokeWebFunctionEndpoint` evento.


| Campo | Note | 
| --- | --- | 
| eventVersion | La versione del formato dell'evento . | 
| eventSource | Sempre lambda.amazonaws.com. | 
| eventName | Sempre InvokeWebFunctionEndpoint. | 
| eventCategory | Sempre Data. | 
| eventType | Il tipo di evento, ad esempioAwsApiCall. | 
| readOnly | Semprefalse, perché un'invocazione esegue il codice della funzione. | 
| managementEvent | Sempre false. | 
| eventTime | La data e l'ora, in UTC, in cui Lambda ha registrato l'evento. Per una chiamata riuscita, Lambda registra l'evento quando la funzione inizia la sua risposta, quindi eventTime può avvenire dopo l'arrivo della richiesta. | 
| sourceIPAddress | Indirizzo IP da cui è stata effettuata la richiesta. | 
| userAgent | L'agente utilizzato dal chiamante per effettuare la richiesta. Presente quando il chiamante invia un'User-Agentintestazione. | 
| requestParameters | ContieneendpointArn, l'ARN dell'endpoint richiamato. Il payload della richiesta non viene registrato. | 
| responseElements | Sempre null. | 
| resources | Contiene una voce con il accountIdtype, e ARN della funzione. | 
| additionalEventData | Contiene functionRevisionArn l'ARN della revisione che ha fornito la richiesta. Questo campo è presente in ogni evento, comprese le negazioni. | 
| tlsDetails | La versione TLS, la suite di crittografia e l'intestazione host della richiesta. | 
| userIdentity | L'identità del chiamante. Per i dettagli, consulta l'elenco seguente. | 
| sharedEventID | Presente quando CloudTrail consegna lo stesso evento a più di uno Account AWS. | 
| errorCode, errorMessage | Presente solo in caso di errore. | 
| requestID, eventID, recipientAccountId, awsRegion |  CloudTrail Campi standard che identificano la richiesta, l'evento, il destinatario Account AWS e il Regione AWS. | 

Gli eventi Web Function utilizzano le seguenti forme ARN:
+ Funzione (`resources[].ARN`) — `arn:aws:lambda:us-east-1:123456789012:web-function/my-fn`
+ Punto finale (`requestParameters.endpointArn`) — `arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint`
+ Revisione () `additionalEventData.functionRevisionArn` — `arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c`

Il `userIdentity` campo dipende dal modo in cui il chiamante si è autenticato:
+ Le chiamate non autenticate vengono registrate con type. `userIdentity` `Unknown`
+ IAM-authenticated i chiamanti vengono registrati con il proprio principale. Ad esempio, un chiamante che utilizza credenziali temporanee viene visualizzato con type`AssumedRole`, an `arn` e a. `sessionContext`
+ Il campo `accessKeyId` non è popolato.

## Eventi di errore
<a name="web-functions-cloudtrail-error-events"></a>

CloudTrail registra anche i tentativi di chiamata che falliscono dopo l'autenticazione del chiamante. La tabella seguente descrive questi eventi di errore.


| Scenario | errorCode | errorMessage | 
| --- | --- | --- | 
| Chiamante non autorizzato | AccessDenied | L'utente non è autorizzato a eseguire: lambda:InvokeWebFunctionEndpoint | 
| Velocità di richiesta, concorrenza o limite di vCPU raggiunto (endpoint o account) | ThrottlingException | Velocità superata | 
| Guasto del servizio | ServiceException | Errore di servizio | 
| Errore dell'applicazione o richiesta client non valida | Non applicabile | Considerata come una chiamata API riuscita. L'invocazione ha raggiunto ed eseguito la funzione. | 

Una chiamata riuscita non ha un or. `errorCode` `errorMessage` I dinieghi di autorizzazione vengono registrati come. `AccessDenied` CloudTrail non registra le richieste che falliscono l'autenticazione, ad esempio le richieste con una firma mancante, non valida, non valida o scaduta, e non registra le richieste che Lambda rifiuta prima dell'autenticazione, come le richieste a un endpoint il cui valore è 0. `rateLimit` Inoltre, gli errori dell'infrastruttura di autenticazione interna non vengono registrati. Per rilevare un picco di richieste rifiutate, attiva un allarme `HTTPResponseStatusClass4XX` nel namespace. `AWS/Lambda/Web`

## Esempio: chiamata riuscita (chiamante non autenticato)
<a name="web-functions-cloudtrail-example-success"></a>

L'esempio seguente mostra una chiamata riuscita da parte di un chiamante non autenticato.

```
{
    "Records": [
        {
            "eventVersion": "1.11",
            "userIdentity": {
                "type": "Unknown"
            },
            "eventTime": "2026-09-22T18:41:07Z",
            "eventSource": "lambda.amazonaws.com",
            "eventName": "InvokeWebFunctionEndpoint",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "203.0.113.42",
            "userAgent": "curl/8.4.0",
            "requestParameters": {
                "endpointArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint"
            },
            "responseElements": null,
            "additionalEventData": {
                "functionRevisionArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c"
            },
            "requestID": "b1f8a4c2-7e3d-4a19-9f6b-2c5d8e0a1234",
            "eventID": "d4c3b2a1-5f6e-7a8b-9c0d-1e2f3a4b5c6d",
            "readOnly": false,
            "resources": [
                {
                    "accountId": "123456789012",
                    "type": "AWS::Lambda::WebFunction",
                    "ARN": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn"
                }
            ],
            "eventType": "AwsApiCall",
            "managementEvent": false,
            "recipientAccountId": "123456789012",
            "eventCategory": "Data",
            "tlsDetails": {
                "tlsVersion": "TLSv1.3",
                "cipherSuite": "TLS_AES_128_GCM_SHA256",
                "clientProvidedHostHeader": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws"
            }
        }
    ]
}
```

Per un IAM-authenticated chiamante, il `userIdentity` campo riporta invece il principale del chiamante, ad esempio digita `AssumedRole` con an `arn` e a, e i campi rimanenti rimangono `sessionContext` invariati.

## Esempio: chiamata negata
<a name="web-functions-cloudtrail-example-denied"></a>

Gli eventi di errore portano `errorCode` e. `errorMessage` L'esempio seguente mostra una chiamata negata.

```
{
    "Records": [
        {
            "eventVersion": "1.11",
            "userIdentity": {
                "type": "AssumedRole",
                "principalId": "ARO01EXAMPLEID:session-name",
                "arn": "arn:aws:sts::123456789012:assumed-role/app-invoke-role/session-name",
                "accountId": "123456789012",
                "sessionContext": {
                    "sessionIssuer": {
                        "type": "Role",
                        "principalId": "ARO01EXAMPLEID",
                        "arn": "arn:aws:iam::123456789012:role/app-invoke-role",
                        "accountId": "123456789012",
                        "userName": "app-invoke-role"
                    },
                    "attributes": {
                        "creationDate": "2026-09-22T18:39:55Z",
                        "mfaAuthenticated": "false"
                    }
                }
            },
            "eventTime": "2026-09-22T18:42:13Z",
            "eventSource": "lambda.amazonaws.com",
            "eventName": "InvokeWebFunctionEndpoint",
            "awsRegion": "us-east-1",
            "sourceIPAddress": "203.0.113.42",
            "userAgent": "aws-sdk-python/1.34.0",
            "errorCode": "AccessDenied",
            "errorMessage": "User is not authorized to perform: lambda:InvokeWebFunctionEndpoint",
            "requestParameters": {
                "endpointArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/endpoint/my-endpoint"
            },
            "responseElements": null,
            "additionalEventData": {
                "functionRevisionArn": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn/revision/rev-a1b2c"
            },
            "requestID": "c2e9b5d3-8f4e-4b2a-a07c-3d6e9f1b2345",
            "eventID": "e5d4c3b2-6a7f-8b9c-0d1e-2f3a4b5c6d7e",
            "readOnly": false,
            "resources": [
                {
                    "accountId": "123456789012",
                    "type": "AWS::Lambda::WebFunction",
                    "ARN": "arn:aws:lambda:us-east-1:123456789012:web-function/my-fn"
                }
            ],
            "eventType": "AwsApiCall",
            "managementEvent": false,
            "recipientAccountId": "123456789012",
            "eventCategory": "Data",
            "tlsDetails": {
                "tlsVersion": "TLSv1.3",
                "cipherSuite": "TLS_AES_128_GCM_SHA256",
                "clientProvidedHostHeader": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws"
            }
        }
    ]
}
```

## Eventi di gestione in CloudTrail
<a name="web-functions-cloudtrail-management-events"></a>

CloudTrail registra gli eventi di gestione delle funzioni Web per impostazione predefinita. È possibile visualizzare gli ultimi 90 giorni di eventi di gestione nella **cronologia degli CloudTrail eventi** senza creare una traccia. Per conservarli più a lungo, crea un trail o un archivio dati sugli eventi CloudTrail Lake. Per ulteriori informazioni, consulta [Registrazione degli eventi di gestione](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html) nella *Guida per l'utente di AWS CloudTrail *.

CloudTrail registra le seguenti operazioni di Web Function come eventi di gestione. Il `eventName` campo di ogni evento è lo stesso del nome dell'operazione.


| Risorsa o attività | Operazioni | 
| --- | --- | 
| Funzioni Web | CreateWebFunction, GetWebFunction, ListWebFunctions, DeleteWebFunction | 
| Revisioni | CreateWebFunctionRevision, GetWebFunctionRevision, ListWebFunctionRevisions, DeleteWebFunctionRevision | 
| Endpoints | CreateWebFunctionEndpoint, GetWebFunctionEndpoint, ListWebFunctionEndpoints, UpdateWebFunctionEndpoint, DeleteWebFunctionEndpoint | 
| Impostazioni dell’account | GetWebAccountSettings | 
| Policy delle risorse | PutResourcePolicy, GetResourcePolicy, DeleteResourcePolicy | 
| Tag | TagResource, UntagResource, ListTags | 

L'invocazione di Web Function è un'operazione sul piano dati. CloudTrail la registra solo come evento di dati, come descritto in. [Eventi relativi ai dati di Web Function in CloudTrail](#web-functions-cloudtrail-data-events)

## Risorse correlate
<a name="web-functions-cloudtrail-related"></a>

Per maggiori informazioni, consulta le seguenti risorse:
+ [Registrazione dei log AWS Lambda Chiamate API utilizzando AWS CloudTrail](logging-using-cloudtrail.md)
+ [Autorizzazioni per la funzione Web Lambda](web-functions-permissions.md)
+ [Creare un percorso per il tuo Account AWS](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)