原文鏈接:http://www.appcoda.com/parse-server-installation/
作者:Gregg Mojica at AppCoda
原文日期:2016-04-16
譯者:Crystal Sun
繼續(xù)我之前的這篇文章 migrating a parse database to a self-host MongoDB instance长捧,在這次的春季輔導(dǎo)教程中,我們看一下如何將 parse 服務(wù)器遷移到 Heroku 和 Amazon Web Service朱嘴。
對(duì)于還不了解 Parse 之死的人來(lái)說(shuō),這意味著服務(wù)器(處理數(shù)據(jù),與數(shù)據(jù)庫(kù)互動(dòng)大审,發(fā)送接收請(qǐng)求等待)需要遷移到其他地方了余掖。Parse,后端即服務(wù)(BaaS)替废,為開(kāi)發(fā)者提供服務(wù)器和數(shù)據(jù)庫(kù)的服務(wù)。然而泊柬,隨著 Parse 即將在一月份關(guān)閉椎镣,官方建議,在2017年1月28日徹底停止服務(wù)之前兽赁,請(qǐng)遷移 Parse 應(yīng)用状答。Parse 官方建議你先遷移數(shù)據(jù)庫(kù),然后在遷移服務(wù)器刀崖。本節(jié)教程會(huì)假定你一看完成了數(shù)據(jù)庫(kù)的遷移剪况,正如我們?cè)谏掀坛?a target="_blank" rel="nofollow">第一部分中所做的。
幸運(yùn)的是蒲跨,parse-server(GitHub 項(xiàng)目译断,由 Facebook 開(kāi)源,偉大的 Parse 統(tǒng)治者)可以部署在大部分的云服務(wù)上或悲。在本節(jié)教程里孙咪,我們會(huì)講述如何將 parse-serve 部署到 Heroku,Salesforce 旗下知名的云服務(wù)供應(yīng)商巡语。在本篇文章的最后部分翎蹈,我們會(huì)演示如何部署到 Amazon Web Services(AWS)上,世界上很多知名的 App 都在使用 AWS 的服務(wù)男公。
準(zhǔn)備開(kāi)始
首先到 Heroku.com 網(wǎng)站注冊(cè)一個(gè)帳號(hào)荤堪。為了演示 demo,我選擇了免費(fèi)方案枢赔。你根據(jù)自己的需要澄阳,選擇合適的方案,比如付費(fèi)方案踏拜。你可以在這里看到所有的付費(fèi)方案碎赢。
部署到 heroku 有兩種方法可供選擇。第一種是點(diǎn)擊 Deploy to Heroku 按鈕速梗,然后出現(xiàn)一步接一步的提示流程肮塞,因?yàn)?Parse 已經(jīng)在 Heroku 的服務(wù)器上設(shè)置過(guò) parse-server 了襟齿,對(duì)非 Javascript 程序員來(lái)說(shuō),這可能是最簡(jiǎn)單的方法了枕赵。如果你熟悉 git 和命令行猜欺,請(qǐng)隨意使用克隆應(yīng)用然后用命令行完成。話(huà)雖如此拷窜,但是你不能一輩子都避免使用命令行开皿。不管你選擇那種方式,都會(huì)涉及到命令行的装黑。
Option 1: 使用 Heroku 按鈕
點(diǎn)擊上面的按鈕,創(chuàng)建一個(gè)新的 heroku 應(yīng)用弓熏,你會(huì)看到類(lèi)似下方圖片的界面:
設(shè)置向?qū)С霈F(xiàn)恋谭,讓你輸入應(yīng)用名稱(chēng)(全部小寫(xiě)不允許有空格)。
接下來(lái)挽鞠,選擇 runtime 選項(xiàng)疚颊。如果你住在美國(guó),選擇 United States(美國(guó))信认,其他地方材义,選擇 Europe(歐洲)。runtime 選項(xiàng)嫁赏,就是你希望你的應(yīng)用部署在哪個(gè)地方其掂。考慮到性能和速度潦蝇,最好將應(yīng)用服務(wù)器部署在離你較近的地方款熬。
接下來(lái)更新配置,填寫(xiě) Parse 賬戶(hù)里對(duì)應(yīng)的密鑰(或者生成新的密鑰攘乒,如果你不是遷移現(xiàn)存應(yīng)用的話(huà)贤牛,這點(diǎn)以后再說(shuō))。安裝路徑為 /parse
则酝。
當(dāng)你填完所有的字段后殉簸,點(diǎn)擊 deploy 按鈕,暫時(shí)先空著 MongoLab(也就做 mLab)開(kāi)發(fā)沽讹。
可能需要你輸入你的信用卡般卑。
Option 2: 克隆 Heroku 應(yīng)用
parse-server 是開(kāi)源項(xiàng)目,目前可以在 GitHub 上下載爽雄。如果你選擇的是命令行椭微,而不是點(diǎn)擊 heroku 按鈕,那么繼續(xù)下方的操作盲链。開(kāi)始前蝇率,先打開(kāi)終端(Terminal)迟杂,使用下方的命令來(lái)克隆應(yīng)用:
cd ~
cd Desktop
git clone https://github.com/ParsePlatform/parse-server-example.git
git add .
git init
git commit -m "Initial Commit"
現(xiàn)在,你已經(jīng)成功地將 parse-server 克隆到桌面上了本慕。
修改數(shù)據(jù)庫(kù)的 URI
不管你在上面選擇了哪個(gè)方式排拷,現(xiàn)在你的應(yīng)用在一定程度上已經(jīng)設(shè)置過(guò)了。如果你使用是 Option 1锅尘,你需要在你電腦里復(fù)制一份本地代碼副本监氢,首先用下列命令行(也會(huì)將 App 克隆到電腦桌面)。
注意:下方的選項(xiàng)適用于選擇了 Option 1 的人
$ heroku login
$ cd ~/Desktop
$ heroku git:clone -a your-app-name
$ cd your-app-name
$ git add .
$ git commit -am "make it better"
$ git push heroku master
登錄后藤违,需要輸入認(rèn)證(之后會(huì)詳細(xì)說(shuō)明浪腐,不過(guò)現(xiàn)在只需要輸入 Heroku 帳號(hào)的郵箱和密碼,密碼不會(huì)出現(xiàn)在屏幕上)顿乒。
現(xiàn)在议街,打開(kāi)你最喜歡的文本編輯器(我比較喜歡 Sublime Text),打開(kāi)新克隆的庫(kù)(repository)(對(duì)于新手來(lái)說(shuō)璧榄,你可以直接將整個(gè)文件夾拖到 sublime text 圖標(biāo)上特漩,然后 sulime text 會(huì)自動(dòng)文件,或者使用頂部菜單的 File -> Open)骨杂。
現(xiàn)在涂身,我們需要打開(kāi) index.js
文件,修改 API 變量搓蚪。注意第 14-23 行蛤售。
從第 14 行開(kāi)始,我們需要修改 databaseURL
參數(shù)妒潭。替換路徑悍抑,使用在本教程第一部分生成的路徑,例如杜耙,我會(huì)使用下面的 url搜骡,不過(guò)你必須用你自己的 url 來(lái)替換。
mongodb://admin:mypassword@ds017678.mlab.com:17678/appcoda-test
接下來(lái)佑女,我們需要填寫(xiě) appId
和 masterKey
參數(shù)记靡。如果你是在遷移一個(gè)已經(jīng)存在的應(yīng)用,到 parse.com 上找到對(duì)應(yīng)的數(shù)據(jù)团驱。如果這是你第一次使用 parse-server 創(chuàng)建一個(gè)新工程摸吠,你可以生成隨機(jī)的字幕數(shù)字組成的密鑰。
在 parse.com 網(wǎng)站上登錄你的 Parse 帳號(hào)嚎花,找到 Settings(設(shè)置)寸痢,在這里,選擇 Security & Keys紊选。復(fù)制粘貼你的 Application ID(這個(gè)應(yīng)用的啼止,不要復(fù)制成其他應(yīng)用的)和 Master Key道逗。下面的圖片可供你參考(我的密鑰出于安全考慮遮擋住了)。
注意:如果你選的是 Option 1献烦,你已經(jīng)設(shè)置了你的密鑰滓窍,你可以直接跳過(guò)這一步。即使如此巩那,我還是建議你看一下吏夯,這樣你能對(duì) parse-server 的工作機(jī)制有更深入的理解。
在 index.js
文件里替換上你剛剛復(fù)制來(lái)的新密鑰即横,你也可以添加 clientKey
作為一個(gè)參數(shù)噪生,從 Parse 中獲取。
最后东囚,記住保存你的操作跺嗽,快捷鍵 Command+S(Mac電腦上)。
如果你不是遷移應(yīng)用舔庶,那么使用隨機(jī)生成器(例如 random.org 或其他類(lèi)似的東西)來(lái)生成字母數(shù)字密鑰抛蚁。
接下來(lái)陈醒,部署 Heroku惕橙。
將 Parse 服務(wù)器部署到 Heroku
首先在電腦上安裝 Heroku 工具條,從鏈接中可以找到官方安裝指南钉跷。安裝完成后弥鹦,在終端(Terminal)中輸入下列命令行:
heroku login
接下來(lái)輸入登錄 Heroku 信息,注意當(dāng)你輸入密碼的時(shí)候爷辙,密碼不會(huì)出現(xiàn)在屏幕上彬坏。
如果你選擇的是 Option 1,就沒(méi)有必要用下面的命令行創(chuàng)建一個(gè) Heroku 應(yīng)用了膝晾。如果你選擇的是 Option 2栓始,確保輸入下列命令行來(lái)創(chuàng)建一個(gè) Heroku 應(yīng)用。
heroku create
Heroku 會(huì)給你創(chuàng)建一個(gè)應(yīng)用血当,現(xiàn)在提交修改內(nèi)容幻赚,代碼如下:
git add .
git init
git commit -m "Updated api config"
git push heroku master
現(xiàn)在,你已經(jīng)成功部署了 Heroku臊旭!如果你遇到任何錯(cuò)誤落恼,請(qǐng)?jiān)谙路降脑u(píng)論欄中留意,我將盡力幫助你离熏。
設(shè)置 Heroku 的環(huán)境變量
接下來(lái)佳谦,我們需要設(shè)置 Heroku 的環(huán)境變量,回到終端(Terminal)滋戳,輸入下列命令行(使用你的 MongoDB 實(shí)例中的URI钻蔑,我們之前談?wù)撨^(guò))啥刻。
heroku config:set DATABASE_URI=mongodb://admin:mypassword@ds017678.mlab.com:17678/appcoda-test
回到 Heroku 網(wǎng)頁(yè)上,點(diǎn)擊你的應(yīng)用矢棚,在 Settings tab 頁(yè)下郑什,點(diǎn)擊 reveal config variables
。
現(xiàn)在你應(yīng)該可以看到 Heroku 的 config Variables 里有了 database URI蒲肋。
恭喜你蘑拯!你的 parse-server 已經(jīng)成功地部署到了 Heroku。唯一的問(wèn)題是:還沒(méi)有連接到你的 iOS 應(yīng)用上兜粘。
定位 Parse 服務(wù)器的 URL
為了能夠?qū)⒛愕膽?yīng)用連接到新的 parse-server申窘,首先要從 Heroku 應(yīng)用設(shè)置里定位托管地址(hosting url)。
回到 index.js
孔轴,找到第 27 行剃法,注意找 moutPath
變量是 /parse
。
這個(gè)變量表示 parse 在 Heroku 服務(wù)器上的地址路鹰。目前來(lái)說(shuō)贷洲,地址是 /parse
。所以晋柱,可以在 yourapp.herokuapp.com/parse(改成你自己的域名) 中訪(fǎng)問(wèn) parse-server。
設(shè)置 iOS 應(yīng)用
現(xiàn)在钦椭,我們已經(jīng)正確地配置和部署了服務(wù)器碑诉,是時(shí)候來(lái)設(shè)置 iOS 應(yīng)用設(shè)置選項(xiàng)了,讓 iOS 應(yīng)用連接到新的 parse 服務(wù)器上德挣。
在 Xcode 里格嗅,打開(kāi)應(yīng)用祸泪,選擇 appdelegate.swift
文件,刪除你以前的 app key 和 client key(然后寫(xiě)上你自己的密鑰和服務(wù)器的 url)懂扼。
把下面這段代碼刪掉:
Parse.setApplicationId(“xxxxxxxxxxxxxxxxxxxxxxxx”, clientKey: “xxxxxxxxxxxxxxxxxxxxxxxx”)
替換成:
let config = ParseClientConfiguration(block: {
(ParseMutableClientConfiguration) -> Void in
ParseMutableClientConfiguration.applicationId = "xxxxxxxxxxxxxxxxxxxxxxxx";
ParseMutableClientConfiguration.clientKey = "xxxxxxxxxxxxxxxxxxxxxxxx";
ParseMutableClientConfiguration.server = "xxxxxxxxxxxxxxxxxxxxxxxx.com/parse";
});
Parse.initializeWithConfiguration(config);
完成操作后阀湿,點(diǎn)擊 Run 按鈕陷嘴,測(cè)試一下應(yīng)用。正常情況下應(yīng)用會(huì)和遷移以前一樣運(yùn)行邑退。如果你使用的YY待命劳澄,你可能需要修改一下代碼,來(lái)適應(yīng)新的 parse 服務(wù)器環(huán)境莫矗。我們會(huì)在下一個(gè)教程中涉及這個(gè)話(huà)題作谚。另外庵芭,在下一個(gè)教程里妹懒,我們還會(huì)介紹在服務(wù)器里托管 Parse 的 dashboard。不過(guò)現(xiàn)在而言喳挑,你可以繼續(xù)使用 parse.com 的 dashboard彬伦,知道官方徹底關(guān)閉服務(wù)滔悉,也就是在 2017 年的一月伊诵。
恭喜你!你已經(jīng)成功地在 Heroku 上部署了 parse-server回官。
將 Parse 服務(wù)器部署到 AWS
注意:如果你已經(jīng)將 parse-server 部署到了 Heroku 上曹宴,那么就不需要再部署到 AWS 上了歉提,畢竟你的服務(wù)器只能使用一個(gè)云服務(wù)笛坦。這部分主要是用來(lái)參考的版扩。如果你不想使用 Heroku,想使用 AWS礁芦,你可以繼續(xù)閱讀下面的章節(jié)。然而,我會(huì)假設(shè)你已經(jīng)閱讀過(guò)上面 Heroku 部分的教程內(nèi)容柿扣,如果出現(xiàn)同樣的設(shè)置內(nèi)容肖方,我不會(huì)再次贅述了。
Amazon Web Services(AWS)是全球知名的云服務(wù)提供商未状,為科技界許多知名的大型公司提供云服務(wù)俯画。實(shí)際上,很大大型科技公司都在使用 AWS 的服務(wù)司草,例如蘋(píng)果公司的 iCloud艰垂,Hulu,AirBnb埋虹,Lyft材泄,Adobe,Slack (這些都是國(guó)外知名的科技公司)等等吨岭,這些只是使用 AWS 云存儲(chǔ)服務(wù)的眾多公司中一小部分拉宗。
那么,為什么我先介紹 Heroku 呢辣辫?不同于 AWS 的是姐浮,Heroku 更容易設(shè)置蛋逾。對(duì)于大部分的設(shè)置亏钩,你可以直接進(jìn)行無(wú)需輸入賬單信息。AWS 則不一樣栅哀,設(shè)置方法比較復(fù)雜躬厌。為了演示如何部署到 AWS 上屹篓,我們將使用另外一個(gè)部署按鈕和設(shè)置向?qū)В瑏?lái)讓所有的工作簡(jiǎn)單流暢。
再次強(qiáng)調(diào)一下,如果你已經(jīng)將應(yīng)用部署到了 Heroku系任,而且對(duì) Heroku 的服務(wù)比較滿(mǎn)意恳蹲,你可以直接跳過(guò)這部分了。然而俩滥,如果你對(duì)如何部署到 AWS 上感興趣嘉蕾,那么讓我們開(kāi)始吧!
第一件事举农,到 AWS 上注冊(cè)一個(gè) AWS 帳號(hào)荆针,需要提供你的付款信息喉悴,這樣才能使用免費(fèi)方案棱貌。
完成后,點(diǎn)擊下方的按鈕箕肃,創(chuàng)建一個(gè)新的 AWS 應(yīng)用婚脱,AWS 提供一組云服務(wù)工具,每個(gè)工具都有自己的獨(dú)特的功能,在本節(jié)教程中障贸,我們使用 Elastic Beanstalk(和 Elastic Cloud Compute Engine 或簡(jiǎn)稱(chēng) EC2 緊密相關(guān))。
什么是 Elastic Beanstalk ?
根據(jù) Amazon 上的簡(jiǎn)介哆致,Elastic Beanstalk 是一個(gè)易于使用的删掀,用于部署和擴(kuò)展網(wǎng)頁(yè)應(yīng)用和服務(wù),適用的語(yǔ)言有 Java袁波、.NET瓦阐、PHP、Node.js篷牌、Python睡蟋、Ruby、Go枷颊、Docker戳杀,例如 Apache, Nginx, Passenger,和 IIS。
好炫的語(yǔ)言是吧夭苗?或許吧豺瘤,總而言之,我們將使用這個(gè)服務(wù)來(lái)設(shè)置和運(yùn)行我們的 parse 服務(wù)器听诸。如果你想了解更多有關(guān) Elastic Beanstalk 的信息坐求,請(qǐng)參考官方網(wǎng)頁(yè)。
點(diǎn)擊按鈕后晌梨,會(huì)出現(xiàn)一個(gè)增加應(yīng)用名稱(chēng)的界面桥嗤,如下圖。
下一步仔蝌,確保你的設(shè)置如下圖泛领,然后繼續(xù)。
在接下來(lái)的界面里使用正確的密鑰上傳 parse 設(shè)置敛惊,parse 裝在 /parse 下渊鞋。
現(xiàn)在,點(diǎn)擊 upload and deploy 按鈕瞧挤,完成最后一步锡宋。不出意外應(yīng)用已經(jīng)正確設(shè)置在 AWS 上了。
當(dāng)年設(shè)置 iOS 應(yīng)用時(shí)特恬,確保你已經(jīng)定位了 AWS 的 URL执俩,可以在 elastic beanstalk 里找到(如下圖)。
恭喜你癌刽!你成功將 parse 服務(wù)器部署到了 AWS 上役首!剩下需要做的事情就是用適當(dāng)?shù)拿荑€和新的服務(wù)器 url 來(lái)設(shè)置 iOS 應(yīng)用(后綴 /parse)尝丐。
結(jié)束
在本節(jié)教程中,我們深入了解了部署 parse 服務(wù)器的過(guò)程衡奥,估計(jì)現(xiàn)在你對(duì)部署過(guò)程已經(jīng)掌握的比較牢固了爹袁。
然而,我們還留下了一些小細(xì)節(jié)沒(méi)有處理(感覺(jué)這句話(huà)翻譯的不對(duì))矮固。如果你使用的是云代碼呢簸,你不得不修改代碼,來(lái)保證運(yùn)行正常乏屯。另外根时,你可能還想要一個(gè) Parse dashboard 的替代品。幸運(yùn)的是辰晕,Parse 團(tuán)隊(duì)已經(jīng)將 dashboard 開(kāi)源了蛤迎,并提供了分步指南,供你更新云代碼含友。在之后即將到來(lái)的教程中替裆,我們會(huì)詳細(xì)討論這些內(nèi)容。不過(guò)現(xiàn)在窘问,你還是應(yīng)用集中將應(yīng)用部署到 AWS 或 Heroku 上辆童!
你覺(jué)得本教程怎么樣?請(qǐng)盡情地留下評(píng)論惠赫,分享你的想法把鉴。
本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán)儿咱。