无服务器 - 服务


您不想为部署的每个函数创建单独的 serverless.yml 文件。那会非常乏味。幸运的是,无服务器可以在同一个 serverless.yml 文件中部署多个功能。所有这些功能都属于一个称为“服务”的组。服务名称通常是 serverless.yml 文件中定义的第一个内容。

service: my-first-service

provider:
   name: aws
   runtime: python3.6
   stage: prod
   region: us-east-2
   profile: yash-sanghvi
  
   functions:
      func1:
      handler: handler1.func1

   func2:
      handler: handler2.func2

服务中的所有函数在部署时在 AWS Lambda 控制台上采用以下名称格式 - service_name-stage_name-function_name。因此,上面示例中的两个函数在部署时将采用名称 - my-first-service-prod-func1my-first-service-prod-func2。stage 参数可帮助您区分代码开发的不同阶段。

因此,如果您的功能处于开发阶段,您可以使用 stage dev;如果是测试阶段,可以使用阶段测试;如果是在生产中,您可以使用 stage prod。这样,您可以确保对开发阶段所做的更改不会影响生产代码。艺名并不是一成不变的。开发、测试、生产只是示例。

您可以选择任何艺名。请注意,如果您有 API Gateway 触发的 lambda(将在后面的章节中详细介绍),那么每个阶段的端点都会不同。

此外,如果您转到 AWS Lambda 控制台中较少使用的“应用程序”部分,您将能够看到该阶段的整个服务。

AWS Lambda

如果您单击您选择的服务和阶段组合,您将能够在一处查看该服务使用的所有资源 - Lambda 函数、API 网关、事件规则、日志组、S3 存储桶,一切。

你好世界Python开发

更有趣的是,您可以转到“监控”选项卡,查看整个服务的性能 -> 调用次数、平均持续时间、错误计数等。您可以了解哪个功能对服务的贡献最大你的账单。当您的服务中有多个功能时,监控每个功能的性能就变得非常困难。服务级别监控选项卡在这里有很大帮助。

部署

最后,“部署”选项卡可帮助您查看服务的所有过去部署以及部署的状态。

监控