

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 [OS-only environnement d'exécution](runtimes-provided.md) (la famille `provided` d'environnements d'exécution) 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' Go1.x environnement d'exécution vers l'environnement d'exécution 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 *blog AWS Compute*.


| Nom | Identifiant | Système d’exploitation | Date d’obsolescence | Créer la fonction de blocage | Mettre à jour la fonction de blocage | 
| --- | --- | --- | --- | --- | --- | 
| OS-only Durée d'exécution | `provided.al2023` | Amazon Linux 2023 |  30 juin 2029  |  31 juillet 2029  |  31 août 2029  | 
| OS-only Durée d'exécution | `provided.al2` | Amazon Linux 2 |  31 juillet 2026  |  1 février 2027  |  3 mars 2027  | 

## 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) : implémentation du modèle de programmation Lambda pour Go. Ce package est utilisé AWS Lambda pour appeler votre [gestionnaire](golang-handler.md).
+ [github. ](https://github.com/aws/aws-lambda-go/tree/master/lambdacontext)com/aws[/aws-lambda- go/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 : cet outil peut être utilisé pour créer une archive de fichiers .zip](https://github.com/aws/aws-lambda-go/tree/master/cmd/build-lambda-zip) sous Windows.

Pour plus d'informations, consultez [aws-lambda-go](https://github.com/aws/aws-lambda-go) on. 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`.