抖音技术能力大揭密!钜惠大礼、深度体验,尽在火山引擎增长沙龙,就等你来! 立即报名>> 了解详情
写点什么

CLI + 第三方资源支持 + 注册表

2019 年 11 月 28 日

CLI + 第三方资源支持 + 注册表

CloudFormation 于 2011 年推出(AWS CloudFormation – Create Your AWS Stack From a Recipe),现已成为许多 AWS 客户不可或缺的工具。究其原因,是因为客户可以仅定义一次模板,然后便可使用该模板可靠地预配置 AWS 资源。他们还经常使用更改集,并借助这些更改集深入了解执行更改集时将发生的操作(添加、更改和删除)。


正如我之前所述,CloudFormation 特别注重实现一致、稳定和统一的模型。这是 CloudFormation 的一个重要却常常被忽视的元素,但我们的客户告诉我们,他们非常重视这一点!


下面我们来看看客户提出的几个最常见请求:


性能 – 在过去的一年中,对 CloudFormation 堆栈执行的操作数量以每季度 30% 的速度增长! 开发团队一直在不断努力,利用架构改进和低级优化相结合的方式,使 CloudFormation 更快、更高效,即便使用量迅速增长。在过去的几个月中,经过努力,我们提高了与 CloudFormation 相关的许多软限制和硬限制,并显著降低了创建和更新操作的平均延迟和最大延迟。


覆盖率 – 我们非常快速地发布新服务和新功能,但有时不含 CloudFormation 支持。我们的目标是尽快支持新服务和新功能,我相信我们正在取得进展。我们还利用新的 CloudFormation 覆盖路线图作为开发过程的主要输入源,并且已经解决了其中的 43 个问题。


可扩展性 – 广泛使用 CloudFormation 的客户告诉我们,他们希望自动创建非 AWS 资源,其中包括他们自己的开发团队、SaaS 应用程序的第三方供应商、监控工具等创建的资源。他们已在充分利用自定义资源,但一如既往,想要更多的控制和权力,以及简单的管理方法。


CloudFormation 注册表和 CloudFormation CLI


当今,随着开源项目 CloudFormation CLI 的推出,我们将满足您提高覆盖率和可扩展性的要求。


您可以使用此工具包定义和创建资源提供程序,以便以安全和系统化的方式自动创建资源。您可以创建一个架构,为五个核心操作定义一个处理程序,在本地进行测试,然后将提供程序发布到与您的 AWS 账户相关联的新提供程序注册表。


我们还与一些精选的第三方供应商合作,帮助他们为 SaaS 应用程序、监控工具等创建资源提供程序。您将能够从相关供应商获得提供程序,并将其添加到提供程序注册表。


最后,我们将以开源形式提供一组 AWS 资源提供程序。您可以用来学习如何编写强健的提供程序,还可以根据需要进行扩展(在您自己的命名空间中)。


下面我们详细了解一下!


CloudFormation CLI


这组工具提供了构建自己的资源提供程序所需的全部内容,包括详细文档和示例代码。cfn(CloudFormation 命令行界面)命令可帮助您初始化项目、生成框架代码、测试提供程序并将其注册到 CloudFormation。


以下是主要步骤:


建模 – 创建并验证用作资源规范描述的架构。


开发 – 编写处理程序(目前为 Java 和 Go,后续还有其他语言),以定义资源上的五个核心操作(创建、读取、更新、删除和列出),并在本地进行测试。


注册 – 将提供程序注册到 CloudFormation,以便可以在 CloudFormation 模板中使用。


**对资源建模


**资源的架构必须符合资源提供程序定义架构。它定义了资源及其属性。属性可以定义为只读、只写和只创建;这为 CloudFormation 提供所需具备的信息,以便在对堆栈执行操作时能够修改现有资源。以下是一个简单的定义:


Json


{  "additionalProperties": false,  "createOnlyProperties": [    "/properties/Name"  ],  "primaryIdentifier": [    "/properties/Name"  ],  "properties": {    "Name": {      "description": "The name of the configuration set.",      "maxLength": 64,      "pattern": "^[a-zA-Z0-9_-]{0,64}$",      "type": "string"    }  },  "typeName": "AWS::SES::ConfigurationSet",  "description": "A sample resource"}
复制代码


开发


处理程序利用框架执行错误处理、限制对下游 API 的调用、凭证管理等。CloudFormation CLI 包含完整的示例代码;您还可以研究 Amazon SES 资源提供程序(或任何其他提供程序)以了解更多信息。


要了解更多信息,请阅读 CloudFormation CLI 文档中的演练:开发资源提供程序


注册


开发并在本地测试资源提供程序之后,需要告知 CloudFormation 该提供程序的相关信息。使用 CloudFormation CLI,您可以将软件包(架构和编译后的处理程序)提交到所需的 AWS 区域。接受过程是异步操作;完成后,便可以在 CloudFormation 模板中使用新的资源类型。


