web-dev-qa-db-fra.com

Quelle est la différence entre une fonction sans serveur et une fonction Lambda

Je joue avec Cloudformation Serverless Transformation et j'essaie de comprendre comment et quand utiliser AWS::Serverless::Function ou AWS::Lambda::Function. Pour une raison quelconque, la version Lambda est utilisée pour les exemples SAM dans AWS. C'est très déroutant. SAM github . Et puis il y a aussi le framework servlerless lui-même qui est en réalité un framework nodejs. Tout ça me rend extrêmement confus.

27
Snickers3192

Tout d’abord, laissez-moi vous expliquer chacune d’elles.

AWS Serverless Stack - Une combinaison des technologies sans serveur proposées par AWS, notamment API Gateway, Lambda, S3, etc.

Lorsque Lambda a été introduit pour la première fois, il était difficile de développer des applications sans serveur utilisant ces technologies en utilisant Cloudformation. Le problème était dû à la complexité de l'écriture de Cloudformation pour API Gateway et Lambda.

C'est ici qu'intervient Serverless Framework.

Serverless Framework - Un framework DevOps Open Source qui simplifie la définition d'API Gateway et Lambda à l'aide d'un simple fichier appelé serverless.yml. Étant donné que Serverless Framework utilise des conventions sur les configurations, il ne nécessite que quelques lignes de code pour définir Lambda, API Gateway, etc. Sous Serverless Framework génère des informations de cloud basées sur ce qui est défini dans serverless.yml. En outre, Serverless Framework a pris en charge plusieurs fournisseurs de cloud.

Plus tard, AWS a introduit son propre langage de script simplifié appelé AWS SAM (Remarque: AWS SAM n'est pas un Framework comme Serverless avec prise en charge des plugins et des extensions pour le moment) pour réduire la complexité de la définition de CloudFormation comme alternative au Framework sans serveur.

AWS::Lambda::Function est la syntaxe Cloudformation permettant de définir une fonction Lambda.

AWS::Serverless::Function est la syntaxe AWS SAM permettant de définir une fonction Lambda qui crée en interne une fonction Lambda dans Cloudformation (AWS::Lambda::Function) et les ressources associées par convention lors de l'exécution de AWS SAM.

27
Ashan

AWS::Serverless::Function est utilisé lorsque AWS SAM , alors que AWS::Lambda::Function est destiné à être utilisé avec plain Cloudformation . Il s’agit essentiellement de modéliser des fonctions Lambda, mais c’est juste pour des frameworks différents, qui portent donc des noms différents pour plus ou moins la même chose.

Conceptuellement, il n'y a pas de différence entre une fonction sans serveur et une fonction Lambda. Serverless est le terme générique pour ce que AWS appelle Lambda (et API Gateway).

La structure sans serveur n'est alors qu'un projet logiciel reposant sur des principes sans serveur et pouvant fonctionner avec AWS Lambda (entre autres). Ce n'est vraiment pas très différent des autres frameworks tels que Chalice ou Zappa (les deux Python qui s'exécutent sur AWS Lambda).

5
colde