>웹 프론트엔드 >JS 튜토리얼 >Express 및 MongoDB를 사용한 서버리스 배포에 대한 안내서

Express 및 MongoDB를 사용한 서버리스 배포에 대한 안내서

Lisa Kudrow
Lisa Kudrow원래의
2025-02-10 12:47:091010검색

A Guide to Serverless Deployment with Express and MongoDB 이 튜토리얼은 선호하는 데이터베이스 중심 웹 응용 프로그램 배포 워크 플로를 보여줍니다. 복잡한 멀티 서비스 인프라를 설정하고 유지하지 않고 개별 프로젝트에서 풀 스택 개발을 달성하려는 개발자를위한 것입니다. 우리는 node.js and express로 작성된 매우 기본적인 웹 응용 프로그램을 배포합니다. 이를 통해 방문자는 메모를 작성하고 저장하고 이전에 작성된 메모를 읽을 수 있습니다. 데이터는 MongoDB 데이터베이스에 저장됩니다. 우리는 github 동작을 사용하여 ci https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712cd Workflow를 만들려면 AWS Lambda에 응용 프로그램을 배포합니다.

초점은 단순성, 실용성 및 비용 절감에 중점을 둡니다. AWS와 MongoDB에는 매우 관대 한 자유 계층이 있으므로 무료로 배울 수 있습니다. 그러나 몇 센트를 지불하지 않으려면 나중에 응용 프로그램을 배포하지 않으려면 기억하십시오. 앱을 공개적으로 사용할 수 있으므로 이론적으로 장기적으로 자유 계층을 능가 할 수 있습니다. 그러나이 앱 확장을 자신의 목적으로 사용할 계획이라면 적당한 인신 매매 웹 사이트에 매우 저렴하기 때문에이 설정을 권장 할 수 있습니다. GitHub 계정 에서이 자습서의 모든 코드를 찾을 수 있습니다.

키 포인트

AWS Lambda 및 MongoDB Atlas를 통한 서버리스 배포 비용은 비용 효율적인 확장 성 및 단순화 된 서버 관리를위한 서버리스 배포.

지속적인 통합 및 배포를 위해 GitHub 작업을 사용하고 AWS Lambda에 Express 응용 프로그램을 자동으로 업데이트 및 배포하십시오. 객체 모델링에 Mongoose를 사용하고 MongoDB에 응용 프로그램 데이터를 저장하며 서버리스 환경에서 데이터베이스 연결을 효율적으로 관리합니다.

