OpenFaaS DigitalOcean 試驗(yàn)

去年八月单起,我寫(xiě)了一篇文章,展示了如何在5分鐘內(nèi)使用Kubernetes或Docker Swarm在DigitalOcean上設(shè)置OpenFaaS尝盼。本周,DigitalOcean與OpenFaaS社區(qū)之間的合作達(dá)到了頂峰辱揭,這使得OpenFaaS一鍵式Droplet圖像得以普遍提供。這使得通過(guò)DigitalOcean以最具成本效益的方式部署OpenFaaS變得更加容易病附。

現(xiàn)在问窃,我們有三種方法有據(jù)可查,可以在DigitalOcean的基礎(chǔ)架構(gòu)上為您的團(tuán)隊(duì)設(shè)置OpenFaaS:

在這篇文章中完沪,我們將指導(dǎo)您使用一鍵式Droplet映像創(chuàng)建第一個(gè)OpenFaaS函數(shù)域庇,該映像使用單節(jié)點(diǎn)Docker Swarm集群。

先決條件

  • DigitalOcean帳戶(hù)
  • OpenFaaS CLI

現(xiàn)在覆积,OpenFaaS CLI(或faas-cli)是OpenFaaS開(kāi)發(fā)人員經(jīng)驗(yàn)的核心部分听皿,我們的用戶(hù)在本地及其CI作業(yè)中運(yùn)行它。我們將使用它來(lái)創(chuàng)建功能并將其部署到您的一鍵式Droplet上宽档。OpenFaaS文檔提供了獲取CLI所需的所有詳細(xì)信息尉姨。

創(chuàng)建Droplet

訪(fǎng)問(wèn)您的Droplet

準(zhǔn)備好Droplet后,它將顯示在DigitalOcean資源窗格內(nèi)的Droplet列表中吗冤。

Droplet準(zhǔn)備就緒

復(fù)制IP地址又厉,然后使用您喜歡的終端登錄到Droplet,使用 root@<IP address>

注意:請(qǐng)確保您已為正在使用的客戶(hù)端提供了適當(dāng)?shù)乃借€椎瘟。

登錄后覆致,請(qǐng)按照說(shuō)明進(jìn)行操作;在撰寫(xiě)本文時(shí)肺蔚,只需按Enter煌妈。

將為您執(zhí)行許多配置操作,結(jié)果將是運(yùn)行中的基于Swarm的OpenFaaS實(shí)例婆排。記下憑據(jù)-特別是最后一行將設(shè)置憑據(jù)的行faas-cli-在部署功能時(shí)將需要此憑據(jù)∩現(xiàn)在,我們可以關(guān)閉與Droplet的連接段只。

在本地計(jì)算機(jī)上設(shè)置OPENFAAS_URL:
$ export OPENFAAS_URL=http://159.65.92.17:8080
要保留此設(shè)置,請(qǐng)將其添加到您的.bashrc文件或中.bash_profile鉴扫。

運(yùn)行CLI登錄命令:
echo -n 6acf4e5dc4997530666fece7be3e15e5a1b7ba9572163aa2beb8ff9449ee1911 | faas-cli login --username=admin --password-stdin
當(dāng)我們將功能部署到Droplet時(shí)赞枕,這將節(jié)省我們的時(shí)間和精力。

創(chuàng)建一個(gè)功能

我們將創(chuàng)建一個(gè)簡(jiǎn)單的Python函數(shù)坪创,該函數(shù)在調(diào)用時(shí)將回顯字符串炕婶。

  • 為我們的功能創(chuàng)建一個(gè)工作區(qū):
$ mkdir -p ~/openfaas/functions/ && cd ~/openfaas/functions/

  • hello-digitalocean使用CLI 創(chuàng)建一個(gè)稱(chēng)為的函數(shù):

rgee0前綴替換為您自己的Docker Hub帳戶(hù)名,以啟用后續(xù)push操作莱预。

$ faas-cli new --lang=python3 --prefix=rgee0 hello-digitalocean

faas-cli new --lang=python3 --prefix=rgee0 hello-digitalocean
2019/02/02 11:42:08 No templates found in current directory.
2019/02/02 11:42:08 Attempting to expand templates from https://github.com/openfaas/templates.git
2019/02/02 11:42:10 Fetched 15 template(s) : [csharp csharp-armhf dockerfile go go-armhf java8 node node-arm64 node-armhf php7 python python-armhf python3 python3-armhf ruby] from https://github.com/openfaas/templates.git
Folder: hello-digitalocean created.
  ___                   _____           ____
 / _ \ _ __   ___ _ __ |  ___|_ _  __ _/ ___|