CloudFormation 注册表


CloudFormation 注册表为资源提供程序提供账户级、区域级存储。可以从 CloudFormation 控制台进行访问:



选择公有可查看原生 AWS 资源 (AWS::*::*);选择私有可查看您创建的资源以及从第三方获取的资源。


您还可以使用 RegisterTypeDeregisterTypeListTypesListTypeRegistrationsListTypeVersionsDescribeType 函数,以编程方式访问注册表。


第三方支持


如前所述,在今天的发布之前,一些精选的第三方供应商一直在努力创建资源提供程序。以下是最初清单:


  • Atlassian

  • Datadog

  • Densify

  • Dynatrace

  • Fortinet

  • New Relic

  • Spotinst


注册供应商提供的提供程序之后,您将能够在 CloudFormation 模板中引用相应的资源类型。例如,您可以使用 Datadog::Monitors::Monitor 创建 Datadog 监控工具。


如果您是第三方供应商,并且对为您的产品创建资源提供程序感兴趣,请发送电子邮件至 cfn-registry-onboarding@amazon.com


现已推出


您可以使用 CloudFormation CLI 构建供所有公共 AWS 区域使用的资源提供程序。


作者介绍:


!



### [](https://amazonaws-china.com/cn/blogs/china/tag/jeff-barr/)
AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/cloudformation-update-cli-third-party-resource-support-registry/


2019 年 11 月 28 日 08:00192

欲了解 AWS 的更多信息,请访问【AWS 技术专区】

评论

发布
暂无评论
发现更多内容

Redis数据结构

邱学喆

数据库 redis 跳跃表

实现多级缓存架构设计方案

xcbeyond

缓存 缓存架构 6月日更

【Vue2.x 源码学习】第二篇 - Vue的初始化流程

Brave

源码 vue2 6月日更

Spring Boot FatJar类加载机制简要分析

luojiahu

Spring Boot 类加载 ClassLoader FatJar

手把手教你在IDEA中配置Maven

打工人!

Java maven 6月日更

“扯皮”终结者,区块链帮农民工计薪水

CECBC区块链专委会

Hello Python! 第一天学 Pyhton 语言

在即

6月日更 六月日更

React Hooks - 如何安全地使用state

Daniel

React React Hooks JavaScrip 6月日更 6 月日更

情指勤一体化指挥调度平台搭建,情报研判分析系统搭建

13823153121

Dubbo SPI

青年IT男

dubbo

深圳首辆数字人民币主题观光巴士亮相

CECBC区块链专委会

致恰达耶夫,致鸿蒙

脑极体

微博评论的高性能高可用计算架构设计

唐高为

VSPD9.0基础 建立一对互联的虚拟串口,进行串口通信的测试

万里无云万里天

IoT 6月日更 VSPD

k8s 插件管理工具之krew使用

雪雷

6月日更

react源码解析4.源码目录结构和调试

全栈潇晨

React Hooks react源码

【Flutter 专题】114 图解自定义 ACEProgressPainter 对比进度图

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6 月日更

一文了解预训练语言模型!

博文视点Broadview

分治(详解残缺棋盘 —— Java代码实现)

若尘

算法 分治 java代码 六月日更

关于第四次财富狂潮的思考,区块链如猛虎出笼?

CECBC区块链专委会

中断Hwi:提高鸿蒙轻内核系统实时性及执行效率的秘密武器

华为云开发者社区

鸿蒙 硬件 中断 鸿蒙轻内核 中断信号

详解Camtasia的注释功能

淋雨

视频剪辑 Camtasia 录屏

你们公司的数据库出过问题么?

escray

极客时间 学习笔记 朱赟的技术管理课 六月日更

ARTS- 日常打卡5

pjw

面试系列-3 限流场景实践

我是阿沐

php lua redis 限流算法 大厂面试经历

BZZ算力挖矿系统开发功能丨BZZ算力挖矿源码设计

系统开发咨询1357O98O718

直击Huawei Mate 40产线背后的华为云IoT智能制造

华为云开发者社区

IoT 数字化转型 数字孪生 华为云IoT

面试系列-2 redis列表场景分析实践

我是阿沐

php redis cluster 大厂面试题

GrowingIO 前端团队对于 GraphQL 的实践总结

GrowingIO技术专栏

前端 graphql

在Spring Bean实例过程中,如何使用反射和递归处理的Bean属性填充?

小傅哥

Java spring 小傅哥 反射调用 属性填充

有点难的 webpack 知识点:Dependency Graph 深度解析

范文杰

webpack 六月日更

Study Go: From Zero to Hero

Study Go: From Zero to Hero

CLI + 第三方资源支持 + 注册表-InfoQ