五分钟云计算Lambda函数

212 阅读4分钟

五分钟的云Lambda函数

构建一个无服务器函数很容易。AWS将他们的无服务器函数称为Lambdas。让我们在AWS上用Python建立一个无服务器函数。

无服务器计算是非常酷的。

你需要在云中完成一些事情。它可能是存储一个GPS位置。或者根据一些查询参数从数据库中提取一些数据。但建立一个完整的服务器实例将是多余的。你只需要一个API端点来接受查询并吐出结果。

你需要一个无服务器函数

构建一个无服务器函数很容易。让我们在AWS上用Python构建一个无服务器函数。

AWS称其无服务器函数为Lambdas,因此我将在本教程中交替使用这些术语。

AWS账户

首先,你需要一个AWS账户。如果你还没有,先不要开始计时。创建账户可能比创建Lambda更难。

登录到AWS控制台

如果你已经用AWS账户启动并运行,你可以直接进入控制台。

在我的控制台,Lambda出现在靠近顶部的位置,因为我最近使用了它。

然而,如果你需要,你可以点击查看所有服务 来找到它。

它就在顶部附近,在计算之下。

点击Lambda,让我们创建一个服务。

新建Lambda

这将带你到你的Lambdas列表。

下面是我的Lambda的样子。

我有一个来自Alexa技能的旧函数。如果你以前没有创建过Lambda,你会看到一个空列表。

点击 "创建函数"按钮。

现在,终于到了定义一个函数的时候了。

这里有你的选择:

  • 选择从头开始创作。
  • 给你的函数起个名字。
  • 从运行时间下拉菜单中选择Python 3.9

这将给我们一个单一的Python函数。当网络客户端调用我们的Lambda时,AWS将调用它。

然而,我们还需要设置一个东西,使该函数可以从标准的网络客户端调用。

点击高级设置

勾选启用函数URL的方框**。**这将为你的函数提供一个网络地址。

接下来,为授权类型选择NONE

正如警告所说,这不是一个安全的配置,你不应该把它用在访问安全数据的函数上,或者作为攻击其他服务的载体。因为这只是一个演示应用程序,所以现在还可以。

点击 "创建函数",我们将查看我们的创建,并对它进行试运行。

这是你的函数信息页面应该是这样的。

试运行

在右侧,你可以看到你的函数的公共URL。点击它。

这就从浏览器向你的函数发送了一个GET请求。

从技术上讲,我们可以在这里停止计时。你已经创建了一个无服务器函数。但让我们再进一步,让它处理一个更复杂的请求。

邮递员

接下来我将使用Postman来完成这个部分。如果你还没有账户,就去创建吧。我们在这里要做的一切都可以用免费登录。

让我们把Postman指向新函数。

创建一个新的请求。将你的函数URL粘贴在URL部分,然后点击发送

Postman在底部显示结果。所以,我们已经用Postman做了和浏览器一样的请求。

现在让我们来找点乐子。

将JSON数据发布到Lambda函数中

如果我们想让我们的函数做一些有趣的事情,我们需要向它发送一些数据。

将你的请求类型切换为POST,并给你的请求一个主体。

现在,如果我们发送这个,什么都不会改变。我们需要做一些代码的修改。

下面是代码:

import json 
def lambda_handler(event, context):        request = event['body']    request_obj = json.loads(request)        return {        'statusCode': 200,        'headers': { 'Content-Type': 'application/json' },        'body': "{}, {} {}!".format(request_obj['Greeting'], request_obj['Title'], request_obj['Name'])    }

当你从一个函数URL调用Lambda时,请求数据会作为body字段包含在事件对象中。由于它是一个原始字符串,我们需要把它从事件中拉出来,用json.load转换为一个对象。

然后我们就可以访问这些字段并使用它们来构建一个新的字符串。

把这段代码粘贴进去,然后进行部署

现在,发送新的请求。

成功了!你建立了一个Lambda。

所以,你可以看到,在AWS中,五分钟内构建无服务器函数是很容易的。

在接下来的教程中,我们将看到它们还能做什么。