AWS Lambda
开发人员指南

(可选):使用 AWS SAM 和 AWS CloudFormation 执行部署;

在上一部分,您使用 AWS Lambda API 通过一个部署程序包 ZIP 文件创建并更新了 Lambda 函数。然而,本机制可能不便用于自动执行函数部署步骤,或者协调事件源和下游资源等其他无服务器应用程序元素之间的部署和更新。

您可以使用 AWS CloudFormation 轻松指定、部署和配置无服务器应用程序。AWS CloudFormation 是一项有助于您对 Amazon Web Services 资源进行建模和设置的服务,能使您花费更少的时间来管理这些资源,而将更多的时间用于关注在 AWS 中运行的应用程序上。您可以创建一个描述您所需的所有 AWS 资源 (如 Lambda 函数或 DynamoDB 表) 的模板,并且 AWS CloudFormation 将负责为您预配和配置这些资源。

此外,您也可以使用 AWS 无服务器应用程序模型表明包含无服务器应用程序的资源。Lambda 函数和 API 等资源类型完全受 AWS CloudFormation 支持,能让您更轻松地定义和部署无服务器应用程序。

有关更多信息,请参阅 部署基于 Lambda 的应用程序

预定事件应用程序规范

以下内容包含该应用程序的 SAM 模板。将以下文本复制到 .yaml 文件中,并将其保存到您之前创建的 ZIP 程序包旁。请确保 Runtime: 参数值与您在上一部分中选择的值匹配。

AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Parameters: NotificationEmail: Type: String Resources: CheckWebsitePeriodically: Type: AWS::Serverless::Function Properties: Handler: LambdaFunctionOverHttps.handler Runtime: runtime Policies: AmazonDynamoDBFullAccess Events: CheckWebsiteScheduledEvent: Type: Schedule Properties: Schedule: rate(1 minute) AlarmTopic: Type: AWS::SNS::Topic Properties: Subscription: - Protocol: email Endpoint: !Ref NotificationEmail Alarm: Type: AWS::CloudWatch::Alarm Properties: AlarmActions: - !Ref AlarmTopic ComparisonOperator: GreaterThanOrEqualToThreshold Dimensions: - Name: FunctionName Value: !Ref CheckWebsitePeriodically EvaluationPeriods: 1 MetricName: Errors Namespace: AWS/Lambda Period: 60 Statistic: Sum Threshold: '1'

部署无服务器应用程序

有关如何使用程序包和部署命令打包和部署无服务器应用程序的信息,请参阅打包和部署