Maison > interface Web > js tutoriel > Un guide du déploiement sans serveur avec Express et MongoDB

Un guide du déploiement sans serveur avec Express et MongoDB

Lisa Kudrow
Libérer: 2025-02-10 12:47:09
original
1008 Les gens l'ont consulté

A Guide to Serverless Deployment with Express and MongoDB

Ce tutoriel démontrera mon flux de travail de déploiement d'application Web de base de base de données préféré. C'est pour les développeurs qui souhaitent obtenir un développement complet dans les projets individuels sans avoir à configurer et à maintenir une infrastructure multi-services complexes.

Nous déploierons une application Web très basique écrite dans Node.js et Express. Il permet aux visiteurs d'écrire et d'enregistrer des notes, ainsi que de lire des notes précédemment écrites. Les données sont stockées dans la base de données MongoDB. Nous utiliserons des actions GitHub pour créer un CI https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712cd workflow pour déployer nos applications sur AWS Lambda.

L'accent est mis sur la simplicité, la praticité et les économies de coûts. Étant donné que AWS et MongoDB ont des niveaux gratuits très généreux, vous pouvez apprendre gratuitement. Cependant, n'oubliez pas que si vous ne voulez pas finir par payer quelques centimes, débouchez la demande plus tard. Étant donné que votre application sera accessible au public, elle peut théoriquement l'emporter sur le niveau gratuit à long terme. Cependant, si vous prévoyez d'utiliser cette extension d'application à vos propres fins, je peux recommander cette configuration car elle est très abordable pour un site Web à trafic modérément.

Vous pouvez trouver tout le code de ce tutoriel sur notre compte GitHub.

