AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

步骤 4:使用 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 的应用程序

Amazon API Gateway 应用程序规范文件

以下内容包含该应用程序的 SAM 模板。将以下文本复制到 .yaml 文件中,并将其保存到您在上一部分创建的 ZIP 程序包旁。请注意,HandlerRuntime 参数值应与上一节中创建函数时所用的参数值匹配。

Copy
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Parameters: NotificationEmail: Type: String Resources: CloudTrailEventProcessing: Type: AWS::Serverless::Function Properties: Handler: handler Runtime: runtime Timeout: 10 MemorySize: 1024 Policies: Statement: - Effect: Allow Action: s3:GetObject Resource: !Sub 'arn:aws:s3:::${Bucket}/*' - Effect: Allow Action: sns:Publish Resource: !Ref Topic Events: PhotoUpload: Type: S3 Properties: Bucket: !Ref Bucket Events: s3:ObjectCreated:* Environment: Variables: SNS_TOPIC_ARN: !Ref Topic Bucket: Type: AWS::S3::Bucket Trail: Type: AWS::CloudTrail::Trail Properties: IsLogging: true S3BucketName: !Ref Bucket Topic: Type: AWS::SNS::Topic Properties: Subscription: - Protocol: email Endpoint: !Ref NotificationEmail

部署无服务器应用程序

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