“基础设施代码”也称为IaC已经成为非常受欢迎的在云上部署和管理基础设施。AWS的客户,Cloudformation或CFN首选IaC的选择。CFN便于标准化下文组件的单点真理,更好的依从性和简单故障排除在任何组织。
在部署时,CFN规定资源没有任何需要手动操作或自定义脚本,CFN处理基础设施管理的所有方雷竞技rabet官网面,包括自动回滚,如果任何问题发生。
需要做的所有用户,与CFN代码所需的基础设施组件的模板语言,无论是在YAML或JSON格式。然后他们可以使用CFN的UI,命令行工具或api来访问他们的模板(S3)或在本地机器上创建所需的下文堆栈。
CFN然后继续运行,并规定指定的模板,只有在这一点上有用户成本,随着AWS开始收费AWS部署组件。
AWS CloudFormation注册——不再需要自定义资源供NetApp现货雷竞技rabet官网
直到最近,CFN只会直接提供AWS服务和组件。第三方软件,CFN用户需要创建一个自定义资源CFN会相互作用。
NetApp的位置Elastigroup过去,我们创建了一个Lambda函数在收到指令从CFN堆栈调用现场API Elastigroup资源采取必要的行动。雷竞技rabet官网
展望未来,亚马逊为其客户提供了他们的新AWS CloudFormation注册中心将有第三方资源可用的联系和直接调用这些资源。雷竞技rabet官网这将大大简化部署基础设施CFN和位置的过程。
开始
开始使用AWS CloudFormation注册表和现货(分步指南)
通过引入定制的第三方资源,现场发布了自定义的资源。雷竞技rabet官网安装后,您就可以开始使用新的CFN模板指的位置自定义资源。雷竞技rabet官网
1。登记地点作为一种资源
安装位置自定义资源,从以下网址下载提供者. zip文件:
https://spotinst-public.s3.amazonaws.com/integrations/cloudFormation/registry/spotinst-elastigroup-group.zip
接下来,上传S3存储桶提供者通过AWS CLI,并注意S3路径。然后,运行以下命令在一个AWS CLI启用终端:
aws cloudformation注册类型\——地区us-west-2 \类型名称“Spotinst:: Elastigroup:集团”\——schema-handler-package < LINK_TO_S3 > \——资源类型
上面的命令将输出一个registration-token。现在,使用令牌,你可以样品的状态与以下命令注册过程:
aws cloudformation describe-type-registration \——地区us-east-1 \ registration-token <标记>
首先,我们看到,登记IN_PROGRESS
几分钟后,又描述了注册应该表明完成通过以下输出:
过程完成后你会发现新的资源在AWS Cloudformation控制台,在新的“Cloudformati雷竞技rabet官网on注册表”部分:

2。创建一个资源
创建一个Elastigroup,你可以使用以下CloudFormation模板示例作为起点:
{“AWSTemplateFormatVersion”:“2010-09-09”,“描述”:“Spotinst elastigroup供应商测试”、“资源”:{" elastigroup ":{“雷竞技rabet官网类型”:“Spotinst:: elastigroup:集团”,“属性”:{“凭证”:{“accessToken”:“SPOTINST_API_TOKEN”、“accountId”:“行动——12345678”},“组”:{“名称”:“ElastigroupWithEcs”,“地区”:“us-west-2”、“能力”:{“最低”:1、“最大”:3,“目标”:1、“单位”:“实例”},“战略”:{“风险”:100年,“availabilityVsCost”:“平衡”,“drainingTimeout”: 60岁的“lifetimePeriod”:“天”、“fallbackToOd”:真的,“revertToSpot”: {“performAt”:“总是”}},“计算”:{" instancetype ":{“调控”:“m4。超大”、“点”:“r4.2xlarge”、“c5。超大”、“c5.4xlarge”、“m5.4xlarge“}”availabilityZones”:[{“名称”:“us-west-2a”,“subnetIds”:["子网- 79 da021e "]},{“名称”:“us-west-2b”,“subnetIds”: [" subnet-0cb5a07e1df98b3fd "]}],“产品”:“Linux / UNIX”、“launchSpecification ": {“healthCheckType”:“ECS_CLUSTER_INSTANCE”、“healthCheckGracePeriod”: 300年,“securityGroupIds”:“sg - 0412 e52ce42b06efc”,“监视”:假的,“ebsOptimized”:假的,“imageId”:“ami-00d4f478”、“iamRole”:{“攻击”:“在攻击:aws:我::842422002533:instance-profile / ec2-instance-full-access”},“用户数据”:“SXlFdlltbHVMMkpoYzJnZ0RRb2daV05vYnlCRlExTmZRMHhWVTFSRlVqMTBaWE4wTFd0aGNpQStQaUF2WlhSakwyVmpjeTlsWTNNdVkyOXVabWxuTzJWamFHOGdSVU5UWDBKQlEwdEZUa1JmU0U5VFZEMGdQajRnTDJWMFl5OWxZM012WldOekxtTnZibVpwWnc9PQ = =”,“blockDeviceMappings”:[{“设备名称”:“/ dev / sda1”、“ebs”: {“deleteOnTermination”:真的,“volumeSize”: 20,“volumeType”:“标准”}}]}},“thirdPartiesIntegration”: {" ecs ": {“clusterName”:“test-kar”,“自动定量”:{“isEnabled”:真的,“冷却”:300年,“isAutoConfig”:真的,“shouldScaleDownNonServiceTasks”:假}}}}}}}}
请注意,“集团”对象是一个标准的Elastigroup JSON。上面的示例显示了一个Elastigroup集成ECS集群。你可以参考现货Elastigroup API为更多的细节。
一旦你准备好模板,您可以在本地保存它并应用通过CloudFormation控制台或下面的命令:
aws cloudformation create-stack us-west-2 \ \ -地区-模板体内“文件:/ /堆栈。json " \——stack-name spotinst-ecs2
这是它!
开源和可扩展的
注意,在发布现场Cloudformation提供者只支持Elastigroup资源。现货供应商文件是开源,所以继续检查github库如果你有任何问题,随时联系!

