
- Serverless 教程
- Serverless - 首页
- Serverless - 简介
- Serverless - 安装
- Serverless - 部署函数
- Serverless - 区域、内存大小、超时时间
- Serverless - 服务
- Serverless - 定时 Lambda 函数
- Serverless - API Gateway 触发的 Lambda 函数
- Serverless - 包含/排除
- Serverless - 插件
- Serverless - 打包依赖项
- Serverless - 层创建
- Serverless - 使用 DynamoDB 的 REST API
- Serverless - Telegram 回声机器人
- Serverless 有用资源
- Serverless - 快速指南
- Serverless - 有用资源
- Serverless - 讨论
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-func1 和 my-first-service-prod-func2。stage 参数可帮助您区分代码开发的不同阶段。
因此,如果您的函数处于开发阶段,您可以使用阶段dev;如果它处于测试阶段,您可以使用阶段test;如果它处于生产阶段,您可以使用阶段prod。这样,您可以确保对 dev 阶段所做的更改不会影响生产代码。阶段名称并非一成不变。dev、test、prod 仅为示例。
您可以根据需要选择任何阶段名称。请注意,如果您有 API Gateway 触发的 Lambda 函数(将在后面的章节中详细介绍),则每个阶段的端点将有所不同。
此外,如果您转到 AWS Lambda 控制台不太常用的“应用程序”部分,您将能够看到带有阶段的整个服务。

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

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

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