

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

# Compilazione di funzioni Lambda con Go
<a name="lambda-golang"></a>

Go è implementato in modo diverso rispetto ad altri runtime gestiti. Poiché Go viene compilato nativamente in un file binario eseguibile, non richiede un runtime linguistico dedicato. Usa un [runtime solo per il sistema operativo](runtimes-provided.md) (la famiglia di runtime `provided`) per distribuire le funzioni Go in Lambda.

**Topics**
+ [Supporto per il runtime Go](#golang-al1)
+ [Strumenti e librerie](#golang-libraries)
+ [Definisci i gestori di funzioni Lambda in Go](golang-handler.md)
+ [Utilizzo dell'oggetto contestuale Lambda per recuperare le informazioni sulla funzione Go](golang-context.md)
+ [Distribuisci funzioni Lambda per Go con gli archivi di file .zip](golang-package.md)
+ [Distribuzione delle funzioni Go Lambda con immagini di container](go-image.md)
+ [Utilizzo dei livelli per le funzioni Lambda in Go](golang-layers.md)
+ [Registrare e monitorare le funzioni Lambda con Go](golang-logging.md)
+ [Strumentazione del codice Go in AWS Lambda](golang-tracing.md)

## Supporto per il runtime Go
<a name="golang-al1"></a>

Il runtime gestito Go 1.x per Lambda è [obsoleto](lambda-runtimes.md#runtime-support-policy). Se hai funzioni che utilizzano il runtime Go 1.x, devi eseguire la migrazione delle tue funzioni a `provided.al2023` o `provided.al2`. I `provided.al2` runtime `provided.al2023` and offrono diversi vantaggi`go1.x`, tra cui il supporto per l'architettura arm64 (processori AWS Graviton2), binari più piccoli e tempi di invoke leggermente più rapidi.

Per questa migrazione, non sono necessarie modifiche al codice. Le uniche modifiche richieste riguardano la modalità di creazione del pacchetto di implementazione e il runtime utilizzato per creare la funzione. *Per ulteriori informazioni, consulta la sezione [Migrazione AWS Lambda delle funzioni dal runtime Go1.x al runtime personalizzato su Amazon Linux 2](https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-from-the-go1-x-runtime-to-the-custom-runtime-on-amazon-linux-2/) sul blog di Compute AWS .*


| Name | Identificatore | Sistema operativo | Data di ritiro | Blocco creazione funzioni | Blocco aggiornamento funzioni | 
| --- | --- | --- | --- | --- | --- | 
|  Runtime solo per il sistema operativo  |  `provided.al2023`  |  Amazon Linux 2023  |   30 giugno 2029   |   31 luglio 2029   |   31 agosto 2029   | 
|  Runtime solo per il sistema operativo  |  `provided.al2`  |  Amazon Linux 2  |   31 luglio 2026   |   31 agosto 2026   |   30 settembre 2026   | 

## Strumenti e librerie
<a name="golang-libraries"></a>

Lambda fornisce i seguenti strumenti e librerie per il runtime Go:
+ [AWS SDK per Go v2](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2): L' AWS SDK ufficiale per il linguaggio di programmazione Go.
+ [github. com/aws/aws-lambda-go/lambda](https://github.com/aws/aws-lambda-go/tree/master/lambda): L'implementazione del modello di programmazione Lambda per Go. [Questo pacchetto viene utilizzato da AWS Lambda per richiamare il gestore.](golang-handler.md)
+ [github. ](https://github.com/aws/aws-lambda-go/tree/master/lambdacontext)com/aws/aws-lambda-go/lambdacontext[: Aiutanti per accedere alle informazioni di contesto dall'oggetto context.](golang-context.md)
+ [github. com/aws/aws-lambda-go/events](https://github.com/aws/aws-lambda-go/tree/master/events): Questa libreria fornisce definizioni dei tipi per le integrazioni di sorgenti di eventi comuni.
+ [github. com/aws/aws-lambda-go/cmd/build-lambda-zip](https://github.com/aws/aws-lambda-go/tree/master/cmd/build-lambda-zip): questo strumento può essere utilizzato per creare un archivio di file.zip su Windows.

Per ulteriori informazioni, vedere on. [aws-lambda-go](https://github.com/aws/aws-lambda-go) GitHub

Lambda fornisce le seguenti applicazioni di esempio per il runtime di Go:

**Applicazioni Lambda di esempio in Go**
+ [go-al2](https://github.com/aws-samples/sessions-with-aws-sam/tree/master/go-al2): una funzione hello world che restituisce l'indirizzo IP pubblico. Questa app utilizza il runtime personalizzato `provided.al2`.
+ [blank-go](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-go) — Una funzione Go che mostra l'uso delle librerie Go di Lambda, la registrazione, le variabili di ambiente e l'SDK. AWS Questa app utilizza il runtime `go1.x`.