

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Création de fonctions Lambda avec Go
<a name="lambda-golang"></a>

Go est implémenté différemment des autres exécutions gérées. Go se compilant nativement en un binaire exécutable, il n’a pas besoin d’un environnement d’exécution dédié au langage. Utilisez un [environnement d’exécution réservé au système d’exploitation](runtimes-provided.md) (la famille d’environnement d’exécution `provided`) pour déployer les fonctions Go sur Lambda.

**Topics**
+ [Prise en charge de l’exécution Go](#golang-al1)
+ [Outils et bibliothèques](#golang-libraries)
+ [Définition du gestionnaire de fonction Lambda dans Go](golang-handler.md)
+ [Utilisation de l’objet de contexte Lambda pour récupérer les informations de la fonction Go](golang-context.md)
+ [Déployer des fonctions Lambda Go avec des archives de fichiers .zip](golang-package.md)
+ [Déployer des fonctions Lambda Go avec des images conteneurs](go-image.md)
+ [Utilisation de couches pour les fonctions Lambda Go](golang-layers.md)
+ [Journalisation et surveillance des fonctions Lambda Go](golang-logging.md)
+ [Instrumentation du code Go AWS Lambda](golang-tracing.md)

## Prise en charge de l’exécution Go
<a name="golang-al1"></a>

L’environnement d’exécution géré par Go 1.x pour Lambda est [obsolète](lambda-runtimes.md#runtime-support-policy). Si vous utilisez l’environnement d’exécution Go 1.x, vous devez transférer vos fonctions vers `provided.al2023` ou `provided.al2`. Les environnements d'`provided.al2`exécution `provided.al2023` et offrent plusieurs avantages`go1.x`, notamment la prise en charge de l'architecture arm64 (processeurs AWS Graviton2), des fichiers binaires plus petits et des temps d'appel légèrement plus rapides.

Aucune modification du code n’est requise pour cette migration. Les seules modifications requises concernent la façon dont vous créez votre package de déploiement et l’exécution que vous utilisez pour créer votre fonction. *Pour plus d'informations, consultez la section [Migration des AWS Lambda fonctions de l'environnement d'exécution Go1.x vers le runtime personnalisé sur 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/) sur le AWS blog Compute.*


| Name | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage | 
| --- | --- | --- | --- | --- | --- | 
|  Exécution réservée au système d’exploitation  |  `provided.al2023`  |  Amazon Linux 2023  |   30 juin 2029   |   31 juillet 2029   |   31 août 2029   | 
|  Exécution réservée au système d’exploitation  |  `provided.al2`  |  Amazon Linux 2  |   31 juillet 2026   |   31 août 2026   |   30 sept. 2026   | 

## Outils et bibliothèques
<a name="golang-libraries"></a>

Lambda fournit les outils et bibliothèques suivants pour l’environnement d’exécution Go :
+ [AWS SDK pour Go v2](https://pkg.go.dev/github.com/aws/aws-sdk-go-v2) : Le AWS SDK officiel pour le langage de programmation Go.
+ [github. com/aws/aws-lambda-go/lambda](https://github.com/aws/aws-lambda-go/tree/master/lambda): L'implémentation du modèle de programmation Lambda pour Go. Ce package est utilisé AWS Lambda pour appeler votre [gestionnaire](golang-handler.md).
+ [github. com/aws/aws-lambda-go/lambdacontext](https://github.com/aws/aws-lambda-go/tree/master/lambdacontext): aides pour accéder aux informations contextuelles à partir de l'[objet de contexte](golang-context.md).
+ [github. com/aws/aws-lambda-go/events](https://github.com/aws/aws-lambda-go/tree/master/events): Cette bibliothèque fournit des définitions de type pour les intégrations de sources d'événements courantes.
+ [github. com/aws/aws-lambda-go/cmd/build-lambda-zip](https://github.com/aws/aws-lambda-go/tree/master/cmd/build-lambda-zip) : Cet outil peut être utilisé pour créer une archive de fichiers .zip sous Windows.

Pour plus d'informations, voir [aws-lambda-go](https://github.com/aws/aws-lambda-go)ci-dessous GitHub.

Lambda fournit les exemples d'applications suivants pour l'environnement d'exécution Go :

**Exemples d’applications Lambda en Go**
+ [go-al2](https://github.com/aws-samples/sessions-with-aws-sam/tree/master/go-al2) – Une fonction Hello World qui renvoie l’adresse IP publique. Cette application utilise l’exécution personnalisée `provided.al2`.
+ [blank-go](https://github.com/awsdocs/aws-lambda-developer-guide/tree/main/sample-apps/blank-go) — Une fonction Go qui montre l'utilisation des bibliothèques Go de Lambda, de la journalisation, des variables d'environnement et du SDK. AWS Cette application utilise l’exécution `go1.x`.