Serverless - 服务



您不会希望为部署的每个函数创建单独的 serverless.yml 文件。那将非常繁琐。幸运的是,serverless 提供了在同一个 serverless.yml 文件中部署多个函数的功能。所有这些函数都属于一个名为“service”的单个组。服务名称通常是 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 参数可帮助您区分代码开发的不同阶段。

因此,如果您的函数处于开发阶段,您可以使用阶段dev;如果它处于测试阶段,您可以使用阶段test;如果它处于生产阶段,您可以使用阶段prod。这样,您可以确保对 dev 阶段所做的更改不会影响生产代码。阶段名称并非一成不变。dev、test、prod 仅为示例。

您可以根据需要选择任何阶段名称。请注意,如果您有 API Gateway 触发的 Lambda 函数(将在后面的章节中详细介绍),则每个阶段的端点将有所不同。

此外,如果您转到 AWS Lambda 控制台不太常用的“应用程序”部分,您将能够看到带有阶段的整个服务。

AWS Lambda

如果您单击您选择的组合服务和阶段,您将能够在一个地方看到服务使用到的所有资源 - Lambda 函数、API Gateway、事件规则、日志组、S3 存储桶,所有内容。

Hello World Python Dev

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

Deployments

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

Monitoring
广告