前言
隨著雲端服務越來越方便, 相信也越來越多人開始把程式部屬在雲端上了吧, 像是Azure App Service 這種Platform as a Service的雲端服務, 對工程師來說開發時只要把精力專注在寫程式的部分, 而不需要勞心費神地搞伺服器, 拉網路線, 申請SSL的憑證,,,等等. 如果使用得宜, 相信絕對會減少許多開發成本
以下就簡單的介紹如何將NodeJs 的程式部屬到Azure
首先必須在Azure上面建立資源
1. 建立Resource Group
2. 建立App Service Plan
3. 建立Web應用
注意: 如果想將Web應用建立在既有的Resource Group並套用既有的App Service Plan 則可以省略(1)(2)步驟
首先,
登陸Azure並打開Azure Cloud Cli
(1) 建立Resource Group管理底下的虛擬化資源(Optional)
az group create --name NodeResourceGroup --location "West US"
上面的範例是指定一個美西的位置給NodeResourceGroup, 讓它把底下資源的相關資料(Meta Data)放在這位置上(2) 建立App Service Plan(Optional)
根據自己的需求決定自己想要怎樣的VM環境, 然後選擇適合自己的Service Plan,
az appservice plan create --name NodeAppPlan --resource-group NodeResourceGroup --sku S1上面的例子裡, 我選擇S1的方案, 一個月大概1200左右台幣, 如果單純想要練習或測試的話,可以選擇Free 的方案
(3) 建立Web 應用
之後我們會將程式會部屬在這邊
az webapp create --resource-group NodeResourceGroup --plan NodeAppPlan --name MyNodeAppAndy --runtime --% "NODE|6.9"
注意, 在官方文件上你可能會看到指令最後的部分是 --runtime "NODE|6.9",如果是使用PowerShell 執行的會報錯,
'6.9' is not recognized as an internal or external command,
operable program or batch file.
Azure:\
必須加入 --% 告訴azure不要忽略 |
若不知道Azure有支援那些runtime的話, 可以下這個指令
az webapp list-runtimes
基本上做到這邊已經完成一半了, 你可在resource group中看見剛剛新增的Web應用
接下來就是上傳檔案
首先,
(1) 設定部屬帳號與密碼
使用Azure Cli
az webapp deployment user set --user-name andylai --password 12345
使用Azure Portal
點選 Deployment credentials
(2) 設定原始碼上傳方式
Azure提供了許多上傳方式, Dropbox, OneDrive, Local Git Repo, 這邊示範如何使用Local Git Repository來上傳原碼
az webapp deployment source config-local-git --name MyNodeAppAndy --resource-group NodeResourceGroup
我們會得到Repository的URL, 請把它複製起來待會上Code時會用到
{
"url": "https://anddy1234@dialo1234ot.scm.azurewebsites.net/MyNodeAppAndy .git"
}
使用Azure portal點選Deployment options/ Choose Source/ Local Git Repository
以上就是雲端上的設定 ...
以下就是本機端的部分
[本機端]
git remote add azure <deploymentLocalGitUrl-from-create-step>
<deploymentLocalGitUrl-from-create-step> 是我們剛剛複製的 Git Url上傳
git push azure master
總結
基本上學習曲線不高, 整個流程跑下來大概15分鐘左右
大致上, 部屬的流程分兩部分:
1. 建立資源
2. 設定部屬方式(使用git, 雲端+本機)
azure 基本上會用到的指令有
az group
az appservice plan
az webapp
快速建站的指令
az group create --name NodeResourceGroup --location "West US"
az appservice plan create --name NodeAppPlan --resource-group NodeResourceGroup --sku S1
az webapp create --resource-group NodeResourceGroup --plan NodeAppPlan --name MyNodeAppAndy123 --runtime --% "NODE|10.6"
az webapp deployment user set --user-name andylai --password IUS8y87agggggja
az webapp deployment source config-local-git --name MyNodeAppAndy123 --resource-group NodeResourceGroup
az appservice plan create --name NodeAppPlan --resource-group NodeResourceGroup --sku S1
az webapp create --resource-group NodeResourceGroup --plan NodeAppPlan --name MyNodeAppAndy123 --runtime --% "NODE|10.6"
az webapp deployment user set --user-name andylai --password IUS8y87agggggja
az webapp deployment source config-local-git --name MyNodeAppAndy123 --resource-group NodeResourceGroup
ref:
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-rest-api
https://docs.microsoft.com/en-us/azure/app-service/app-service-web-get-started-nodejs
https://docs.microsoft.com/zh-tw/azure/app-service/app-service-deploy-local-git
留言
張貼留言