| | | | '_ \ / _ \ '_ \| |_ / _` |/ _` \___ \
| |_| | |_) |  __/ | | |  _| (_| | (_| |___) |
 \___/| .__/ \___|_| |_|_|  \__,_|\__,_|____/
      |_|

Function created in folder: hello-digitalocean
Stack file written: hello-digitalocean.yml

  • 重命名hello-digitalocean.ymlstack.yml
$ mv hello-digitalocean.yml stack.yml

  • 編輯hello-digitalocean/handler.py以添加我們函數(shù)的代碼:
def handle(req):
    """handle a request to the function
    Args:
        req (str): request body
    """
    return 'Hello from OpenFaaS on DigitalOcean!'

  • 保存處理程序并運(yùn)行faas-cli up以構(gòu)建柠掂,推送和部署:
$ faas-cli up

[0] > Building hello-digitalocean.
Clearing temporary build folder: ./build/hello-digitalocean/
Preparing ./hello-digitalocean/ ./build/hello-digitalocean/function
Building: rgee0/hello-digitalocean:latest with python template. Please wait..
Sending build context to Docker daemon  8.192kB
Step 1/25 : FROM python:2.7-alpine

...

Successfully built 724a2e96754b
Successfully tagged rgee0/hello-digitalocean:latest
Image: rgee0/hello-digitalocean:latest built.
[0] < Building hello-digitalocean done.
[0] worker done.

[0] > Pushing hello-digitalocean [rgee0/hello-digitalocean:latest].
The push refers to repository [docker.io/rgee0/hello-digitalocean]

...

latest: digest: sha256:03ec049a59bd784a152ca3df8fcdffd97ab0dcb4392e0c2811ee5dcb4180ca2d size: 3655
[0] < Pushing hello-digitalocean [rgee0/hello-digitalocean:latest] done.
[0] worker done.

Deploying: hello-digitalocean.

Deployed. 202 Accepted.
URL: http://159.65.92.17:8080/function/hello-digitalocean

正如我們先前將CLI登錄到我們的Droplet并設(shè)置一樣OPENFAAS_URL,CLI將無(wú)縫地以Droplet為目標(biāo)依沮。為了推送到Docker Hub涯贞,您還需要在此登錄到您的帳戶(hù)枪狂。

  • 使用以下命令調(diào)用功能faas-cli
$ echo '' | faas-cli invoke hello-digitalocean
Hello from OpenFaaS on DigitalOcean!

通過(guò)訪(fǎng)問(wèn)訪(fǎng)問(wèn)UI以查看已部署的功能http://159.65.92.17:8080/ui/。您需要以前的憑據(jù)才能訪(fǎng)問(wèn)該網(wǎng)站宋渔。

查看用戶(hù)界面

從這里您還可以調(diào)用函數(shù)-只需單擊invoke按鈕州疾;您會(huì)注意到調(diào)用計(jì)數(shù)隨您的增加而增加。您還可以通過(guò)OpenFaaS商店從一組現(xiàn)成的功能中進(jìn)行部署-單擊Deploy New Function以查看可用功能皇拣。

包起來(lái)

我們已經(jīng)開(kāi)始使用DigitalOcean的OpenFaaS一鍵式應(yīng)用程序創(chuàng)建函數(shù)的第一步严蓖。內(nèi)置配置創(chuàng)建了一個(gè)基于Docker Swarm的可公開(kāi)訪(fǎng)問(wèn)的實(shí)例,默認(rèn)情況下啟用了基本身份驗(yàn)證氧急。我們已經(jīng)研究了如何通過(guò)設(shè)置來(lái)使用OpenFaaS CLI構(gòu)建功能并將其部署到遠(yuǎn)程實(shí)例OPENFAAS_URL颗胡。

這是快速入門(mén)OpenFaaS的良好起點(diǎn)。實(shí)例啟動(dòng)并運(yùn)行后吩坝,您可以理想地通過(guò)OpenFaaS Workshop進(jìn)行工作毒姨。如果您已完全按照本文進(jìn)行操作,那么您應(yīng)該可以直接跳至實(shí)驗(yàn)2-記住將所有研討會(huì)參考資料替換127.0.0.1為Droplet的IP地址钾恢。

https://www.openfaas.com/blog/digitalocean-one-click/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末手素,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘩蚪,更是在濱河造成了極大的恐慌泉懦,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疹瘦,死亡現(xiàn)場(chǎng)離奇詭異崩哩,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)言沐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)邓嘹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人险胰,你說(shuō)我怎么就攤上這事汹押。” “怎么了起便?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵棚贾,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我榆综,道長(zhǎng)妙痹,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任鼻疮,我火速辦了婚禮怯伊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘判沟。我一直安慰自己耿芹,他們只是感情好崭篡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著猩系,像睡著了一般媚送。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寇甸,一...
    開(kāi)封第一講書(shū)人閱讀 51,754評(píng)論 1 307
  • 那天塘偎,我揣著相機(jī)與錄音,去河邊找鬼拿霉。 笑死吟秩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绽淘。 我是一名探鬼主播涵防,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼沪铭!你這毒婦竟也來(lái)了壮池?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤杀怠,失蹤者是張志新(化名)和其女友劉穎椰憋,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體赔退,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡橙依,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硕旗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片窗骑。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖漆枚,靈堂內(nèi)的尸體忽然破棺而出创译,到底是詐尸還是另有隱情,我是刑警寧澤墙基,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布昔榴,位于F島的核電站,受9級(jí)特大地震影響碘橘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吱肌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一痘拆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧氮墨,春花似錦纺蛆、人聲如沸吐葵。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)温峭。三九已至,卻和暖如春字支,著一層夾襖步出監(jiān)牢的瞬間凤藏,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工堕伪, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留揖庄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓欠雌,卻偏偏與公主長(zhǎng)得像蹄梢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子富俄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355