BT

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

| par Sergio De Simone Suivre 17 Abonnés , traduit par Slim Ouertani Suivre 7 Abonnés le 23 janv. 2018. Durée de lecture estimée: 1 minute |

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

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT