OpenFaaS DigitalOcean 试验

去年八月,我写了一篇文章,展示了如何在5分钟内使用Kubernetes或Docker Swarm在DigitalOcean上设置OpenFaaS。本周,DigitalOcean与OpenFaaS社区之间的合作达到了顶峰,这使得OpenFaaS一键式Droplet图像得以普遍提供。这使得通过DigitalOcean以最具成本效益的方式部署OpenFaaS变得更加容易。

现在,我们有三种方法有据可查,可以在DigitalOcean的基础架构上为您的团队设置OpenFaaS:

在这篇文章中,我们将指导您使用一键式Droplet映像创建第一个OpenFaaS函数,该映像使用单节点Docker Swarm集群。

先决条件

  • DigitalOcean帐户
  • OpenFaaS CLI

现在,OpenFaaS CLI(或faas-cli)是OpenFaaS开发人员经验的核心部分,我们的用户在本地及其CI作业中运行它。我们将使用它来创建功能并将其部署到您的一键式Droplet上。OpenFaaS文档提供了获取CLI所需的所有详细信息。

创建Droplet

访问您的Droplet

准备好Droplet后,它将显示在DigitalOcean资源窗格内的Droplet列表中。

Droplet准备就绪

复制IP地址,然后使用您喜欢的终端登录到Droplet,使用 root@<IP address>

注意:请确保您已为正在使用的客户端提供了适当的私钥。

登录后,请按照说明进行操作;在撰写本文时,只需按Enter。

将为您执行许多配置操作,结果将是运行中的基于Swarm的OpenFaaS实例。记下凭据-特别是最后一行将设置凭据的行faas-cli-在部署功能时将需要此凭据。现在,我们可以关闭与Droplet的连接。

在本地计算机上设置OPENFAAS_URL:
$ export OPENFAAS_URL=http://159.65.92.17:8080
要保留此设置,请将其添加到您的.bashrc文件或中.bash_profile。

运行CLI登录命令:
echo -n 6acf4e5dc4997530666fece7be3e15e5a1b7ba9572163aa2beb8ff9449ee1911 | faas-cli login --username=admin --password-stdin
当我们将功能部署到Droplet时,这将节省我们的时间和精力。

创建一个功能

我们将创建一个简单的Python函数,该函数在调用时将回显字符串。

  • 为我们的功能创建一个工作区:
$ mkdir -p ~/openfaas/functions/ && cd ~/openfaas/functions/

  • hello-digitalocean使用CLI 创建一个称为的函数:

rgee0前缀替换为您自己的Docker Hub帐户名,以启用后续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以添加我们函数的代码:
def handle(req):
    """handle a request to the function
    Args:
        req (str): request body
    """
    return 'Hello from OpenFaaS on DigitalOcean!'

  • 保存处理程序并运行faas-cli up以构建,推送和部署:
$ 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并设置一样OPENFAAS_URL,CLI将无缝地以Droplet为目标。为了推送到Docker Hub,您还需要在此登录到您的帐户。

  • 使用以下命令调用功能faas-cli
$ echo '' | faas-cli invoke hello-digitalocean
Hello from OpenFaaS on DigitalOcean!

通过访问访问UI以查看已部署的功能http://159.65.92.17:8080/ui/。您需要以前的凭据才能访问该网站。

查看用户界面

从这里您还可以调用函数-只需单击invoke按钮;您会注意到调用计数随您的增加而增加。您还可以通过OpenFaaS商店从一组现成的功能中进行部署-单击Deploy New Function以查看可用功能。

包起来

我们已经开始使用DigitalOcean的OpenFaaS一键式应用程序创建函数的第一步。内置配置创建了一个基于Docker Swarm的可公开访问的实例,默认情况下启用了基本身份验证。我们已经研究了如何通过设置来使用OpenFaaS CLI构建功能并将其部署到远程实例OPENFAAS_URL

这是快速入门OpenFaaS的良好起点。实例启动并运行后,您可以理想地通过OpenFaaS Workshop进行工作。如果您已完全按照本文进行操作,那么您应该可以直接跳至实验2-记住将所有研讨会参考资料替换127.0.0.1为Droplet的IP地址。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357