Modèle AWS SAM

Modèle AWS SAM

Une application sans serveur peut être construite à l'aide de services fournis par AWS tels que AWS Serverless Application Model (SAM). AWS fournit AWS Sam CLI pour le développement d'applications basées sur SAM. Il facilite un environnement d'exécution similaire à Lambda pour la construction, les tests et les applications de débogage fournies par les modèles SAM. De plus, en utilisant AWS SAM CLI, nous pouvons déployer l'application SAM à AWS.

Que couvrirons-nous?

Dans ce guide, nous explorerons le modèle AWS SAM.

Qu'est-ce que AWS Sam?

AWS Sam est utilisé pour développer des applications sans serveur sur AWS. Sam et Sam CLI sont sous une licence open-source. SAM définit les ressources utilisées dans les applications sans serveur. Il a de courtes syntaxes pour désigner les API, les fonctions, les bases de données et les mappages des sources d'événements. Les syntaxes SAM sont transformées et étendues en syntaxes AWS Cloudformation. Les applications peuvent être modélisées à l'aide de YAML. De cette façon, les applications sans serveur peuvent être construites rapidement.

Caractéristiques d'Aws Sam

L'AWS SAM peut être intégré à d'autres services AWS et a donc plusieurs avantages pour développer des applications sans serveur:

  1. L'utilisation d'AWS Sam, l'organisation des composants et des ressources correspondants est simplifié. On peut l'utiliser pour distribuer la configuration entre les ressources et toutes les ressources correspondantes peuvent être déployées collectivement.
  1. Pendant le déploiement, les syntaxes SAM sont étendues dans les syntaxes Native AWS Cloudformation. Cela nous offre la possibilité d'un déploiement fiable avec Cloudformation.
  1. Nous pouvons développer des applications sans serveur dans de nombreux langages d'exécution. Avec le SAM CLI, nous pouvons construire localement, pilote exécuter et réparer les applications sans serveur. De plus, la SAM CLI peut être intégrée aux boîtes à outils fournies par AWS.
  1. AWS SAM CLI peut être installé sur de nombreuses distros, Mac et Windows basés à Linux, Mac et Windows.

Regarder dans le modèle SAM

Un modèle AWS SAM est très similaire au modèle AWS Cloudformation, mais il existe des différences majeures entre les deux en termes de sections de modèle suivantes:

  1. Section de transformation: Un modèle AWS SAM utilise une déclaration explicite du formulaire, Transform: AWS :: Serverless-2016-10-31, cette déclaration spécifie que ce modèle AWS Cloudformation est un modèle AWS SAM.
  1. Section globales: AWS Sam a une section globales unique qui déclare les ressources qui ont des configurations communes. La section Globals fonctionne avec AWS :: Serverless :: Fonction, AWS :: Serverless :: API, AWS :: Serverless :: httpapi et AWS :: Serverless :: Ressources simpleables.
  1. Section des ressources: La section Ressources du modèle AWS SAM peut également contenir des ressources CloudFormation.
  1. Section des paramètres: Le modèle SAM contient une section Paramètres pour passer les valeurs au moment de l'exécution. Cette section contient des objets qui font de la commande `` Sam Deploy -Gided '' pour produire des invites supplémentaires à un utilisateur.

Les sections de modèle restantes…

À côté des sections mentionnées ci-dessus, les sections restantes accompagnent la section de fichier de modèle de forme de cloudformation avec le nom correspondant. Le modèle AWS SAM nécessite uniquement le Sections de transformation et de ressources comme un incontournable. Cependant, nous pouvons également ajouter d'autres sections. En dehors de la section ci-dessus, nous pouvons également avoir la section mentionnée ci-dessous dans le modèle AWS SAM:

  1. Description: Il contient une description facultative du modèle.
  1. Métadonnées: Il s'agit également d'une section facultative qui donne plus d'informations sur le modèle.
  1. Mappages: Une touche mappant avec leurs valeurs correspondantes pour spécifier les valeurs de paramètres conditionnels.
  1. Conditions: Il contient des règles ou des exigences qui régissent Si spécifique Des ressources sont générées ou si des propriétés spécifiques d'une ressource ont une valeur lors de la création ou de la mise à jour d'une pile.
  1. Les sorties: Il déclare les valeurs renvoyées lorsque les propriétés d'une pile sont affichées.

Les sections de modèle discutées ci-dessus peuvent être ajoutées dans n'importe quel ordre. Cependant, il faut s'en tenir à un ordre logique. AWS SAM CLI a un fichier de configuration du format de fichier Toml. Ce fichier, nommé comme samconfig.toml, Contient des paramètres par défaut pour les commandes SAM CLI.

Pour vérifier un modèle AWS SAM, utilisez le format de commande:

SAM valider [Options]

Exemple de modèle SAM

Voici des modèles d'échantillons d'AWS SAM contenant des sections spécifiques et les invites d'échantillon correspondantes qui apparaissent avec le 'Sam Deploy -udé' commande:

Section des paramètres:

Paramètres:
Ourpar:
Type: chaîne
Par défaut: ourpalval
Exemple d'invite de sortie:
Paramètre ourpar [ourparval]:

Section des ressources:

Ressources:
Bonjour le monde:
Type: AWS :: Serverless :: Fonction
Propriétés:
Codeuri: hello_world /
Handleur: application.lambda_handler
Exécution: Python3.7
CodesigningConfigarn: ARN: AWS: Lambda: US-East-1: xxxxxxxxxxxx: Code-Signer-Config: CSC-12E12345DB1234567
Exemple d'invite de sortie:
#Found Code Signing Configurations dans vos définitions de fonction
Voulez-vous signer votre code? [O / N]:
#Pelease Fournir les détails du profil de signature pour les fonctions et couches suivantes
# Indignation des détails du profil pour la fonction 'Helloworld'
Nom de profil de signature:
ID de compte du propriétaire du profil de signature (facultatif):
#Signing Profile Détails de la couche 'mylayer', qui est utilisé par les fonctions 'Helloworld'
Nom de profil de signature:
ID de compte du propriétaire du profil de signature (facultatif):

Conclusion

Dans ce guide, nous avons exploré le modèle AWS SAM. La prochaine chose que vous pouvez essayer est de déployer une application simple Hello World Server sans serveur contenant un fichier de modèle AWS SAM.