Déploiement d'applications sans serveur - AWS Serverless Application Model

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déploiement d'applications sans serveur

AWS SAM utilise AWS CloudFormation en tant que mécanisme de déploiement sous-jacent. Pour plus d'informations, consultez Présentation d'AWS CloudFormation dans le Guide de l'utilisateur AWS CloudFormation. Les entrées standard pour le déploiement d'applications sans serveur sont les artefacts de construction créés à l'aide de la commande sam build. Pour plus d'informations sur sam build, consultez Création d'applications sans serveur.

Vous pouvez déployer votre application manuellement avec les commandes de l'interface de ligne de commande AWS SAM (CLI). Vous pouvez également automatiser les déploiements de votre application via un système d'intégration et de déploiement continus (CI/CD). Vous pouvez utiliser de nombreux systèmes CI/CD courants pour déployer AWS SAM des applications, notamment Jenkins AWS CodePipeline, GitLab CI/CD et Actions. GitHub

Déploiement avec des systèmes CI/CD

AWS SAM aide les entreprises à créer des pipelines pour leurs systèmes CI/CD préférés, afin qu'elles puissent tirer parti des avantages du CI/CD avec un minimum d'efforts, notamment en accélérant la fréquence de déploiement, en raccourcissant les délais de modification et en réduisant les erreurs de déploiement.

AWS SAM simplifie les tâches CI/CD pour les applications sans serveur à l'aide de la création d'images de conteneur. Les images fournies par AWS SAM incluent la CLI AWS SAM et les outils de construction pour un certain nombre d'exécutions AWS Lambda prises en charge. Cela facilite la création et l'empaquetage d'applications sans serveur à l'aide de la CLI AWS SAM. Ces images réduisent également la nécessité pour les équipes de créer et de gérer leurs propres images pour les systèmes CI/CD. Pour plus d'informations sur les images de conteneur AWS SAM, consultez Référentiels d'images.

De multiples systèmes CI/CD prennent en charge la création d'images de conteneur AWS SAM. Le système CI/CD que vous devrez utiliser dépendra de plusieurs facteurs. Il s'agit notamment de savoir si votre application utilise une seule ou plusieurs exécutions, ou si vous souhaitez créer votre application dans une image de conteneur ou directement sur une machine hôte, une machine virtuelle (VM) ou un hôte de matériel nu.

AWS SAM procure également un ensemble de modèles de pipeline par défaut pour de multiples systèmes CI/CD qui encapsulent les bonnes pratiques de déploiement AWS. Ces modèles de pipeline par défaut utilisent des formats de configuration de pipeline JSON/YAML standard, et les bonnes pratiques intégrées permettent d'effectuer des déploiements multi-comptes et multi-régions, et de vérifier que les pipelines ne peuvent pas apporter de modifications involontaires à l'infrastructure.

Vous disposez de deux options principales pour utiliser AWS SAM pour déployer vos applications sans serveur : 1) Modifiez votre configuration de pipeline existante pour utiliser les commandes de la CLI AWS SAM ou 2) Générez un exemple de configuration de pipeline CI/CD que vous pouvez utiliser comme point de départ pour votre propre application.

Pour plus d'informations sur ces fonctions, consultez les rubriques suivantes :

Déploiement avec la CLI AWS SAM

Après avoir développé et testé votre application sans serveur localement, vous pouvez déployer votre application à l'aide de la commande sam deploy.

Pour que AWS SAM vous guide tout au long du déploiement avec des invites, spécifiez l'indicateur --guided. Lorsque vous spécifiez cet indicateur, la commande sam deploy compresse vos artefacts d'application, les télécharge soit sur Amazon Simple Storage Service (Amazon S3) (pour les archives de fichiers .zip), soit sur Amazon Elastic Container Registry (Amazon ECR) (pour les images de conteneur). Cette commande déploie votre application dans le Cloud AWS.

Exemple :

# Deploy an application using prompts: sam deploy --guided

Résolution de problèmes de déploiement à l'aide de la CLI AWS SAM

Erreur CLI AWS SAM : « Contraintes de sécurité non satisfaites »

Lors de l'exécution de sam deploy --guided, vous devrez répondre à la question HelloWorldFunction may not have authorization defined, Is this okay? [y/N]. Si vous répondez à cette question par non N (réponse par défaut), vous voyez apparaître l'erreur suivante :

 
Error: Security Constraints Not Satisfied
            

L'invite vous informe que l'application que vous êtes sur le point de déployer peut comporter une API Amazon API Gateway configurée sans autorisation. En répondant N à cette question, vous dites que ce n'est pas OK.

Pour résoudre le problème, vous disposez des options suivantes :

  • Configurez votre application avec l'autorisation. Pour plus d'informations sur la configuration de l'autorisation, consultez Contrôle de l'accès aux API de API Gateway.

  • Répondez à cette question par Y pour indiquer que vous êtes d'accord avec le déploiement d'une application sur laquelle une API API Gateway est configurée sans autorisation.

Déploiements graduels

Pour effectuer un déploiement AWS SAM graduellement plutôt qu'en une seule fois, vous pouvez spécifier des configurations de déploiement fournies par AWS CodeDeploy. Pour plus d'informations, consultez la section Utilisation des configurations de déploiement CodeDeploy dans le Guide de AWS CodeDeploy l'utilisateur.

Pour plus d'informations sur la configuration de votre application AWS SAM à déployer progressivement, consultez Déploiement progressif des applications sans serveur.

En savoir plus

Pour des exemples pratiques de déploiement d'applications sans serveur, consultez ce qui suit dans L'atelier AWS SAM complet :

  • Module 3 – déployer manuellement : apprenez à créer, packager et déployer une application sans serveur à l'aide de la CLI AWS SAM.

  • Module 4 – CI/CD : découvrez comment automatiser les phases de création, de package et de déploiement en créant un pipeline d'intégration et de livraison continues (CI/CD).