登录 / 注册
IT168服务器频道
IT168首页 > 服务器 > 服务器资讯 > 正文

AWS开源并扩展无服务器应用程序模型实现

2018-05-15 17:25    InfoQ 来源:InfoQ  作者: Steffen Opel 编辑: 陶然

  【IT168 资讯】近日,Amazon Web Services(AWS)开源了其无服务器应用程序模型(SAM)实现,并增加了一个面向CloudWatch Logs订阅过滤器的新事件源。该版本全面扩展了通过Amazon API网关配置和部署REST API的选项,其中包括支持CORS头、区域端点和二进制媒体类型。

  无服务器应用程序模型(SAM)是一个开源规范,扩展了AWS的基础设施即代码服务CloudFormation,有特定的资源类型,“使用一种简洁的语法定义无服务器应用程序”。SAM实现了目前两种可用的CloudFormation转换中的一种,旨在“通过精简AWS基础设施即代码的表达式来简化模板编写”。当模板指定了AWS::Serverless转换时,在使用处理过的模板创建或更新栈之前,CloudFormation会把更简洁的SAM语法扩展成平常的CloudFormation资源类型。

  编写SAM应用程序要借助SAM Local CLI,它让你可以“在本地测试函数,从SAM模板启动一个本地API网关,验证SAM模板,生成各种事件源的样例负载”(之前报道过)。然后,开发人员可以使用AWS CodePipeline、AWS CodeBuild、CloudFormation和AWS CodeDeploy持续地构建,并通过各种金丝雀或线性流量切换配置逐步部署SAM应用程序。还可以通过无服务器应用程序库以及AWS SAM应用程序打包、发现和配置平台(之前报道过)共享兼容的解决方案。

AWS开源并扩展无服务器应用程序模型

  虽然SAM规范从一开始就是开源的,但AWS团队必须闭门实现其认可的每一个请求特性。现在,AWS开源了将SAM转换成平常的CloudFormation模板的代码,降低了社区的参与门槛,这样,任何人都可以实现新特性,并通过pull request和AWS团队合作,加速验收。Samtranslator的源代码遵循Apache 2.0许可协议,已经提供的aws-sam-translator PyPI程序包也会让无服务器社区更容易“集成其他框架和部署提供程序”。

  除了开源SAM实现外,SAM 1.5版本还增加了一个面向Amazon CloudWatch Logs的新事件源,当日志消息与特定的过滤器模式相匹配时,会触发一个Lambda函数:

  # [...]

  Resources:

  LogsProcessor:

  Type: AWS::Serverless::Function

  Properties:

  CodeUri: .

  Handler: lambda_function.lambda_handler

  Runtime: python3.6

  Events:

  HelloInfoQSubscription:

  Type: CloudWatchLogs

  Properties:

  LogGroupName: !Ref CloudWatchLambdaLogsGroup

  FilterPattern: Hello InfoQ

  之前的SAM 1.4版本提供了人们强烈要求的“跨源资源分享(Cross-Origin Resource Sharing,缩写为CORS)”Amazon API网关支持,现在,只需简单地指定一个域(还有一个更细粒度的CORS配置)就可以启用。它还集成了新的API网关区域端点、二进制媒体类型、日志、指标、缓存TTL设置、AWS Lambda函数并发以及各种小改进和Bug修复。下面的模板节选说明了通过Globals段支持SAM API网关的简洁性:

  ---

  Transform: AWS::Serverless-2016-10-31

  Globals:

  Api:

  # 允许www.infoq.com调用这个API——SAM将自动

  # 添加AllowMethods,这是该API使用的HTTP方法的列表

  Cors: "'https://www.infoq.com'"

  EndpointConfiguration: REGIONAL

  BinaryMediaTypes:

  # 在部署时和image/gif、image/png等效

  - image~1gif

  - image~1png

  # [...]

  无服务器应用程序模型的源代码包含一份开发指南、一份简要设计概述和贡献准则。其中还包含生成的CloudFormation资源和相关的CloudFormation兼容性。截至目前,SAM终端用户支持通过AWS Lambda论坛提供,后续会转移到新的AWS无服务器应用程序库论坛。有兴趣与SAM社区及团队合作的开发人员可以加入AWS SAM开发者频道(#samdev)。

  查看英文原文:AWS Open Sources and Expands Serverless Application Model (SAM) Implementation

标签: AWS , 无服务器应用
  • IT168企业级IT168企业级
  • IT168文库IT168文库

扫一扫关注

行车视线文章推荐
首页 评论 返回顶部