遷移 Express 到函數計算

barby-dalbosco-bzC3Emeb3-0-unsplash.jpg

首先介紹下在本文出現的幾個比較重要的概念:html

函數計算(Function Compute): 函數計算是一個事件驅動的服務,經過函數計算,用戶無需管理服務器等運行狀況,只需編寫代碼並上傳。函數計算準備計算資源,並以彈性伸縮的方式運行用戶代碼,而用戶只需根據實際代碼運行所消耗的資源進行付費。函數計算更多信息 參考。 Fun: Fun 是一個用於支持 Serverless 應用部署的工具,能幫助您便捷地管理函數計算、API 網關、日誌服務等資源。它經過一個資源配置文件(template.yml),協助您進行開發、構建、部署操做。Fun 的更多文檔 參考git

備註: 本文介紹的技巧須要 Fun 版本大於等於 3.6.3。 github

2

背景信息

Express 是一個基於 Node.js 平臺的極簡、靈活的 Web 應用開發框架,它提供一系列強大的特徵,幫助你建立各類 Web 和移動設備應用。express

步驟一:準備環境

本文介紹的方法,不須要安裝 Docker,僅僅安裝 Fun 便可,最簡單的方式就是直接下載可執行的二進制文件。npm

  1. 安裝 Fun 到本機。詳情請參見安裝文檔
  2. 執行 fun --version 檢查安裝是否成功。

步驟二:遷移應用

  1. 執行如下命令建立一個 Express 項目,詳情請參見 Express application generator,或者您能夠按照官方描述的步驟建立簡單的 Hello world example,如有 Express 項目則跳過該步驟。bootstrap

    npx express-generator
    複製代碼
  2. 執行如下命令進入剛建立的示例項目中或您的項目中。windows

    cd <project-name>
    複製代碼
  3. 執行如下命令依賴安裝。bash

    npm install
    複製代碼
  4. 執行如下命令運行項目。服務器

  • MacOS、Linux 平臺運行項目:
    DEBUG=myapp:* npm start
    複製代碼
  • windows 平臺運行項目:
    set DEBUG=myapp:* & npm start
    複製代碼
  1. 執行命令 fun deploy -y 將項目部署至函數計算。 Fun 會自動進入部署流程。app

    $fun deploy -y
    current folder is not a fun project.
    Generating /Users/txd123/Desktop/Express/bootstrap...
    Generating template.yml...
    Generate Fun project successfully!
    ========= Fun will use 'fun deploy' to deploy your application to Function Compute! =========
    using region: cn-qingdao
    using accountId: ***********3743
    using accessKeyId: ***********Ptgk
    using timeout: 60
    
    Collecting your services information, in order to caculate devlopment changes...
    
    Resources Changes(Beta version! Only FC resources changes will be displayed):
    ...  ...  ...  ...
       			trigger httpTrigger deploy success
       	function Express deploy success
    service Express deploy success
    
    Detect 'DomainName:Auto' of custom domain 'Domain'
    Request a new temporary domain ...
    The assigned temporary domain is 15795585-XXX.test.functioncompute.com,expired at 2020-04-12 10:46:25, limited by 1000 per day.
    Waiting for custom domain Domain to be deployed...
    custom domain Domain deploy success
    複製代碼

    部署完成後,您能夠根據部署成功的日誌看到,函數計算爲您生成了臨時域名 ,您經過這個臨時域名直接訪問剛剛部署的應用。

    **注意:**臨時域名僅僅用做演示以及開發,具備時效性,如需用做生產,請綁定已經在阿里雲備案的域名,詳情請參見綁定自定義域名

總結

本文介紹如何將 Express 應用部署到函數計算。與傳統的部署方法相比,您可將傳統的 Express 應用一鍵部署至遠端直接用於生產。跳過購買機器等步驟的同時,還擁有了彈性伸縮、按量付費和免運維等特性。

阿里巴巴雲原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術圈。」

相關文章
相關標籤/搜索