Points clés
  • Déploiement sans serveur avec AWS Lambda et MongoDB Atlas pour une évolutivité rentable et une gestion simplifiée du serveur.
  • Utilisez des actions GitHub pour l'intégration et le déploiement continues, mettent automatiquement à jour et déploient automatiquement les applications Express sur AWS Lambda.
  • Utilisez Mongoose pour la modélisation d'objets, stockez les données d'application dans MongoDB et gérez efficacement les connexions de la base de données dans un environnement sans serveur.
  • Protéger les instances de l'atlas MongoDB en définissant l'authentification des utilisateurs et la liste blanche des adresses IP, bien que pour les données sensibles, envisagez une option plus sûre.
  • Intégrer la passerelle API AWS pour améliorer l'accès et la gestion des applications, permettant des URL publiques et des configurations de domaine personnalisé potentielles.
  • Utiliser Docker pour la configuration du développement local pour MongoDB et Node.js, assurant un environnement puissant pour la création et le test des applications express.

    Prérequis

    La construction d'une application nécessite des choses. Assurez-vous que le nœud et le docker sont installés sur votre système. Pour installer le nœud, vous pouvez utiliser Node Version Manager (NVM) (voir quelques instructions ici). Pour Docker, installez la dernière version de Docker Desktop pour votre système d'exploitation.

    Veuillez noter que nous utiliserons Docker pour exécuter des instances MongoDB sur notre machine. Alternativement, vous pouvez installer manuellement MongoDB Community Edition. Vous pouvez trouver des instructions ici.

    Vous devez également avoir un compte sur GitHub, MongoDB et Amazon Web Services (AWS). Lorsque vous vous inscrivez sur AWS, vous devez saisir votre numéro de carte de crédit. Comme mentionné ci-dessus, les étapes de ce tutoriel ne dépasseront pas le niveau libre.

    Certaines connaissances préparatoires sur le nœud et l'expression peuvent être utiles.

    Développement local

    D'accord, commençons. Nous avons d'abord besoin d'un dossier vide avec le nouveau fichier package.json. Si vous faites NPM init, vous pouvez en créer un.

    Nous devons installer les dépendances suivantes:

    1. Express, utilisé pour répondre aux demandes HTTP du client
    2. Mongoose, utilisé pour communiquer avec notre base de données MongoDB
    3. AWS-Serverless-Express, pour AWS Lambda pour pouvoir appeler notre application
    4. simultanément (en tant que dépendance de développement), utilisé pour exécuter des scripts NPM en parallèle

      Exécutez la commande suivante pour les installer:

       <code class="language-bash"> Installation du NPM - Save Express Mongoose AWS-Serverless-Express && npm Install --Save-Dev simultanément <https:> <https:>
      <h3> 1.
      <https:> Puisque nous utilisons la base de données MongoDB pour stocker nos données, l'exécution d'une instance de base de données sur une machine locale est utile pour le développement. C'est là que nous utilisons la dernière image Docker <p> Mongo <em>. Si Docker est installé sur votre machine, tapez simplement Docker Run Mongo dans le terminal. L'image sera extraite de DockerHub et lancé dans un nouveau conteneur. Si vous n'êtes pas familier avec Docker, cela n'a pas d'importance. Il vous suffit de savoir qu'une instance MongoDB fonctionne sur votre ordinateur et vous pouvez communiquer avec lui. <https:>
      <https:> Pour que notre application communique avec la base de données, nous devons initialiser une connexion. Nous le faisons dans un nouveau fichier appelé Mongoose.js.Mongoose 是帮助我们进行 MongoDB 对象建模的库: <https:>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 mongoose.js
      
      const Mongoose = require ("Mongoose");
      
      const uri = process.env.mongodb_url;
      
      Laisser la connexion;
      const Connect = async () = & gt; {
        essayer {
          connexion = attendre Mongoose.CreateConnection (URI, {
            usnewurlparser: vrai,
            useFindAndMotify: false,
            useunifiedTopology: true,
            Buffercommands: false, https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 Mongoose
            Buffermaxentries: 0, https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5ebe4edde557fd83712 et mongoDB
          });
          connexion de retour;
        } catch (e) {
          Console.Error ("ne pouvait pas se connecter à MongoDB ...");
          jeter e;
        }
      };
      
      fonction getConnection () {
        connexion de retour;
      }
      
      module.exports = {connect, getConnection}; <https:> <https:>
      <p> 此文件导出一个包含两个函数的对象。Connect () 创建一个到我们环境变量中指定位置的 MongoDB 的连接。该连接存储在一个名为 Connexion 的变量中。getConnection () 只是返回 Connexion 变量。您可能想知道为什么我们不直接返回 Connexion 变量本身。这是因为 Node.js 在第一次加载后会缓存所需的模块。因此 , 我们使用一个函数从我们的 Mongoose.js 模块中提取最新的connexion 变量。 <https:>
      <p> 现在我们的应用程序能够连接到数据库 , 我们也希望在其中存储数据 —— 更具体地说 , 是我们可以在用户界面中编写的笔记。因此 , 我们将为我们的笔记创建一个数据模型。这在 Modèles 文件夹内名为 Notes.js 的新文件中完成 : <https:>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5ebe4edde557fd83712 n / link / 29a9f8c8460e5e2be4edde557fd83712notes.js
      
      const Mongoose = require ("Mongoose");
      const {getConnection} = require ("..https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      const Conn = getConnection ();
      Const Schema = Mongoose.schema;
      
      module.exports = conn.model (
        "Note",
        Nouveau schéma ({texte: {type: chaîne, obligatoire: true}})
      ); <https:> <https:>
      <p> 在这里 , 我们从 Mongoose.js 模块中提取当前连接 , 并在其上注册一个名为 Remarque 的模型。它有一个非常基本的模式 , 只包含一个名为 Texte 的必需属性 , 类型为 String 。En utilisant ce modèle, nous pouvons construire des documents stockés dans la base de données. <https:>
      <h3> 2.
      <https:> Ensuite, nous créons une application express simple. Créez un fichier nommé app.js dans le répertoire racine du projet.它具有以下内容 : <https:>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 App.js
      
      const Express = require ("express");
      
      const app = express ();
      
      app.use (express.urlencoded ({étendu: false}));
      
      app.get ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", async (req, res) = & gt; {
        essayer {
          const Note = require (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712modelshttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712NOT;
          const notes = attend note.find ({});
          retour res.status (200) .Send (
            '
            <style>
                html {
                    Texte-aligne: Centre;
                    Color d'arrière-plan: # 93C5FD;
                    Font-Family: "Segoe UI", Tahoma, Genève, Verdana, Sans-Serif;
                    Couleur: blanc;
                    taille de police: 2rem;
                }
      
                TextArea {
                    redimensionner: aucun;
                    Border: 2px solide # 9CA3AF;
                    Border-Radius: 4px;
                    Color d'arrière-plan: # f3f4f6;
                    rembourrage: 0,5rem;
                    Largeur: 90%;
                }
      
                bouton {
                    padding-gauche: 2rem;
                    rembourrage à droite: 2rem;
                    Tableau de rembourrage: 7px;
                    Padding-Bottom: 7px;
                    Color d'arrière-plan: # f3f4f6;
                    Border: 2px solide # 9CA3AF;
                    Couleur: # 4B5563;
                    Border-Radius: 4px;
                }
      
                p {
                    Border-Bottom: 2px solide;
                    rembourrage: 1rem;
                    Texte-aligne: gauche;
                }
            <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712style>
            <form method="POST">
                <textarea name="text"> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712textarea> <br>
                <button type="submit"> Enregistrer <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712button>
            <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712form>
            <h1> mes notes <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h1>
            $ {notes.map ((n) = & gt; `<p> $ {n.text} <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>`) .join ("")}
            '
          ));
        } catch (e) {
          retour res.send (e);
        }
      });
      
      app.post ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", async (req, res) = & gt; {
        essayer {
          const Note = require (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712modelshttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712NOT;
          const Note = new Note (req.body);
          attendre note.save ();
          return res.send ("note enregistré. <a href='https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712'> rafraîchir <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712a>");
        } catch (e) {
          retour res.send (e);
        }
      }));
      
      module.exports = app; <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> Comme je l'ai dit, l'application est très grossière et n'est utilisée que comme démonstration. Tout d'abord, nous lançons une application Express. Nous lui disons ensuite d'analyser le corps de la demande entrante pour nous, en utilisant le middleware Urlencoded intégré pour pouvoir utiliser les données de formulaire soumises. L'application dispose de deux méthodes pour traiter les demandes sur le répertoire racine de l'application: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <ul>
      <li>
      <p> app.get ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", ...) gère les demandes de GET HTTP. Lorsque notre utilisateur charge la page, on l'appelle. Nous voulons leur montrer une page simple où ils peuvent taper des notes et l'enregistrer. De plus, nous voulons également afficher des notes précédemment écrites. Dans la fonction de rappel du gestionnaire de demandes, nous avons besoin de notre modèle de notes. Le modèle doit être requis dans la fonction de rappel de notre gestionnaire de requête Post, car il nécessite une connexion de base de données actuelle - la connexion peut ne pas exister lorsque le fichier app.js est chargé pour la première fois. Ensuite, nous appliquons la méthode de recherche pour recevoir toutes les notes dans la base de données. Cette méthode renvoie une promesse. Nous attendons donc qu'il analyse. Enfin et surtout, nous utilisons la méthode d'envoi de l'objet de réponse (RES) pour renvoyer la chaîne au client. Cette chaîne contient la syntaxe HTML que le navigateur rend comme l'élément HTML réel. Pour chaque note de notre base de données, nous ajoutons simplement un élément de paragraphe qui contient son texte. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> C'est là que vous pouvez convertir cet exemple très humble en une belle interface utilisateur. Vous êtes libre de choisir quoi envoyer au client. Par exemple, cela pourrait être une application de réaction client entièrement groupée. Vous pouvez également choisir une méthode de rendu côté serveur, par exemple, en utilisant un moteur express comme le guidon. Selon ce qu'il est, vous devrez peut-être ajouter plus de itinéraires à votre application et servir des fichiers statiques comme les packages JS. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712li>
      <li>
      <p> app.post ("https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", ...) gère les demandes de publication http. Lorsque l'utilisateur enregistre ses notes, on l'appelle. Encore une fois, nous avons d'abord besoin de notre modèle de notes. La charge utile de la demande est accessible via l'attribut corporel de l'objet de demande (REQ). Il contient le texte soumis par l'utilisateur. Nous l'utilisons pour créer un nouveau document et l'enregistrer en utilisant la méthode de sauvegarde fournie par Mongoose. Encore une fois, nous attendons que cette opération asynchrone se termine, puis invitons l'utilisateur et lui donnons la possibilité de rafraîchir la page. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712li>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712ul>
      <p> Pour que notre application commence réellement à écouter les demandes HTTP, nous devons appeler la méthode d'écoute fournie par Express.Nous le ferons dans un fichier séparé Dev.js ajouté au répertoire racine du projet: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 Dev. : :::: : :::::::::::::::::::::::::::::::::::- : :::::::::::::::::::::::::::::::::::- : ::::::::::::
      
      const app = require (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712app");
      const {connect} = required (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      
      connecter();
      
      Port const = 4000;
      
      app.Listen (port, () = & gt; {
        console.log (`application écoute sur le port $ {port}`);
      }); <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> Ici, nous appelons la fonction de connexion dans le fichier Mongoose.js. Cela initiera une connexion de base de données. Enfin et surtout, nous commençons à écouter les demandes HTTP sur le port 4000. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Démarrer les images de Mongo Docker avec deux commandes distinctes et notre application est un peu gênante. Nous ajoutons donc quelques scripts à notre fichier package.json: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-json"> "scripts": {
        "Démarrer": "NPM simultanément: MongoDB '' npm: dev '",
        "Dev": "MongoDB_URL = MongoDB: https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https: //www.php.cn/link/29a9f8c8460e5e2Be4e : 27017 nœud dev.js ",
        "MongoDB": "Docker Run -P 27017: 27017 Mongo"
      } <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> MongoDB démarre une instance MongoDB et mappe le port de conteneur 27017 au port 27017 de la machine locale. Dev lance notre application et définit la variable d'environnement mongodb_url chargé dans le fichier mongoose.js pour communiquer avec notre base de données. Le script de démarrage exécute les deux scripts en parallèle. Maintenant, nous devons simplement exécuter NPM Start dans le terminal pour démarrer notre application. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Vous pouvez désormais accéder à Http: https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2Be4edde55 4000 pour charger l'application.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284121297.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h2> <strong> Déploiement <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2>
      <p> Il est temps de déployer notre application. Nous utiliserons les fonctions lambda sur AWS, MongoDB Atlas et AWS API Gateway. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 1. Pourquoi les utilisons-nous? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> La fonction lambda est un moyen d'exécuter du code en réponse aux demandes HTTP sans maintenir le serveur. Ils s'exécutent uniquement à la demande, ce qui signifie que vous n'avez pas à payer le temps du serveur si personne n'appelle votre service. D'un autre côté, si de nombreuses personnes appellent votre service, AWS évoluera automatiquement et lancera plus d'instances Lambda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Comme son nom l'indique, les fonctions lambda sont des fonctions que vous pouvez remplir avec ce que vous voulez. Il n'y a qu'une seule exception: votre code ne doit pas être avec état, car l'instance lambda sera fermée une fois qu'elle ne sera plus exécutée. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Nous enroulons l'intégralité de l'application dans une fonction lambda et la déployons sur AWS Lambda. AWS Lambda a un niveau gratuit très généreux et illimité qui comprend un million de demandes gratuites par mois et 400 000 Go de secondes! Vous pouvez donc expérimenter en toute sécurité le service et déployer plusieurs fonctions Lambda sans le payer. N'oubliez pas que si vous ne voulez plus les utiliser, supprimez ces fonctions. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 2.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Maintenant, connectez-vous à votre console de gestion AWS et accédez à AWS Lambda. Dans la section <p> Fonctions <em>, cliquez sur <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> pour créer une fonction <em>. Avant cela, il est important que vous ayez spécifié la région de déployer le service. Sur un ordinateur de bureau, vous pouvez sélectionner une zone dans le coin supérieur droit de la console de gestion. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Sélectionnez <p> pour créer à partir de zéro <em> et nommer votre fonction.Je l'ai nommé <em> Express-Lambda-Example <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Sous <em> Runtime <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, sélectionnez <em> node.js 12x <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> et créez la fonction. Vous verrez une fenêtre comme indiqué ci-dessous: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284443353.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Notre fonction Lambda contient déjà un code de test. Vous pouvez ignorer cela car nous le remplacerons plus tard. Si vous faites défiler la page, vous verrez une section appelée <em> variable d'environnement <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Rappelez-vous, dans notre script de développement local précédent, nous avons défini une variable appelée mongodb_url? Nous devons créer les mêmes variables ici afin que notre instance Lambda puisse communiquer avec notre base de données. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Cependant, nous n'avons pas encore exécuté la base de données. Nous ne voulons pas utiliser nos machines locales à cet effet. C'est pourquoi nous allons créer un cluster de niveau libre MongoDB Atlas. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 3.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Pour créer un cluster de niveau gratuit, créez un compte sur mongodb.com. Pendant le processus d'enregistrement, il vous sera demandé de sélectionner le type de cluster. Choisissez le cluster partagé gratuit <p>. L'étape suivante consiste à nommer votre projet. De plus, vous pouvez choisir votre langage de programmation préféré. <em>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> À l'étape suivante, vous pouvez choisir des fournisseurs de cloud et des régions. Étant donné que nous utilisons déjà AWS pour notre application Node.js, je vous recommande de le sélectionner et, si possible, sélectionnez la même région que vous avez sélectionnée sur AWS. Dans la section suivante, vous pouvez décider quel niveau utiliser. Sélectionnez le niveau <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> M0 Sandbox <p>. MongoDB ne recommande pas d'utiliser cette hiérarchie dans des environnements de production, mais pour les débutants, il fournira tout ce dont vous avez besoin.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284592009.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Quelques minutes plus tard, notre cluster sera prêt à l'emploi. La seule chose qui manque maintenant est l'accès. Cliquez sur <em> dans le menu pour accéder à <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> et créer un nouvel utilisateur. La méthode d'authentification est <em> mot de passe <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Accorde les autorisations de lecture et d'écriture de l'utilisateur. Une fois cela fait, nous devons la liste blanche les adresses IP qui peuvent accéder à notre base de données. Vous pouvez le faire dans la section <em> Network Access <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Malheureusement, nous ne connaissons pas l'IP de chaque instance Lambda qui essaie de se connecter à notre cluster. Nous allons donc la liste blanche toutes les adresses IP en ajoutant 0.0.0.0 https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd837120. Veuillez noter que cela n'est pas recommandé si vous avez des données sensibles et que vous souhaitez assurer un niveau élevé de protection des données. Nos clusters ne sont désormais protégés que par les informations d'identification que nous donnons aux utilisateurs de la base de données. La configuration des connexions par les pairs sera une solution possible à ce problème. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Maintenant, revenez à votre cluster et cliquez sur <em> Connexion <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Dans la fenêtre du mode pop-up, cliquez sur <em> pour connecter votre application <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Ensuite, sélectionnez Node.js version 2.2.12 ou version ultérieure et copiez la chaîne de connexion. Retournez à notre console Fonctions Lambda sur AWS, créez une nouvelle variable d'environnement appelée mongodb_url et collez la chaîne de connexion. Assurez-vous de remplacer l'espace réservé dans la chaîne par les informations d'identification de l'utilisateur de la base de données et le nom de la base de données. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 4.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> Pour que AWS Lambda appelle notre application, nous devons configurer un nouveau script d'entrée similaire à ce que nous avons fait dans le fichier Dev.js.Nous le nommerons index.js, qui a les éléments suivants: <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-javascript"> https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712 index.
      const awsserverlessExpress = require ("aws-serverless-express");
      const {connect} = required (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose");
      
      Soit Connexion = NULL;
      
      module.exports.handler = async (événement, contexte) = & gt;
        context.callbackwaitsForemptyEventloop = false;
      
        if (connection === null) connexion = attendre connect ();
        const app = require (".https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712app");
        const Server = awSserverlessExpress.CreateServer (app);
        return awsserverlessExpress.proxy (serveur, événement, contexte, "promesse"). Promise;
      }; <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> Ici, nous utilisons la bibliothèque AWS-Serverless-Express. Il a essentiellement la même fonctionnalité que la méthode d'écoute dans Dev.js. Il permet à notre application de traiter les demandes des clients dans un environnement Lambda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Maintenant, il y a une chose importante à noter sur notre fichier lambda.js. Chaque fois que la fonction lambda est appelée, la fonction de gestionnaire est exécutée. Tout en dehors de la fonction du gestionnaire est démarré une fois lorsque le conteneur lambda est démarré et peut persister entre plusieurs appels de lambda. C'est pourquoi nous stockons les objets de connexion MongoDB dans la portée globale du fichier. Chaque fois que la fonction de gestionnaire est exécutée, il vérifie si la connexion a été démarrée. Si c'est le cas, la fonction le réutilise au lieu de se reconnecter à la base de données à chaque fois. Ceci est très important car cela fait économiser beaucoup de temps d'exécution. Pour que la connexion persiste dans plusieurs appels, nous devons définir Context.CallbackWaitForemptyEventloop à False. Vous pouvez en savoir plus sur cette fonctionnalité ici. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 5.
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3> L'étape suivante consiste à créer un CI https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712cd workflow à l'aide des actions github. Cela signifie que chaque fois que nous poussons un code change dans le référentiel GitHub, nous voulons déclencher un pipeline. Le pipeline gère automatiquement la mise à jour de nos fonctions lambda sur AWS. Jakob Lind décrit bien ce processus dans son article "Comment configurer AWS Lambda et le déploiement automatique avec les actions GitHub". Je résumerai brièvement les pièces principales. <p>
      <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p> Pour que Github configure et démarrez le workflow, nous sommes sur le chemin https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712.githubhttps://www.php.cn/link/29a9f8c8460e5 .yml dans e2be4edde557fd83712 workflows fichier.它包含以下 YAML 代码 : <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <pre class="brush:php;toolbar:false"> <code class="language-yaml"> # https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712.githubhttps://www.php.cn/link/29a9f8cworksflowshtt ww.php.cn/link/29a9f8c8460e5e2be4edde557fd83712deploy.yml
      
      Nom: Déployer sur Lambda
      sur:
        pousser:
          Branches:
            - principal
      Emplois:
        déployer:
          Nom: déploier
          stratégie:
            matrice:
              Version de nœud: [12.x]
          Runs-on: Ubuntu-Latest
          mesures:
            - Utilisations: actionshttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712checkout@v1
            - Nom: Configuration Nodejs
              Utilisations: actionshttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712setup-dode@v1
              avec:
                Node-Version: $ {{matrix.node-Version}}
            - Nom: Installation de NPM
              Exécution: NPM CI - Production
            - Nom: Zip
              Utilisations: Montudorhttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712action-zip@v0.1.1
              avec:
                Args: zip -qq -r .https: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712app.zip .https: //www.php.cn/link/29a9f8c8460e5e2be4edde557f.
            - Nom: Push to Lambda
              Utilisations: Appleboyhttps: //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712lambda-action@master
              avec:
                aws_access_key_id: $ {{secrets.aws_access_key}}
                aws_secret_access_key: $ {{secrets.aws_secret_key}}
                aws_region: eu-central-1 # 请替换为您的 aws 区域
                function_name: express-lambda-exemple
                zip_file: app.zip <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre>
      <p> 该文件告诉 Actions GitHub 在每次推送到存储库的主分支时执行一个名为 Déployer 的作业。对我来说 , 将其仅限于主分支非常有用。因此 , 您可以安全地推送到您的开发分支 , 而不会将不需要的代码部署。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Déployer 作业只是安装所有必要的库 , 将整个项目压缩 , 并将其推送到 AWS Lambda 。请注意 , YAML 文件需要通过环境变量访问 AWS 访问密钥 : AWS_ACCESS_KEY 和 AWS_SECRET_KEY 。您可以通过在 AWS 上的身份和访问管理控制台中创建新用户来生成这些密钥。获得密钥后 , 您需要将它们另存为 github 项目设置下的环境变量 , 位于 <em> secrets <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> 下。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> 要使您的应用程序在 Aws lambda 上准备好 , 您需要提交您的代码并将其推送到 github 存储库的主分支。 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> 6. 使用 AWS API Gateway 使我们的应用程序可访问 <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> 现在我们的应用程序已准备好用于实时环境。但是 , 我们没有通过 Web 访问它的方法。这就是我们接下来使用 AWS API Gateway 所做的。Veuillez noter que l'API Gateway a également un niveau gratuit. Cependant, ce package est limité à 12 mois. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Dans votre console AWS, accédez au service API Gateway et cliquez sur <em> Créer API <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, sélectionnez <em> REST API <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, Nommez-le et enregistrez-le. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Pour connecter la passerelle API à notre fonction Lambda, nous créons une nouvelle méthode qui transmet toutes les demandes HTTP à notre fonction Lambda. Par conséquent, dans le menu déroulant <em> Operation <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, sélectionnez <em> Créer la méthode <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> et sélectionnez <em> n'importe quel <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Vous devriez voir un écran comme indiqué dans l'image suivante. Assurez-vous que la case à cocher <em> Utiliser la case d'agent Lambda <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> est sélectionnée. Entrez le nom de la fonction lambda et enregistrez-le. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284649066.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Ensuite, nous devons configurer l'intégration de proxy lambda. Cela signifie essentiellement que toutes les demandes des clients doivent être redirigées telles quelles vers notre fonction Lambda. Par conséquent, nous créons une nouvelle ressource dans le menu déroulant <em> Action <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Dans la fenêtre du mode pop-up, sélectionnez la case <em> Configurer comme ressource proxy <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> case (voir ci-dessous) et enregistrer.<https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> <img src="https:https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712img.php.cnhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712uploadhttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712articlehttps://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712000https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712173916284977045.jpg" alt="A Guide to Serverless Deployment with Express and MongoDB " https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Cela créera une autre méthode que nous devons connecter à la fonction lambda. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Enfin, nous déployons notre API en sélectionnant <em> Déployer API <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> dans le menu déroulant <em> Action <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>. Dans la fenêtre contextuelle, sélectionnez <em> [nouvelle étape] <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em>, nommez la scène et déployez-la. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> c'est tout. Vous pouvez accéder à notre application en cliquant sur la <em> URL d'appel <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> trouvée dans le <em> Éditeur de scène <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> de la phase créée. <em> L'URL d'appel <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em> est l'url publique mappée sur notre passerelle API. Bien sûr, vous pouvez également utiliser un domaine personnalisé pour ce faire. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h2> <strong> Conclusion <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2>
      <p> Vous verrez que le déploiement d'applications plus complexes qui nécessitent des bases de données n'est pas nécessairement difficile. Bien sûr, le flux de travail que je vous montre est loin d'être parfait et manque de nombreuses fonctionnalités dont les grandes applications ont besoin à long terme. Mais pour moi, cela s'est avéré simple, pratique et économique pour les sites Web à faible trafic et modéré. J'ai utilisé une pile technologique très similaire pour construire et déployer JSCHALLENGER. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <p> Si vous avez des idées ou des commentaires, veuillez contacter: @kueckelheim via Twitter. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h2> <strong> FAQ (FAQ) sur le déploiement sans serveur avec express et mongodb <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong> <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2>
      <h3> Quels sont les avantages d'utiliser Express et MongoDB pour le déploiement sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Le déploiement sans serveur avec Express et MongoDB présente plusieurs avantages.Tout d'abord, il permet aux développeurs de se concentrer sur l'écriture de code sans se soucier de la gestion des serveurs. En effet, l'architecture sans serveur gère automatiquement le serveur pour vous. Deuxièmement, il est rentable parce que vous n'avez qu'à payer pour le temps de calcul que vous consommez. Aucun frais n'est facturé lorsque votre code n'est pas en cours d'exécution. Troisièmement, les déploiements sans serveur évolueront automatiquement en fonction de la taille de votre charge de travail. Cela signifie que votre application peut traiter plus de demandes à mesure que la demande augmente sans aucune intervention manuelle. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment déboguer mon application sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Les applications sans serveur drainant peuvent être un peu délicates en raison de sa nature distribuée. Cependant, il existe plusieurs façons d'utiliser pour déboguer votre demande. L'une des méthodes les plus courantes consiste à utiliser la journalisation. Vous pouvez enregistrer des informations importantes sur l'exécution des applications, puis analyser ces journaux pour trouver des problèmes. Une autre approche consiste à utiliser des outils de suivi distribués tels que les rayons X AWS. Ces outils fournissent des informations sur les performances de l'application et où les goulots d'étranglement se produisent. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Puis-je utiliser Express Middleware dans une application sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Oui, vous pouvez utiliser des middleware express dans des applications sans serveur. Les fonctions middleware express sont des fonctions qui peuvent accéder à l'objet de demande (REQ), à l'objet de réponse (RES) et à la fonction middleware suivante dans le cycle de demande de demande d'application. Ces fonctions peuvent exécuter n'importe quel code, modifier les objets de demande et de réponse, mettre fin au cycle de demande-réponse et appeler la fonction middleware suivante. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment protéger mon application sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> La protection des applications sans serveur implique plusieurs étapes. Tout d'abord, vous devez suivre le principe des moindres autorisations. Cela signifie que vous ne devez accorder que les autorisations nécessaires à votre fonction. Deuxièmement, vous devez crypter des données sensibles au repos et pendant la transmission. Troisièmement, vous devez mettre à jour vos dépendances régulièrement pour éviter toute vulnérabilité connue. Enfin, vous devez surveiller votre demande pour toute activité anormale. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment tester mon application sans serveur localement? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Vous pouvez utiliser des outils tels que le serveur hors ligne pour tester les applications sans serveur localement. Cet outil émule AWS Lambda et API Gateway sur votre machine sur site, vous permettant de tester des applications sans serveur sans le déployer. Vous pouvez également utiliser des cadres de test unitaires comme JEST pour tester vos fonctions individuelles. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment surveiller mon application sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Une variété d'outils peuvent être utilisés pour surveiller les applications sans serveur. AWS fournit des outils de surveillance tels que CloudWatch et X-Ray.CloudWatch vous fournit des données et des informations exploitables pour surveiller vos applications, comprendre et répondre aux changements de performances à l'échelle du système, optimiser l'utilisation des ressources et obtenir une vue unifiée de l'état opérationnel. X-Ray aide les développeurs à analyser et à déboguer les applications distribuées sur la production, telles que celles construites à l'aide d'architectures de microservice. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment gérer les erreurs dans les applications sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Vous pouvez utiliser le bloc d'essai de capture dans votre code pour gérer les erreurs dans les applications sans serveur. Vous pouvez également utiliser des fonctions middleware pour gérer les erreurs. De plus, AWS Lambda réessaye automatiquement la fonction Lambda échouée deux fois, et vous pouvez configurer d'autres returies. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment optimiser les performances des applications sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> L'optimisation des performances d'une application sans serveur implique plusieurs étapes. Tout d'abord, vous devez choisir la taille de mémoire appropriée pour votre fonction. Deuxièmement, vous devez minimiser la taille du package de déploiement pour réduire le temps de démarrage froid. Troisièmement, vous devez utiliser un pool de connexion pour réutiliser la connexion de la base de données. Enfin, vous devez utiliser Cache pour réduire le nombre d'appels de base de données. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Puis-je utiliser MongoDB Atlas avec des applications sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Oui, vous pouvez utiliser MongoDB Atlas avec des applications sans serveur. MongoDB Atlas est une base de données cloud entièrement gérée développée par la même personne qui a construit MongoDB. Il fournit un moyen facile de déployer, d'exploiter et d'étendre MongoDB sur le nuage de votre choix. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p>
      <h3> Comment migrer mon application express existante vers une architecture sans serveur? <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3>
      <p> Migrer une application Express existante vers une architecture sans serveur implique plusieurs étapes. Tout d'abord, vous devez refacter votre application en fonctions plus petites et apatrides. Deuxièmement, vous devez remplacer tout middleware incompatible par l'architecture sans serveur. Enfin, vous devez tester soigneusement votre application pour vous assurer qu'elle fonctionne correctement dans un environnement sans serveur. <https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p></style></code>
      Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal