

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

# Utilizzo TransactionAttributes
<a name="transaction-attributes"></a>

La struttura `TransactionAttributes` dati viene utilizzata per archiviare informazioni specifiche dell'applicazione, come lo stato delle chiamate o le riunioni IDs, e quindi passare tali dati alle chiamate AWS Lambda. Questa struttura elimina la necessità di archiviare dati in database esterni come Amazon DynamoDB. 

`TransactionAttributes`sono [oggetti JSON](https://www.w3schools.com/js/js_json_objects.asp) che contengono key/value pairs. The objects can contain a maximum of 100 key/value coppie e hanno una dimensione massima del payload di 20 KB. I dati in una `TransactionAttributes` struttura persistono per tutta la durata di una transazione.

Quando una AWS Lambda funzione passa `TransactionAttributes` a un'applicazione multimediale SIP, l'applicazione aggiorna tutti gli attributi memorizzati. Se passate un `TransactionAttributes` oggetto con un set di chiavi esistente, aggiornate i valori memorizzati. Se passate un set di chiavi diverso, sostituite i valori esistenti con i valori di quel set di chiavi diverso. Il passaggio di una mappa vuota (`{}`) cancella tutti i valori memorizzati.

**Topics**
+ [Impostazione TransactionAttributes](set-trans-attributes.md)
+ [Aggiornamento in corso TransactionAttributes](update-trans-attributes.md)
+ [Cancellazione TransactionAttributes](clear-trans-attributes.md)
+ [Gestione ACTION\$1SUCCESSFUL events](attribute-trans-success.md)
+ [Ingressi non validi](attribute-trans-invalid.md)

# Impostazione TransactionAttributes
<a name="set-trans-attributes"></a>

L'esempio seguente mostra come `TransactionAttributes` affiancare un'[PlayAudio](play-audio.md)azione e passare gli attributi da una AWS Lambda funzione a un'applicazione multimediale SIP.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "key1": "value1",
        "key2": "value2"
    }
}
```

# Aggiornamento in corso TransactionAttributes
<a name="update-trans-attributes"></a>

Per modificare l'archivio`TransactionAttributes`, aggiorna il contenuto dell'oggetto JSON con nuovi valori. Nell'esempio seguente, le chiavi `NewKey1` e `NewKey2` vengono aggiunte a. `TransactionAttributes` Questi tasti sono associati ai valori `NewValue1` e`NewValue2`, rispettivamente.

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
        "NewKey1": "NewValue1",
        "NewKey2": "NewValue2"
    }
}
```

Se, nell'esempio precedente, si passa `NewValue1` a`key1`, il valore esistente di `key1` verrebbe sostituito con`NewValue1`. Tuttavia, il passaggio di un valore a `NewKey1` crea una nuova coppia chiave/valore.

# Cancellazione TransactionAttributes
<a name="clear-trans-attributes"></a>

Per cancellare il contenuto dell'`TransactionAttributes`oggetto, passa il `TransactionAttributes` campo con un oggetto JSON vuoto:

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "PlayAudio",
            "Parameters": {
                "ParticipantTag": "LEG-A",
                "AudioSource": {
                    "Type": "S3",
                    "BucketName": "mtg1-sipmedia-app-iad",
                    "Key": "Welcome3.wav"
                }
            }
        }
    ],
    "TransactionAttributes": {
    }
}
```

**Nota**  
Non puoi cancellare i dati da una `TransactionAttributes` struttura impostandone il valore su`null`. Inoltre, l'omissione della `TransactionAttribute` struttura non ne cancella i dati. Passa sempre un oggetto JSON vuoto con `TransactionAttributes` per cancellare i dati dall'oggetto.

# Gestione ACTION\$1SUCCESSFUL events
<a name="attribute-trans-success"></a>

L'esempio seguente mostra come un [PlayAudio](play-audio.md) messaggio di successo invia il file archiviato `TransactionAttributes` come parte di`CallDetails `.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "ACTION_SUCCESSFUL", 
    "ActionData": { 
        "Type": "PlayAudio", 
        "Parameters": { 
            "AudioSource": { 
                "Type": "S3", 
                "BucketName": "mtg1-sipmedia-app-iad", 
                "Key": "Welcome3.wav" 
            }, 
            "Repeat": 1, 
            "ParticipantTag": "LEG-A" 
        } 
    }, 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "TransactionAttributes": { 
            "key1": "value1", 
            "key2": "value2" 
        }, 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "bbff30c5-866a-41b5-8d0a-5d23d5e19f3e", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644539405907", 
                "Status": "Connected" 
            } 
        ] 
    } 
}
```

# Ingressi non validi
<a name="attribute-trans-invalid"></a>

L'esempio seguente mostra un input non valido. In questo caso, l'oggetto JSON passa troppi elementi a un'applicazione multimediale SIP.

```
{ 
    "SchemaVersion": "1.0", 
    "Actions": [ 
        { 
            "Type": "PlayAudio", 
            "Parameters": { 
                "ParticipantTag": "LEG-A", 
                "AudioSource": { 
                    "Type": "S3", 
                    "BucketName": "mtg1-sipmedia-app-iad", 
                    "Key": "Welcome3.wav" 
                } 
            } 
        } 
    ], 
    "TransactionAttributes": { 
        "key1": "value1", 
        "key2": "value2", 
        "key3": "value3", 
        "key4": "value4", 
        "key5": "value5", 
        "key6": "value6", 
        "key7": "value7", 
        "key8": "value8", 
        "key9": "value9", 
        "key10": "value10", 
        "key11": "value11" 
    } 
}
```

L'esempio seguente mostra la risposta all'input fornito in precedenza. Questo output viene passato da un'applicazione multimediale SIP alla funzione AWS Lambda che ha richiamato l'applicazione.

```
{ 
    "SchemaVersion": "1.0", 
    "Sequence": 2, 
    "InvocationEventType": "INVALID_LAMBDA_RESPONSE", 
    "CallDetails": { 
        "TransactionId": "mtg1-tx-id", 
        "AwsAccountId": "166971021612", 
        "AwsRegion": "us-east-1", 
        "SipRuleId": "aafbd402-b7a2-4992-92f8-496b4563c492", 
        "SipMediaApplicationId": "e88f4e49-dd21-4a3f-b538-bc84eae11505", 
        "Participants": [ 
            { 
                "CallId": "72cbec69-f098-45d8-9ad6-e26cb9af663a", 
                "ParticipantTag": "LEG-A", 
                "To": "+14345550101", 
                "From": "+14255550199", 
                "Direction": "Inbound", 
                "StartTimeInMilliseconds": "1644540839987" 
            } 
        ] 
    }, 
    "ErrorType": "TransactionAttributesInvalidMapSize", 
    "ErrorMessage": "Transaction Attributes has too many mappings. Maximum number of mappings is 10" 
}
```