Serverless教程

Serverless 部署功能

创建新项目

导航到要在其中创建要部署到Serverless的第一个项目的新文件夹。在该文件夹中,运行以下命令-
sls create--template aws-python3
此命令将创建样板代码,用于使用Serverless和 Python 运行时部署 lambda 函数。
部署
请注意,您也可以使用其他运行时。运行 sls create--help 以获取所有模板的列表。
创建样板代码后,您将在文件夹中看到两个文件:handler.py 和 serverless.yml。 handler.py 是包含 lambda 函数代码的文件。 serverless.yml 是告诉 AWS 如何创建 lambda 函数的文件。配置文件或设置文件将成为本教程几章的重点。我们先来看看handler.py文件。
import json
def hello(event, context):
   body = {
      "message": "Go Serverless v1.0! Your function executed successfully!", "input": event
   }
   response = {
      "statusCode": 200, "body": json.dumps(body)
   }
   return response
   # Use this code if you don't use the http event with the LAMBDA-PROXY
   # integration
   """
   return {
      "message": "Go Serverless v1.0! Your function executed successfully!", "event": event
   }
   """
它包含一个函数 hello。这个函数接受两个参数:事件和上下文。这两个都是任何 AWS Lambda 函数的必需参数。每当调用 lambda 函数时,lambda 运行时都会将两个参数传递给函数-事件和上下文。
event 参数包含要处理的 lambda 函数的数据。例如,如果您通过 REST AP 触发您的 lambda 函数I,无论您在路径参数或 API 主体中发送的任何数据,都将发送到事件参数中的 lambda 函数。在后面的章节中会有更多的介绍。需要注意的重要一点是,事件通常是 python dict 类型,但也可以是 strfloat intlistNoneType 类型。
context 对象是在运行时传递给 lambda 函数的另一个参数。它不经常使用。 AWS 官方文档指出, 此对象提供了提供有关调用、函数和运行时环境信息的方法和属性。您可以阅读有关 事件 的更多信息上下文 对象此处.
该功能非常简单。它只是返回一条状态代码为 200 的消息。如果我们不使用带有 LAMBDA-PROXY 设置的 HTTP 事件,则应使用底部的注释。更多关于 API 触发的 lambda 章节的内容。
现在,让我们看看 serverless.yml 文件。这是一个被大量评论的文件。这些评论对于开始使用Serverless的人非常有用。我们鼓励您彻底阅读评论。在接下来的章节中,我们将研究许多与 serverless.yml 相关的概念。让我们在这里略读一下基本概念。
如果您在删除注释后查看 serverless.yml 文件,它会是这样的-
service: aws-serverless
frameworkVersion: '2'
provider:
   name: aws
   runtime: python3.8
   lambdaHashingVersion: 20201221
functions:
   hello:
      handler: handler.hello
服务字段决定了 CloudFormation 堆栈的名称,您的 lambda 函数和所有必需的资源将在其中创建。将服务视为您的项目。执行 AWS Lambda 函数所需的一切都将在该服务中创建。您可以设置您选择的服务名称。
框架版本是指Serverless框架的版本。这是一个可选字段,通常保留以确保与您共享代码的人使用相同的版本号。如果 serverless.yml 中提到的 frameworkVersion 与您机器中安装的 serverless 版本不同,您将在部署过程中收到错误消息。您还可以为 frameworkVersion 指定一个范围,例如 frameworkVersion − >=2.1.0 && <3.0.0。您可以在此处.
下一部分, provider,可以被认为是一组全局设置。我们将在后面的章节中讨论 provider 中涵盖的其他参数。在这里,我们将重点介绍可用的参数。 name 字段确定您的平台环境的名称,在本例中为 aws。运行时是 python3.8,因为我们使用了 python3 模板。 lambdaHashingVersion 是指框架应该使用的哈希算法的名称。
请注意,如果您在上一章的配置凭据步骤中添加了自定义配置文件,则需要在提供中添加配置文件参数。例如,我将我的个人资料名称设置为 yash-sanghvi。因此,我的提供者看起来像-
provider:
   name: aws
   runtime: python3.8
   lambdaHashingVersion: 20201221
   profile: yash-sanghvi
最后,functions 块定义了所有的 lambda 函数。我们这里只有一个函数,在处理程序文件中。函数的名字是你好。函数的路径在handler字段中提到。

部署函数

要部署您需要打开命令提示符的功能,导航到包含 serverless.yml 的文件夹,然后输入以下命令-
sls deploy-v
-v 是一个可选参数,表示详细输出。它可以帮助您更好地了解后台进程。部署您的函数后,您应该能够在 us-east-1 区域(这是默认设置)的 AWS 控制台上看到它。您可以使用"测试"功能从控制台调用它(您可以保留相同的默认事件,因为我们的 lambda 函数无论如何都不使用事件输入)。您还可以使用命令提示符进行测试-
sls invoke--function hello
请注意,如果您的函数与 S3 或 dynamoDB 等其他 AWS 服务接口,则您无法始终在本地测试您的函数。只能在本地测试非常基本的函数。

从现有项目部署功能

如果要将现有项目部署到 AWS,请修改现有函数以仅接收 eventcontext 作为参数。接下来,在文件夹中添加一个 serverless.yml 文件,并在 serverless.yml 中定义您的函数。然后打开命令提示符,导航到该文件夹​​,然后点击 sls deploy-v。这样,您现有的函数也可以部署到 AWS Lambda。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4