민감한 데이터의 경우 더 안전한 옵션을 고려하지만 IP 주소의 사용자 인증 및 화이트리스트를 설정하여 MongoDB Atlas 인스턴스를 보호하십시오. AWS API 게이트웨이를 통합하여 애플리케이션 액세스 및 관리 가능성을 향상시켜 공개 URL 및 잠재적 사용자 지정 도메인 구성을 가능하게합니다.
  • MongoDB 및 Node.js의 지역 개발 설정에 Docker를 사용하여 Express 응용 프로그램을 구축하고 테스트하기위한 강력한 환경을 보장합니다.
  • 전제 조건 응용 프로그램을 구축하려면 몇 가지가 필요합니다. 노드와 Docker가 시스템에 설치되어 있는지 확인하십시오. 노드를 설치하려면 NVM (Node 버전 관리자)을 사용할 수 있습니다 (여기서 몇 가지 지침 참조). Docker의 경우 운영 체제 용 Docker Desktop의 최신 버전을 설치하십시오.

    우리는 Docker를 사용하여 컴퓨터에서 MongoDB 인스턴스를 실행합니다. 또는 MongoDB Community Edition을 수동으로 설치할 수 있습니다. 여기에서 몇 가지 지침을 찾을 수 있습니다. github, mongodb 및 Amazon Web Services (AWS)에 대한 계정이 필요합니다. AWS에 등록 할 때는 신용 카드 번호를 입력해야합니다. 위에서 언급 했듯이이 자습서의 단계를 따르면 자유 계층을 초과하지 않습니다. 노드와 익스프레스에 대한 일부 준비 지식이 도움이 될 수 있습니다. 지역 개발

    좋아, 시작하자. 먼저 새 package.json 파일이있는 빈 폴더가 필요합니다. NPM Init를 수행하면 하나를 만들 수 있습니다. 다음 종속성을 설치해야합니다

    Express, 클라이언트의 HTTP 요청에 응답하는 데 사용됩니다 Mongoose, MongoDB 데이터베이스 와 통신하는 데 사용됩니다 AWS Lambda가 응용 프로그램을 호출 할 수 있도록 aws-serverless-express 동시에 (개발 종속성으로) NPM 스크립트를 병렬로 실행하는 데 사용

  • 다음 명령을 실행하여 설치하십시오 npm 설치-Save Express Mongoose aws-serverless-express && npm 설치-Save-dev 동시에
  • > 1. Mongodb and Mongoose 우리는 MongoDB 데이터베이스를 사용하여 데이터를 저장하기 때문에 로컬 컴퓨터에서 데이터베이스 인스턴스를 실행하는 것이 개발에 도움이됩니다. 이곳에서 우리는 최신
  • mongo 응용 프로그램이 데이터베이스와 통신하려면 연결을 초기화해야합니다. 우리는 mongoose.js라는 새로운 파일로 이것을합니다.Mongoose 是帮助我们进行 mongodb 对象建模的库 : https://www.php const mongoose = 요구 사항 ( "Mongoose"); const uri = process.env.mongodb_url; 연결하자; const connect = async () = & gt; { 노력하다 { Connection = await mongoose.createConnection (uri, { usenewurlparser : true, usefindandModify : false, useuunifiedtopology : true, BufferCommands : False, https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e5e2be4edde557fd83712 Mongoos Buffermaxentries : 0, https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e5e2be4edde557fd83712 및 mongoddb }); 반환 연결; } catch (e) { Console.error ( "Mongodb에 연결할 수 없습니다 ..."); e 던지기; } }; 함수 getConnection () { 반환 연결; } module.exports = {connect, getConnection}; 现在我们的应用程序能够连接到数据库 现在我们的应用程序能够连接到数据库, ——— 更具体地说, 是我们可以在用户界面中编写的笔记。因此, 我们将为我们的笔记创建一个数据模型Models Models. Notes.js 的新文件中完成 : https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c84600e5e2be47fd83712 W. CN/LINK/29A9F8C8460E5E2BE4EDDE557FD83712NOTES.JS const mongoose = 요구 사항 ( "Mongoose"); const {getConnection} = 요구 사항 ( "..https : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose"); const conn = getConnection (); const schema = mongoose.schema; module.exports = conn.model ( "메모", 새 스키마 ({text : {type : string, 필수 : ​​true}}) ); 在这里 在这里, 我们从 mongoose.js 模块中提取当前连接 模块中提取当前连接, 并在其上注册一个名为 참고 的模型。它有一个非常基本的模式, 只包含一个名为 텍스트 的必需属性, 类型为 문자열 。이 모델을 사용하여 데이터베이스에 저장된 문서를 구성 할 수 있습니다. <https:> > 2. Express Application 다음으로, 우리는 간단한 익스프레스 응용 프로그램을 만듭니다. 프로젝트 루트 디렉토리에서 app.js라는 파일을 만듭니다.它具有以下内容 : https://www.php const express = 요구 사항 ( "Express"); const app = express (); app.use (express.urlencoded ({extended : false})); app.get ( "https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712", async (req, res) = & gt; { 노력하다 { const note = require ( ".https : //www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712modelshttps : //www.php.cn/link/29a9f8c8460e5e2be const notes = await note.find ({}); return res.status (200) .send ( ` <https:> html { 텍스트 정렬 : 센터; 배경색 : #93C5FD; Font-Family : "Segoe Ui", Tahoma, Geneva, Verdana, Sans-Serif; 색상 : 흰색; 글꼴 크기 : 2REM; } Textarea { 크기 조정 : 없음; 테두리 : 2px 고체 #9ca3af; Border-Radius : 4px; 배경색 : #f3f4f6; 패딩 : 0.5REM; 너비 : 90%; } 버튼 { 왼쪽 패딩 : 2REM; 패딩-오른쪽 : 2REM; 패딩 탑 : 7px; 패딩 바닥 : 7px; 배경색 : #f3f4f6; 테두리 : 2px 고체 #9ca3af; 색상 : #4B5563; Border-Radius : 4px; } p { 국경 바닥 : 2px 고체; 패딩 : 1rem; 텍스트 정렬 : 왼쪽; } <pre class="brush:php;toolbar:false"> &lt;code class=&quot;language-javascript&quot;&gt; &lt;style&gt; &lt;&lt;&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712style&gt; &lt;form method=&quot;POST&quot;&gt; 저장 &lt;🎜 🎜&gt; &lt;textarea name=&quot;text&quot;&gt; &lt;🎜 🎜&gt; 내 노트 &lt;🎜 🎜&gt; $ {notes.map ((n) = &amp; gt;`&lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712textarea&gt; $ {n.text} &lt;🎜 🎜&gt;`) .join ( &quot;&quot;)} ` ); } catch (e) { 반환 Res.Send (e); } }); app.post ( &quot;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&quot;, async (req, res) = &amp; gt; { 노력하다 { const note = require ( &quot;.https : //www.php.cn/link/29a9f8c8460e5e2be4edde5557fd83712modelshttps : //www.php.cn/link/29a9f8c8460e5e2be const note = new Note (Req.Body); 기다려주십시오 .Save (); return res.send ( &quot;Note Saved. &lt;br&gt; refresh &lt;🎜 🎜&gt;&quot;); } catch (e) { 반환 Res.Send (e); } }); module.exports = app; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre&gt; 내가 말했듯이, 앱은 매우 무례하며 데모로만 사용됩니다. 먼저, 우리는 Express 응용 프로그램을 시작합니다. 그런 다음 제출 된 양식 데이터를 사용할 수 있도록 내장 Urlencoded Middleware를 사용하여 우리에게 들어오는 요청 본문을 구문 분석하라고 지시합니다. 응용 프로그램에는 응용 프로그램 루트 디렉토리에서 요청을 처리하는 두 가지 방법이 있습니다. &lt;p&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; App.get ( &quot;https://www.php.cn/link/29a9f8460e5e2be4edde557fd83712&quot;, ...)는 http get requests를 처리합니다. 사용자가 페이지를로드하면 호출됩니다. 우리는 그들에게 노트를 입력하고 저장할 수있는 간단한 페이지를 보여주고 싶습니다. 또한 이전에 작성된 메모도 표시하고 싶습니다. 요청 핸들러의 콜백 함수에는 노트 모델이 필요합니다. 현재 데이터베이스 연결이 필요하기 때문에 Post Request Handler의 콜백 기능 내에서 모델이 필요합니다. App.js 파일이 처음로로드 된 경우 연결이 존재하지 않을 수 있습니다. 그런 다음 데이터베이스에서 모든 메모를 수신하기 위해 찾기 메소드를 적용합니다. 이 방법은 약속을 반환합니다. 그래서 우리는 그것을 구문 분석하기를 기다립니다. 마지막으로, 응답 객체 (RES)의 보내기 메소드를 사용하여 문자열을 클라이언트로 다시 보냅니다. 이 문자열에는 브라우저가 실제 HTML 요소로 렌더링하는 HTML 구문이 포함되어 있습니다. 데이터베이스의 각 노트에 대해 텍스트가 포함 된 단락 요소를 추가합니다. &lt;ul&gt; &lt;you&gt; 이것은이 매우 겸손한 예제를 멋진 사용자 인터페이스로 변환 할 수있는 곳입니다. 고객에게 보내야 할 내용을 자유롭게 선택할 수 있습니다. 예를 들어, 이것은 완전히 번들 된 클라이언트 React 응용 프로그램 일 수 있습니다. 예를 들어 핸들 바와 같은 Express View 엔진을 사용하여 서버 측 렌더링 방법을 선택할 수도 있습니다. 그것이 무엇인지에 따라 응용 프로그램에 더 많은 경로를 추가하고 JS 패키지와 같은 정적 파일을 제공해야 할 수도 있습니다. &lt;li&gt; &lt;p&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;ost ostost&gt; app.post ( &quot;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&quot;, ...)는 http post 요청을 처리합니다. 사용자가 메모를 저장하면 호출됩니다. 다시, 우리는 먼저 노트 모델이 필요합니다. 요청 객체 (Req)의 본문 속성을 통해 요청 페이로드에 액세스 할 수 있습니다. 사용자가 제출 한 텍스트가 포함되어 있습니다. 우리는이를 사용하여 새 문서를 만들고 Mongoose가 제공 한 저장 방법을 사용하여 저장합니다. 다시, 우리는이 비동기 조작이 완료되기를 기다린 다음 사용자에게 알리고 페이지를 새로 고칠 수있는 가능성을 제공합니다. &lt;p&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712li&gt; &lt;our&gt; 응용 프로그램이 실제로 HTTP 요청을 듣기 시작하려면 Express에서 제공 한 청취 방법을 호출해야합니다.프로젝트 루트 디렉토리에 추가 된 별도의 파일 Dev.js 로이 작업을 수행합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;&lt;&gt; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c84600e5be47fd83712 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : const app = require ( &quot;.https : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712app&quot;); const {connect} = require ( &quot;.https : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose&quot;); 연결하다(); const port = 4000; app.listen (port, () = &amp; gt; { console.log (포트 $ {port}`)에서 듣는 앱 청취; }); &lt;&lt;&gt; &lt;pre class=&quot;brush:php;toolbar:false&quot;&gt; &lt;call&gt; 여기서, 우리는 mongoose.js 파일에서 Connect 함수를 호출합니다. 데이터베이스 연결이 시작됩니다. 마지막으로, 우리는 포트 4000에서 HTTP 요청을 듣기 시작합니다. &lt;code class=&quot;language-javascript&quot;&gt; &lt;o&gt; 두 개의 개별 명령으로 Mongo Docker 이미지를 시작하는 것은 약간 번거 롭습니다. 그래서 우리는 package.json 파일에 스크립트를 추가합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code&gt; &lt;&lt;&gt; &quot;스크립트&quot;: { &quot;시작&quot;: &quot;동시에 'npm : mongodb' 'npm : dev'&quot;, &quot;dev&quot;: &quot;mongodb_url = mongodb : https : //www.php.cn/link/29a9f8c8c8c8460e5e2be4edde557fd83712https : //www.php.cn/link/29a9f8c8460e5e2be457fd8fd8fd8fd8fd8f OST : 27017 Node Dev.js &quot;, &quot;Mongodb&quot;: &quot;Docker Run -P 27017 : 27017 Mongo&quot; } &lt;&lt;&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre&gt; MongoDB는 MongoDB 인스턴스를 시작하고 컨테이너 포트 27017을 로컬 기계의 포트 27017에 매핑합니다. Dev는 응용 프로그램을 시작하고 Mongoose.js 파일에로드 된 환경 변수 mongodb_url을 데이터베이스와 통신합니다. 시작 스크립트는 두 스크립트를 병렬로 실행합니다. 이제 응용 프로그램을 시작하려면 터미널에서 NPM 시작을 실행하면됩니다. &lt;p&gt; &lt;access&gt; 이제 http : https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8460e5e5e2bbe : 4000 응용 프로그램을로드하려면.&lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;p&gt; &lt;&lt;&gt; &lt;img src=&quot;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&quot; alt=&quot;A Guide to Serverless Deployment with Express and MongoDB &quot; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&gt; &lt;🎜 🎜&gt; &lt;&lt;&gt; 배포 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;🎜 🎜&gt; &lt;to&gt; 이제 응용 프로그램을 배포 할 시간입니다. 우리는 AWS, MongoDB Atlas 및 AWS API 게이트웨이에서 Lambda 기능을 사용할 것입니다. &lt;h2&gt; &lt; &gt; 1. 람다 함수 란 무엇입니까? 우리는 왜 그것들을 사용합니까? &lt;strong&gt; &lt;lambda function은 서버를 유지하지 않고 HTTP 요청에 응답하여 코드를 실행하는 방법입니다. 그들은 주문형으로 만 실행되므로 아무도 서비스를 요청하지 않으면 서버 시간을 지불 할 필요가 없습니다. 반면에 많은 사람들이 귀하의 서비스에 전화하면 AWS가 자동으로 확장되고 더 많은 Lambda 인스턴스를 시작합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712strong&gt; 이름에서 알 수 있듯이 Lambda 함수는 원하는 것을 채울 수있는 기능입니다. 예외는 하나뿐입니다. 코드는 더 이상 실행되지 않으면 람다 인스턴스가 닫히기 때문에 코드가 상태가되어서는 안됩니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h2&gt; &lt;the&gt; 우리는 Lambda 함수로 전체 응용 프로그램을 랩핑하여 AWS Lambda에 배포합니다. AWS Lambda는 한 달에 백만 개의 무료 요청과 400,000GB 초의 매우 관대하고 무제한 무료 계층을 가지고 있습니다! 따라서 서비스를 안전하게 실험하고 비용을 지불하지 않고 여러 Lambda 기능을 배포 할 수 있습니다. 더 이상 사용하지 않으려면이 기능을 삭제하십시오. &lt;p&gt; &lt; &gt; 2 &lt;in&gt; 이제 AWS 관리 콘솔에 로그인하여 AWS Lambda로 이동하십시오. &lt;fun&gt; functions &lt;🎜 🎜&gt; 섹션에서 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt;를 클릭하여 함수를 만들려면 &lt;🎜 🎜&gt;를 만듭니다. 그 전에는 서비스를 배치하기 위해 지역을 지정하는 것이 중요합니다. 데스크탑 컴퓨터에서 관리 콘솔의 오른쪽 상단에있는 영역을 선택할 수 있습니다. &lt;h3&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3&gt; &lt;🎜 🎜&gt;를 선택하여 처음부터 &lt;🎜 🎜&gt;를 만들고 함수의 이름을 지정하십시오.나는 그것을 &lt;em&gt; express-lambda-example &lt;🎜 🎜&gt;라고 명명했습니다. &lt;🎜 🎜&gt; 런타임 &lt;🎜 🎜&gt;에서 &lt;🎜 🎜&gt; node.js 12x &lt;🎜 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;를 선택하고 함수를 만듭니다. 아래 그림과 같이 창이 표시됩니다 &lt;em&gt; &lt;&lt;&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt; &lt;d&gt; 우리의 람다 함수에는 이미 일부 테스트 코드가 포함되어 있습니다. 나중에 덮어 쓰기 때문에 이것을 무시할 수 있습니다. 페이지를 아래로 스크롤하면 &lt;em&gt; 환경 변수 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;라는 섹션이 표시됩니다. 이전 지역 개발 스크립트에서 Mongodb_url이라는 변수를 정의 했습니까? Lambda 인스턴스가 데이터베이스와 통신 할 수 있도록 동일한 변수를 여기에 만들어야합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;have&gt; 그러나 우리는 아직 데이터베이스를 실행하지 않았습니다. 우리는이 목적으로 로컬 기계를 사용하고 싶지 않습니다. 그렇기 때문에 우리는 Mongodb Atlas Free Tier 클러스터를 만들 것입니다. &lt;p&gt; &lt; &gt; 3. Mongodb Atlas Cloud Service &lt;🎜 🎜 &lt;img src=&quot;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&quot; alt=&quot;A Guide to Serverless Deployment with Express and MongoDB &quot; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&gt;를 설정하십시오 &lt;free&gt; 무료 계층 클러스터를 만들려면 mongodb.com에서 계정을 만듭니다. 등록 과정에서 클러스터 유형을 선택하라는 메시지가 표시됩니다. 무료 공유 클러스터를 선택하십시오 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt;. 다음 단계는 프로젝트의 이름을 지정하는 것입니다. 또한 좋아하는 프로그래밍 언어를 선택할 수 있습니다. &lt;p&gt; 다음 단계에서는 클라우드 제공 업체 및 지역을 선택할 수 있습니다. 우리는 이미 node.js 응용 프로그램에 AWS를 사용하므로 그것을 선택하고 가능한 경우 AWS에서 선택한 동일한 영역을 선택하는 것이 좋습니다. 다음 섹션에서는 사용할 레벨을 결정할 수 있습니다. &lt;m m0 샌드 박스 &lt;🎜 🎜&gt; 레벨을 선택하십시오. MongoDB는 생산 환경 에서이 계층을 사용하지는 않지만 초보자에게는 필요한 모든 것을 제공합니다.&lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;p&gt; &lt;&lt;&gt; &lt;img src=&quot;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&quot; alt=&quot;A Guide to Serverless Deployment with Express and MongoDB &quot; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&gt; &lt;later&gt; 몇 분 후, 클러스터가 사용할 준비가됩니다. 지금 누락 된 것은 액세스입니다. 메뉴에서 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt;를 클릭하여 &lt;🎜 🎜&gt;에 액세스하고 새 사용자를 만듭니다. 인증 메소드는 &lt;🎜 🎜&gt; 비밀번호 &lt;p&gt;입니다. 사용자가 읽고 쓰기 권한을 부여합니다. 이 작업을 마친 후에는 데이터베이스에 액세스 할 수있는 IP 주소를 화이트리스트에 올리십시오. 네트워크 액세스 섹션 에서이 작업을 수행 할 수 있습니다. &lt;em&gt; &lt;we&gt; 불행히도, 우리는 클러스터에 연결하려는 각 람다 인스턴스의 IP를 알지 못합니다. 따라서 우리는 0.0.0.0 https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd837120을 추가하여 모든 IP 주소를 화이트리스트에 올릴 것입니다. 민감한 데이터가 있고 높은 수준의 데이터 보호를 보장하려는 경우 권장하지 않습니다. 당사의 클러스터는 이제 데이터베이스 사용자에게 제공하는 자격 증명에 의해서만 보호됩니다. 피어 연결을 설정하는 것은이 문제에 대한 가능한 솔루션이 될 것입니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt; &lt;back&gt; 이제 클러스터로 돌아가 &lt;🎜 🎜&gt; 연결 &lt;🎜 🎜&gt;를 클릭하십시오. 팝업 모드 창에서 &lt;em&gt;를 클릭하여 응용 프로그램을 연결하십시오 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;. 그런 다음 node.js 버전 2.2.12 이상을 선택하고 연결 문자열을 복사하십시오. AWS의 Lambda Functions 콘솔로 돌아가서 Mongodb_url이라는 새로운 환경 변수를 만들고 연결 문자열을 붙여 넣으십시오. 문자열의 자리 표시자를 데이터베이스 사용자의 자격 증명 및 데이터베이스 이름으로 바꾸십시오. &lt;em&gt; &lt; &gt; 4. AWS Lambda &lt;🎜 🎜 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;와 함께 사용할 수 있도록 응용 프로그램을 준비하십시오 &lt;aw&gt; AWS Lambda가 응용 프로그램을 호출하려면 Dev.js 파일에서 수행 한 것과 유사한 새 항목 스크립트를 설정해야합니다.우리는 다음과 같은 index.js를 지명 할 것입니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;&lt;&gt; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712https://www.php.cn/link/29a9f8c8460e5e4edde557fd83712 index const awsserverlessexpress = require ( &quot;aws-serverless-express&quot;); const {connect} = require ( &quot;.https : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712mongoose&quot;); 연결 = NULL; module.exports.handler = async (이벤트, 컨텍스트) = &amp; gt; context.callbackwaitsforemptyeventLoop = false; if (connection === null) connection = await connect (); const app = require ( &quot;.https : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712app&quot;); const server = awsserverlessexpress.createserver (app); awsserverlessexpress.proxy (서버, 이벤트, 컨텍스트, &quot;약속&quot;). 약속; }; &lt;pre class=&quot;brush:php;toolbar:false&quot;&gt; &lt;code class=&quot;language-javascript&quot;&gt; &lt;use&gt; 여기에서는 AWS-Serverless-Express 라이브러리를 사용합니다. 기본적으로 Dev.js의 청취 방법과 동일한 기능을 갖습니다. 응용 프로그램이 Lambda 환경에서 클라이언트 요청을 처리 할 수 ​​있습니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code&gt; &lt;is&gt; 이제 Lambda.js 파일에 대해 주목해야 할 중요한 사항이 있습니다. Lambda 함수가 호출 될 때마다 처리기 기능이 실행됩니다. 핸들러 기능 외부의 모든 것은 Lambda 컨테이너가 시작될 때 한 번 시작하여 여러 Lambda 호출 사이에 지속될 수 있습니다. 그렇기 때문에 MongoDB 연결 객체를 파일의 전역 범위에 저장합니다. 핸들러 기능이 실행될 때마다 연결이 시작되었는지 확인합니다. 그렇다면 함수는 매번 데이터베이스에 다시 연결하는 대신 재사용합니다. 많은 실행 시간을 절약하기 때문에 이것은 매우 중요합니다. 여러 통화로 연결 되려면 Context.CallbackwaitforemptyEventLoop을 False로 설정해야합니다. 이 기능에 대한 자세한 내용은 여기를 참조하십시오. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre&gt; &lt; de&gt; 5 다음 단계는 github 동작을 사용하여 ci https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712cd 워크 플로를 만드는 것입니다. 즉, 코드 변경을 GitHub 저장소로 푸시 할 때마다 파이프 라인을 트리거하려고합니다. 파이프 라인은 AWS에서 Lambda 기능을 자동으로 처리합니다. Jakob Lind는 그의 기사에서 &quot;AWS Lambda를 설정하는 방법 및 GitHub 액션으로 자동 배치&quot;에서이 프로세스를 잘 설명합니다. 주요 부분을 간단히 요약하겠습니다. &lt;p&gt; &lt;ith&gt; github가 워크 플로를 설정하고 시작하기 위해, 우리는 경로에 있습니다. e2be4edde557fd83712workflows 파일의 .yml.它包含以下 yaml l : &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;🎜🎜&gt; &lt;&lt;&gt;# https://www.php.cn/link/29a9f8460e5e2be4edde557fd83712.githubhttps://www.p.cn/link/29a9f8c8460e5e2bbe www.php.cn/link/29a9f8c8c8c8460e5e2be4edde557fd83712deploy.yml 이름 : Lambda에 배치 에: 푸시: 지점 : - 기본 작업 : 배포 : 이름 : 배포 전략: 행렬: 노드-버전 : [12.x] 런 온 : 우분투-라이트 단계 : - 사용 : ActionShttps : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712checkout@v1 - 이름 : 설정 Nodejs 용도 : ActionShttps : //www.php.cn/link/29A9F8C8460E5E2BE4EDDE557FD83712SETUP-NODE@V1 와 함께: 노드-버전 : $ {{matrix.node-Version}} - 이름 : NPM 설치 실행 : NPM CI- 생산 - 이름 : Zip 용도 : montudorhttps : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712action-zip@v0.1.1 와 함께: ARGS : ZIP -QQ -R .https : //www.php.cn/link/29a9f8460e5e2be4edde557fd83712app.zip .https : //www.php.cn/link/29a9f8460e5e5e2be5e2be4edde557fd8fd8fd - 이름 : 람다로 밀어 넣습니다 용도 : Appleboyhttps : //www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712lambda-action@master 와 함께: aws_access_key_id : $ {{recrets.aws_access_key}}} AWS_SECRET_ACCESS_KEY : $ {{recrets.aws_secret_key}}} AWS_REGION : EU-Central-1 # 请替换为您的 aws 区域 function_name : Express-Lambda-example zip_file : app.zip &lt;🎜 &lt;pre class=&quot;brush:php;toolbar:false&quot;&gt; &lt;🎜 🎜&gt; &lt;ith ith&gt; 该文件告诉 github 조치 在每次推送到存储库的主分支时执行一个名为 배포 的作业。对我来说, 将其仅限于主分支非常有用。因此, 您可以安全地推送到您的开发分支, 而不会将不需要的代码部署。 &lt;code class=&quot;language-yaml&quot;&gt; &lt;作业只是安装所有必要的库&gt; 배포 🎜, 将整个项目压缩 将整个项目压缩, 并将其推送到 aws lambda 。请注意, yaml 文件需要通过环境变量访问 aws 访问密钥 : aws_access_key 和 aws_secret_key 。您可以通过在 aws 上的身份和访问管理控制台中创建新用户来生成这些密钥。获得密钥后, 您需要将它们另存为 github 项目设置下的环境变量 项目设置下的环境变量, 位于 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712code&gt; 비밀 &lt;🎜 &lt;下。 &lt;🎜 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712pre&gt; &lt;s s&gt; aws lambda 上准备好 上准备好, 您需要提交您的代码并将其推送到 github 存储库的主分支。 &lt;p&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; 6. 使用 AWS API 게이트웨이 使我们的应用程序可访问 &lt;p&gt; &lt;, ,&gt; 现在我们的应用程序已准备好用于实时环境。但是 现在我们的应用程序已准备好用于实时环境。但是, 我们没有通过 웹 访问它的方法。这就是我们接下来使用 aws api 게이트웨이 所做的。API 게이트웨이에는 무료 계층이 있습니다. 그러나이 패키지는 12 개월로 제한됩니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;s&gt; AWS 콘솔에서 API 게이트웨이 서비스로 이동하여 &lt;p&gt; API &lt;🎜 &lt;em&gt;를 클릭하고 &lt;🎜 🎜&gt; rest api &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;를 선택하고 이름을 지정하여 저장하십시오. &lt;em&gt; &lt;ap&gt; API 게이트웨이를 Lambda 함수에 연결하려면 HTTP 요청을 Lambda 기능에 전달하는 새로운 메소드를 만듭니다. 따라서 &lt;&lt;&lt;&gt; 조작 &lt;🎜 🎜&gt; 드롭 다운 메뉴에서 &lt;🎜 🎜&gt; 메소드 생성 &lt;🎜 🎜&gt;를 선택하고 &lt;🎜 &lt;🎜 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;를 선택하십시오. 다음 이미지에 표시된대로 화면이 표시됩니다. Lambda Agent Integration &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; 확인란을 선택하는지 확인하십시오. 람다 함수의 이름을 입력하고 저장하십시오. &lt;p&gt; &lt;em&gt; &lt;&lt;&gt; &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt; &lt;have&gt; 다음은 Lambda 프록시 통합을 설정해야합니다. 이는 기본적으로 모든 클라이언트 요청이 우리의 Lambda 기능과 같이 리디렉션되어야 함을 의미합니다. 따라서 &lt;🎜 action &lt;🎜 🎜&gt; 드롭 다운 메뉴에서 새로운 리소스를 만듭니다. 팝업 모드 창에서 프록시 리소스 &lt;em&gt; 확인란 (아래 참조)으로 &lt;🎜 🎜&gt; 구성을 선택하고 저장하십시오.&lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;p&gt; &lt;&lt;&gt; &lt;img src=&quot;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&quot; alt=&quot;A Guide to Serverless Deployment with Express and MongoDB &quot; https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712&gt; &lt;another&gt; 이것은 Lambda 함수에 연결 해야하는 다른 방법을 생성합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;least&gt; 마지막으로 &lt;🎜 🎜&gt; action &lt;🎜 🎜&gt; 드롭 다운 메뉴에서 API &lt;p&gt; 배포를 선택하여 API를 배포합니다. 팝업 창에서 &lt;🎜 🎜&gt; [new Stage] &lt;🎜 🎜&gt;를 선택하고 스테이지의 이름을 지정하여 배포하십시오. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;.&gt; 그게 다야. 생성 된 단계의 &lt;🎜 🎜&gt; 스테이지 편집기 &lt;🎜 &lt;p&gt;에있는 &lt;🎜 call url &lt;em&gt;를 클릭하여 응용 프로그램에 액세스 할 수 있습니다. &lt;&lt;&gt; Call URL &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt;는 API 게이트웨이에 맵핑 된 공용 URL입니다. 물론 사용자 정의 도메인을 사용하여이를 수행 할 수도 있습니다. &lt;em&gt; &lt;🎜 🎜&gt; &lt;&lt;&gt; 결론 &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt; &lt;em&gt; &lt;that&gt; 데이터베이스가 필요한보다 복잡한 응용 프로그램을 배포하는 것이 반드시 어렵다는 것을 알 수 있습니다. 물론, 내가 보여주는 워크 플로는 완벽하지 않으며 장기적으로 큰 응용 프로그램에 필요한 많은 기능이 부족합니다. 그러나 저에게는 트래픽이 낮고 중간 정도 인 웹 사이트에서는 간단하고 실용적이며 경제적 인 것으로 입증되었습니다. 매우 유사한 기술 스택을 사용하여 JSChallenger를 구축하고 배포했습니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712em&gt; &lt;any&gt; 아이디어 나 의견이 있으면 Twitter를 통해 @Kueckelheim에 문의하십시오. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; Express 및 MongoDB &lt;🎜 🎜&gt; &lt;p&gt;를 사용한 서버리스 배포의 &lt;🎜 🎜&gt; &lt;&lt;&gt; FAQS (FAQS) &lt;benefits&gt; 서버리스 배포에 Express 및 MongoDB를 사용하면 어떤 이점이 있습니까? &lt;em&gt; Express 및 MongoDB를 통한 서버리스 배포에는 몇 가지 장점이 있습니다.먼저 개발자는 서버 관리에 대해 걱정하지 않고 코드 작성에 집중할 수 있습니다. 서버리스 아키텍처가 서버를 자동으로 관리하기 때문입니다. 둘째, 소비하는 계산 시간에 대해서만 비용을 지불하면 비용 효율적입니다. 코드가 실행되지 않을 때는 요금이 부과되지 않습니다. 셋째, 서버리스 배포는 워크로드 크기에 따라 자동으로 스케일링됩니다. 이는 수동 개입없이 수요가 증가함에 따라 응용 프로그램이 더 많은 요청을 처리 할 수 ​​있음을 의미합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;ug&gt; 서버리스 애플리케이션을 디버그하는 방법은 무엇입니까? &lt;h3&gt; &lt;less&gt; 배수 서버리스 애플리케이션은 분산 특성으로 인해 약간 까다로울 수 있습니다. 그러나 응용 프로그램을 디버깅하는 데 사용할 수있는 몇 가지 방법이 있습니다. 가장 일반적인 방법 중 하나는 로깅을 사용하는 것입니다. 응용 프로그램 실행에 대한 중요한 정보를 기록한 다음 이러한 로그를 분석하여 문제를 찾을 수 있습니다. 또 다른 방법은 AWS X-ray와 같은 분산 추적 도구를 사용하는 것입니다. 이 도구는 응용 프로그램 성능과 병목 현상이 발생하는 위치에 대한 통찰력을 제공합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3&gt; &lt;express&gt; 서버리스 애플리케이션에서 Express Middleware를 사용할 수 있습니까? &lt;p&gt; &lt;can&gt; 예, 서버리스 애플리케이션에서 Express Middleware를 사용할 수 있습니다. Express Middleware 함수는 애플리케이션 요청-응답주기에서 요청 객체 (REQ), 응답 개체 (RES) 및 다음 미들웨어 함수에 액세스 할 수있는 기능입니다. 이러한 기능은 모든 코드를 실행하고 요청 및 응답 개체를 변경하고 요청-응답주기를 종료하고 다음 미들웨어 함수를 호출 할 수 있습니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;my&gt; 내 서버리스 애플리케이션을 보호하는 방법은 무엇입니까? &lt;h3&gt; &lt;less&gt; 서버리스 애플리케이션 보호에는 여러 단계가 필요합니다. 먼저, 최소한의 권한의 원칙을 따라야합니다. 즉, 기능에 필요한 권한 만 부여해야합니다. 둘째, 휴식과 전송 중에 민감한 데이터를 암호화해야합니다. 셋째, 알려진 취약점을 피하기 위해 의존성을 정기적으로 업데이트해야합니다. 마지막으로, 비정상적인 활동을 위해 응용 프로그램을 모니터링해야합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3&gt; &lt;my&gt; 서버리스 애플리케이션을 로컬로 테스트하는 방법은 무엇입니까? &lt;p&gt; &lt;tools&gt; 서버리스 오프라인과 같은 도구를 사용하여 서버리스 애플리케이션을 로컬로 테스트 할 수 있습니다. 이 도구는 온 프레미스 머신에서 AWS Lambda 및 API 게이트웨이를 모방하여 배포하지 않고 서버리스 응용 프로그램을 테스트 할 수 있습니다. Jest와 같은 단위 테스트 프레임 워크를 사용하여 개별 기능을 테스트 할 수도 있습니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;my&gt; 내 서버리스 애플리케이션을 모니터링하는 방법은 무엇입니까? &lt;h3&gt; &lt;tools&gt; 다양한 도구를 사용하여 서버리스 애플리케이션을 모니터링 할 수 있습니다. AWS는 CloudWatch 및 X-ray와 같은 일부 모니터링 도구를 제공합니다.CloudWatch는 애플리케이션을 모니터링하고 시스템 전체의 성능 변경을 이해하고 응답하며 리소스 활용을 최적화하며 운영 상태에 대한 통합 관점을 얻기위한 데이터 및 실행 가능한 통찰력을 제공합니다. X-ray는 개발자가 마이크로 서비스 아키텍처를 사용하여 구축 된 것과 같은 생산 분산 애플리케이션을 분석하고 디버깅 할 수 있도록 도와줍니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;with&gt; 서버리스 애플리케이션에서 오류를 처리하는 방법은 무엇입니까? &lt;h3&gt; &lt;the&gt; 코드에서 Try-Catch 블록을 사용하여 서버리스 애플리케이션의 오류를 처리 할 수 ​​있습니다. 미들웨어 기능을 사용하여 오류를 처리 할 수도 있습니다. 또한 AWS Lambda는 실패한 Lambda 기능을 두 번 자동으로 재 시도하며 다른 재 시도를 구성 할 수 있습니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3&gt; &lt;ize&gt; 서버리스 애플리케이션의 성능을 최적화하는 방법은 무엇입니까? &lt;p&gt; &lt;performance&gt; 서버리스 애플리케이션의 성능을 최적화하려면 여러 단계가 필요합니다. 먼저 기능에 적합한 메모리 크기를 선택해야합니다. 둘째, 차가운 부팅 시간을 줄이려면 배치 패키지 크기를 최소화해야합니다. 셋째, 연결 풀을 사용하여 데이터베이스 연결을 재사용해야합니다. 마지막으로 캐시를 사용하여 데이터베이스 호출 수를 줄여야합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt; &lt;m&gt; 서버리스 애플리케이션과 함께 MongoDB Atlas를 사용할 수 있습니까? &lt;h3&gt; 예, 서버리스 애플리케이션과 함께 MongoDB Atlas를 사용할 수 있습니다. MongoDB Atlas는 MongoDB를 구축 한 사람이 개발 한 완전히 관리되는 클라우드 데이터베이스입니다. 원하는 클라우드에 MongoDB를 배포, 운영 및 스케일링하는 쉬운 방법을 제공합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712h3&gt; &lt;igr&gt; 기존 Express 응용 프로그램을 서버리스 아키텍처로 마이그레이션하는 방법은 무엇입니까? &lt;p&gt; &lt;an&gt; 기존 익스프레스 응용 프로그램을 서버리스 아키텍처로 마이그레이션하는 데 여러 단계가 포함됩니다. 먼저 응용 프로그램을 더 작은 무국적 기능으로 리팩터링해야합니다. 둘째, 서버리스 아키텍처와 호환되지 않는 미들웨어를 교체해야합니다. 마지막으로, 서버리스 환경에서 올바르게 작동하는지 확인하기 위해 응용 프로그램을 철저히 테스트해야합니다. &lt;https://www.php.cn/link/29a9f8c8460e5e2be4edde557fd83712p&gt;&lt;/style&gt;&lt;/code&gt;</pre></https:></https:>
  • 위 내용은 Express 및 MongoDB를 사용한 서버리스 배포에 대한 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.