

Il AWS Mobile SDK for Unity è ora incluso in AWS SDK per .NET. Questa guida fa riferimento alla versione archiviata di Mobile SDK for Unity. Per ulteriori informazioni, consulta [Cos'è il AWS Mobile SDK for Unity?](what-is-unity-plugin.md)

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

# AWS Lambda
<a name="lambda"></a>

AWS Lambda è un servizio di elaborazione che esegue il codice in risposta a richieste o eventi e gestisce automaticamente le risorse di calcolo per te, semplificando la creazione di applicazioni che rispondono rapidamente a nuove informazioni. Le funzioni di AWS Lambda possono essere richiamate direttamente da app mobili, IoT e Web e inviano una risposta in modo sincrono, semplificando la creazione di backend scalabili, sicuri e altamente disponibili per le app mobili senza la necessità di fornire o gestire l'infrastruttura.

AWS Lambda può eseguire le tue funzioni Lambda in risposta a una delle seguenti situazioni:
+ Eventi, come aggiornamenti discreti (ad esempio, eventi creati da oggetti in Amazon S3 o CloudWatch avvisi) o aggiornamenti in streaming (ad esempio, clickstream di siti Web o output da dispositivi collegati).
+ Input JSON o comandi HTTPS dalle tue applicazioni personalizzate.

AWS Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. Con queste funzionalità, puoi usare Lambda per creare facilmente trigger per servizi AWS come Amazon S3 e Amazon DynamoDB, elaborare dati di streaming archiviati in Amazon Kinesis o creare il tuo back-end che opera su scala, prestazioni e sicurezza AWS.

Per ulteriori informazioni su come funziona AWS Lambda, consulta [AWS Lambda:](https://docs.aws.amazon.com/lambda/latest/dg/lambda-introduction.html) How It Works.

## Permissions
<a name="permissions"></a>

Esistono due tipi di autorizzazioni relative alle funzioni Lambda:
+  Autorizzazioni di **esecuzione: le autorizzazioni** necessarie alla tua funzione Lambda per accedere ad altre risorse AWS nel tuo account. Concedi queste autorizzazioni creando un ruolo IAM, noto come ruolo di esecuzione.
+  **Autorizzazioni di chiamata: le autorizzazioni** necessarie all'origine dell'evento per comunicare con la funzione Lambda. A seconda del modello di invocazione (modello push o pull), puoi concedere queste autorizzazioni utilizzando il ruolo di esecuzione o le policy delle risorse (la politica di accesso associata alla tua funzione Lambda).

## Configurazione del progetto
<a name="project-setup"></a>

### Imposta le autorizzazioni per AWS Lambda
<a name="set-permissions-for-aws-lambda"></a>

1. Apri la [console AWS IAM](https://console.aws.amazon.com/iam/home).

1. Allega questa policy personalizzata ai tuoi ruoli, che consente all'applicazione di effettuare chiamate ad AWS Lambda.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:*"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Crea un nuovo ruolo di esecuzione
<a name="create-a-new-execution-role"></a>

Questo ruolo si applica alla funzione Lambda che creerai nella fase successiva e determina a quali risorse AWS può accedere quella funzione.

1. Apri la [console AWS IAM](https://console.aws.amazon.com/iam/home).

1. Fai clic su **Ruoli**.

1. Fai clic su **Crea nuovi ruoli**.

1. Segui le istruzioni sullo schermo per selezionare i servizi e le politiche corrispondenti a cui la tua funzione Lambda dovrà accedere. Ad esempio, se desideri che la funzione Lambda crei un bucket S3, la tua policy richiederà l'accesso in scrittura a S3.

1. **Fai clic su Crea ruolo.**

### Creazione di una funzione in AWS Lambda
<a name="creating-a-function-in-aws-lambda"></a>

1. Apri la console [AWS Lambda](https://console.aws.amazon.com/lambda/home).

1. Fate clic su **Crea una funzione Lambda**.

1. Fai clic su **Ignora per saltare** la creazione di un blueprint.

1. Configura la tua funzione nella schermata successiva. Inserisci il nome della funzione, una descrizione e scegli il tuo runtime. Segui le istruzioni sullo schermo in base al runtime scelto. Specificate i permessi di esecuzione assegnando il ruolo di esecuzione appena creato alla funzione.

1. **Al termine, fai clic su Avanti.**

1. Fai clic su **Crea funzione**.

## Creare un client Lambda
<a name="create-a-lambda-client"></a>

```
var credentials = new CognitoAWSCredentials(IDENTITY_POOL_ID, RegionEndpoint.USEast1);
var Client = new AmazonLambdaClient(credentials, RegionEndpoint.USEast1);
```

## Crea un oggetto di richiesta
<a name="create-a-request-object"></a>

Crea un oggetto di richiesta per specificare il tipo di invocazione e il nome della funzione:

```
var request = new InvokeRequest()
{
    FunctionName = "hello-world",
    Payload = "{\"key1\" : \"Hello World!\"}",
    InvocationType = InvocationType.RequestResponse
};
```

## Invoca la tua funzione Lambda
<a name="invoke-your-lambda-function"></a>

Chiama invoke, passando l'oggetto della richiesta:

```
Client.InvokeAsync(request, (result) =>
{
    if (result.Exception == null)
    {
        Debug.Log(Encoding.ASCII.GetString(result.Response.Payload.ToArray()));
    }
    else
    {
        Debug.LogError(result.Exception);
    }
});
```