Google Cloud功能入门

无服务器架构目前风靡一时。 应用程序设计和开发的无服务器模型使开发人员可以轻松快速地构建和维护微服务。 在标准Node.js运行时环境中的Google Cloud Platform(GCP)上执行此操作具有以下好处:

  • 弹性可扩展性,无需担心基础架构
  • 服务执行以响应事件
  • 安全稳定

而且您只需要为函数执行的时间付费,直到最后100微秒。 凉!

在GCP上有一个基本的Hello World教程,但是希望这篇文章能使您起步并运行,而不仅仅是基本知识。

本示例尝试执行以下操作:

  • 验证您的Twitter帐户
  • 阅读您的时间表
  • 选择最新的“ x”条推文
  • 发回推文作为回应。

在我们开始编写代码之前,您可能需要执行一些其他任务。

  1. 创建一个Twitter APP 。 可以在“管理您的应用”页面上完成。 有关创建应用程序的详细说明,请参阅此文章。 记下您的OAuth设置。
  2. 登录到您的GCP控制台或注册免费试用版。 然后创建一个新项目,并在该项目上启用Cloud Functions API。

在项目上启用云功能

下载源代码

您可以从GitHub下载本教程将使用的源代码。 该存储库包含3个文件:

  • index.js –包含我们函数的文件
  • package.json –提供我们的函数执行所需的任何依赖关系
  • config.js –保留我们的Twitter凭证

确保编辑config.js文件。 您需要在此文件中提供OAuth令牌和机密。 我们的函数将使用config.js来获取登录到Twitter帐户所需的身份验证凭据。

创建您的第一个功能

我个人认为,使用Cloud Console是初次用户熟悉GCP产品和服务的最佳方法。 如果您不是Google Cloud的新手,则可以使用Cloud Shell执行从控制台执行的所有任务。

单击创建函数以调出可用选项:

创建你的第一个功能

选择一个功能名称,地区(当前我的帐户似乎仅支持US-Central1),分配的内存和超时。 超时表示该功能尚未完成处理应终止的时间。

您还需要选择一个触发器 。 在我们的示例中,我们将使用HTTP trigger 。 记下显示的URL ,该URL可用于触发函数执行。

对于源代码,选择ZIP upload 。 现在,您应该为下载的3个文件创建一个zip存档。 例如,您可以在Mac上使用以下命令创建此文件:

$ zip function-1 index.js config.js package.json

这将在文件系统上创建文件function-1.zip 。 在控制台上,单击“ 浏览”并上传文件。

在“ 阶段存储桶”下,选择一个现有的云存储存储桶,或创建一个新的存储桶。 这是我们的源代码将写入的位置。

最后,确保要执行的功能名为start 。 这很重要,因为这是我们在index.js 导出的函数的名称。

您必须在名为index.jsfunction.js的文件中创建function.js ,以便GCP可以正确识别,解析和导出该function.js

单击保存以保存功能。 现在将部署您的功能。

等待绿色勾号出现在函数名称旁边。

可以在index.js文件中查看函数源代码。 您会注意到,我们以标准的node.js方式包括了所有依赖项(在本例中为twit )。 Google云端平台提供了node.js运行时环境来执行该功能,并根据需要下载并安装依赖项。

触发功能

我们将探讨触发该函数的几种不同方式。

第一种方法是简单地从浏览器选项卡中获取触发器URL

函数的HTTP触发URL

第二种方法是通过Google Cloud SDK请求触发URL。

  1. 下载并安装SDK。
  2. 使用以下命令验证您的Google帐户:
    $ gcloud auth login
  3. 使用以下命令设置项目:
    $ gcloud config set project YOUR-PROJECT-NAME
  4. 使用以下命令执行功能:
    $ gcloud beta functions call function-1
  5. 这次尝试执行,为"count"提供一个值,该值会从您的时间轴返回最新的"count"推文。
    $ gcloud beta functions call function-1 --data '{"count": 20}'

恭喜你! 您刚刚将第一个功能部署到了Google Cloud Platform!