AWS Sam Deploy

AWS Sam Deploy
Une application sans serveur peut être construite à l'aide des 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 également 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, CLI peut déployer l'application SAM à AWS en utilisant AWS SAM.

Que couvrirons-nous?

Dans ce guide, nous explorerons le déploiement d'une application AWS SAM.

Qu'est-ce que AWS Sam?

AWS Sam est un service Amazon Cloud pour développer des applications sans serveur. Sam, ainsi que Sam CLI, sont tous deux des projets open-source. SAM définit les ressources utilisées dans les applications en fonction de l'architecture 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.

Le "Sam Deploy" Commande

Par défaut, le Sam Deploy La commande prend le répertoire actuel comme répertoire racine du projet. Tout d'abord, l'AWS Sam CLI recherche un modèle de modèle nommé modèle.Yaml à l'intérieur du sous-répertoire ".aws-sam«A été configuré en exécutant le Sam Build commande.

Ensuite, il recherche le même fichier (l'un ou l'autre modèle.yaml ou modèle.yml) dans le répertoire actuel. Lorsqu'un "-modèle"L'option est utilisée avec la commande de déploiement, l'attitude par défaut du CLI AWS SAM est remplacée. Il ne déploiera ensuite que le modèle AWS SAM spécifié et les ressources locales.

Le Sam Deploy La commande fournit également un mode interactif guidé avec le «-guidé" option. Dans ce mode, l'utilisateur est invité à différents paramètres nécessaires au déploiement.

Les commandes importantes de Sam CLI

sam-it: L'outil SAM CLI peut initialiser les applications sans serveur à l'aide des modèles d'infrastructure AWS. Cela se fait en utilisant le "sam-it" commande.

Sam-build: De la même manière, le «sam-build”La commande est utilisée pour compiler, construire et emballer les fonctions lambda avec l'exécution donnée.

Sam-local: Avec Docker Containeurs, les commandes «SAM Local» peuvent tester localement l'application SAM en l'exécutant.

SAM SYNC: Le "SAM SYNC»La commande fournit une fonctionnalité pour synchroniser et vérifier les modifications apportées dans l'environnement cloud.

Sam-déplore: Enfin, exécutez le «Sam Deploy«Commande pour déployer votre application SAM.

Déploiement d'une application Helloworld

Prenons un exemple de déploiement AWS Sam en utilisant une application d'échantillon Helloworld. Dans cet exemple, l'application Helloworld utilise un backend API de base. Reportez-vous au diagramme suivant pour les composants utilisés dans cette application:

La fonction lambda est invoquée lorsqu'une demande de GET est reçue au point de terminaison de l'API Gateway. En réponse, un message Hello World est renvoyé par la fonction lambda.

Maintenant, suivez ces étapes pour déployer cette application:

Télécharger l'exemple d'application

Tout d'abord, exécutez la commande suivante:

Sam init

Une série d'invites apparaîtra à l'écran. Pour le type de modèle, nous nous en tenons à l'option Modèles AWS Quick Start suivie du modèle Hello World:

Nous sélectionnons l'option par défaut: Python Runtime et Zip Package Type. Conservez également le nom du projet pour être le par défaut: «Sam-App".

Après avoir exécuté les paramètres précédents, vous verrez le résumé de base de l'application:

Ce sam-it La commande fera la création d'un répertoire avec le même nom que celui choisi pour le nom du projet. Notez également que le répertoire suivant contient de nombreux sous-répertoires et fichiers:

$ arbre sam-app

Ce sont les trois fichiers les plus importants:

  1. Le "modèle.yaml»Comprend le modèle AWS SAM, qui décrit les ressources AWS comprenant l'application.
  2. "appliquer.py" à l'intérieur de Bonjour le monde dossier, qui comprend le code pour gérer la fonction lambda.
  3. "exigences.SMS" à l'intérieur de Bonjour le monde dossier, qui comprend les dépendances requises par l'application.

Construire la demande

Avant de créer l'application, naviguez dans le répertoire du projet contenant le modèle.Fichier YAML puis exécuter la commande de construction. Voici comment faire cela en une seule étape:

$ CD SAM-App && Sam Build

Note: Veuillez utiliser la version requise de Python. Sinon, la commande build peut échouer.

Déploiement de la demande

Enfin, pour déployer l'application avec un assistant interactif, exécutez la commande suivante:

$ Sam Deploy - guidé

Reconnaissez une question en entrant «Y» et appuyez sur Entrée pour choisir une option par défaut.

Lorsqu'on vous demande de déployer les modifications, entrez «Y»:

Après un certain traitement, vous devriez voir un message réussi:

Tester l'application

Utilisez le "Sam local”Commande pour tester l'application Hello World avec des conteneurs Docker:

$ SAM LOCAL START-API

Une autre façon de tester l'application est d'appeler la fonction lambda avec:

$ Sam local invoque "helloworldfunction" -e événements / événement.json

Conclusion

Dans ce guide, nous avons couvert comment créer et déployer une application AWS SAM à l'aide d'un modèle AWS SAM. Ensuite, vous pouvez essayer de développer et de déployer votre propre application AWS SAM. Nous espérons que vous avez trouvé cet article utile. Vérifiez d'autres articles sur les conseils Linux pour plus de conseils et de tutoriels.