BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités AWS Lambda prend désormais en charge les applications serverless en GO

AWS Lambda prend désormais en charge les applications serverless en GO

Favoris

Amazon a annoncé la prise en charge de GO avec AWS Lambda, ce qui ouvre la voie à l'écriture d'applications serverless en Go exécutées sur AWS.

Go est le dernier langage pris en charge par Amazon AWS Lambda, suite à Node.js, Python, Java et C#.

Pour que votre code Go soit prêt pour le déploiement AWS, il doit se trouver dans une fonction handler qui est ensuite transmise à lambda.Start(). lambda.Start() ne retourne pas après avoir été appelé et communique avec un endpoint Lambda interne pour passer les requêtes Invoke au handler. La fonction handler doit prendre entre 0 et 2 arguments, qui incluent l'objet de requête, et peut renvoyer entre 0 et 2 valeurs, y compris un objet d'erreur, par exemple :

// main.go
package main

import (
    "github.com/aws/aws-lambda-go/lambda"
)

func hello(request Request) (string, error) {
    return "Hello!", nil
}

func main() {
    // Make the handler available for Remote Procedure Call by AWS Lambda
    lambda.Start(hello)
}

AWS nécessite la compilation du code en Go pour l’utiliser dans AWS Lambda pour Linux, puis de le compresser pour le préparer au déploiement d'AWS Lambda. Cela peut être fait, en exécutant par exemple :

GOOS=linux go build -o main main.go
zip main.zip main

Le nom utilisé pour le fichier zip doit correspondre à la propriété de configuration du Handler de la fonction Lambda déployée. Une fois le code compressé en tant que fichier zip, il peut être déployé à l'aide de l'AWS CLI :

$ aws lambda create-function \
--region us-west-1 \
--function-name HelloFunction \
--zip-file fileb://./main.zip \
--runtime go1.x \
--tracing-config Mode=Active
--role arn:aws:iam::<account-id>:role/<role> \
--handler main

En outre, AWS fournit AWS X-Ray pour Go, un ensemble de bibliothèques permettant la génération de données de trace pour le démon X-Ray afin d'analyser et de déboguer vos fonctions Go.

Pour simplifier l'utilisation de Go par les développeurs des fonctions AWS Lambda, Amazon a publié un référentiel GitHub contenant des bibliothèques, des exemples et des outils. Vous pouvez obtenir plus de détails sur le test, la génération et le déploiement du code Go sur AWS Lambda ici.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT