看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!
自 re:Invent 2017 大会以来,经过一段短暂的预览期之后,Amazon Web Services(AWS)正式发布了其新的无服务器应用程序库。现在,用户可以通过AWS Lambda 控制台发现、配置和部署无服务器应用程序和组件了,AWS 认为,“这是AWS 合作伙伴、企业客户、独立开发者分享无服务器应用的理想场所”。
为了简化“AWS 上无服务器应用程序的管理和部署”,AWS 在re:Invent 2016 大会上推出了无服务器应用程序模型(SAM)。SAM 是一个开源规范,扩展了AWS 的基础设施即代码服务 CloudFormation ,为其提供了专用的资源类型和定制的打包、部署命令。AWS接下来发布了基于Docker 的 SAM Local ,以便让开发人员可以“在本地测试函数、通过 SAM 模板启动本地 API Gateway、SAM 模板验证、生成各种事件源的示例载荷”(之前报道过)。
现在,AWS添加了无服务器应用程序库,专门用于SAM 应用程序的打包、发现和配置服务。和仍然提供的Blueprints 特性一样,它也集成了 AWS Lambda 控制台的函数创建向导,引导用户完成发现和部署步骤。
图片:Lambda 控制台中AWS 无服务器应用程序库函数创建向导
不过,这也是仅有的相似之处。Blueprint 仅仅是部署单个“作为起点”的函数,而SAM 应用程序让解决方案需要的 IAM 策略和权限、在底层 CloudFormation 模板中声明的需要配置的 AWS 资源及其许可证一目了然。然后,应用程序消费者可以指定必选参数和可选参数,并把解决方案部署为一个 CloudFormation 栈。所有的栈资源都会使用应用程序的 Amazon 资源名(ARN)标记,那样就可以在 AWS 管理控制台上识别和监控。
相应地,该方法为应用程序发布者提供了一个新的分发模型,他们现在也可以提供无服务器解决方法,让客户部署在自己的AWS 账户下。应用程序的访问控制通过基于资源的IAM 策略实现,因此,可以限定到发布者所在的AWS 组织(之前报道过)的特定团队,有选择地和第三方账户共享,或者只是公开发布,所有AWS 用户都可以访问。
公开共享的应用程序还需要一个指向应用程序源代码的链接。许多已有的Blueprint 已经被转换成无服务器应用程序,它们的源代码在相应SAM GitHub 库的 examples/apps 文件夹中。Jeff Barr(AWS 首席宣传官)特别强调说,对于这种新型分发模型的消费者而言,这意味着更大的自由:
你可以进入无服务器应用程序和组件的蓬勃发展的生态圈 [……]。你可以配置并原封不到地使用它们,或者把它们拆分,加入新特性,然后向作者提交 pull request。
要创建应用程序,发布者需要定义一些常见参数,如应用程序名称、作者、描述、自述文件、标签,并选择一个“开源友好的软件包数据交换(SPDX)许可”。应用程序版本可以稍后提交,需要一个语义版本,当然还有 SAM 模板。另外,还有两个限制需要注意:
- 只有发布到
us-east-1
或us-east-2
的应用程序才是全球可用的,发布到其他区域的应用程序只能在那个 AWS 区域里使用; - 除了专门的SAM 资源类型外,无服务器应用程序库还支持CloudFormation 提供的所有 AWS 资源类型中多种相关的无服务器资源类型。如果用户需要添加其他的类型,可以联系 AWS 技术支持。
无服务器应用程序库是对更为综合的 IT 服务发现和治理解决方案 AWS 服务目录的完善,该服务同样是基于AWS CloudFormation 构建的,但它关注的是面向更广泛应用程序类型的集中管理的IT 服务组合和生命周期。它还可以集成ISV 和咨询合作伙伴在 AWS 市场上提供的第三方服务。
无服务器应用程序库开发者指南介绍了应用程序的消费和发布以及 REST API 资源参考,其中还包括 AWS CLI 参考和专门的 FAQ 。目前为止,技术支持还是通过 AWS Lambda 论坛提供,后续会转到新建的 AWS 无服务器应用程序库论坛。无服务器应用程序库本身免费试用,配备的 AWS 资源,如 API 网关、Lambda 函数、DynamoDB 表,则按照日常使用计费。
查看英文原文: AWS Makes Serverless Application Repository Generally Available
评论