• AWS CloudFormation


    模板
    CloudFormation 模板是 JSON 或 YAML 格式的文本文件。您可以使用任何扩展名(如 .json、.yaml、.template 或 .txt)保存这些文件。CloudFormation 将这些模板作为蓝图以构建 AWS 资源。例如,在模板中,您可描述 Amazon EC2 实例,如实例类型、AMI ID、块储存设备映射和其 Amazon EC2 密钥对名称。当您创建堆栈时,还可以指定 CloudFormation 用来创建模板中描述的任何项的模板。

    例如,如果您使用以下模板创建堆栈,则 CloudFormation 将使用 ami-0ff8a91507f77f867 AMI ID、t2.micro 实例类型、testkey 密钥对名称和 Amazon EBS 卷来配置实例。

    例 JSON

    {
    "AWSTemplateFormatVersion" : "2010-09-09",
    "Description" : "A sample template",
    "Resources" : {
    "MyEC2Instance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
    "ImageId" : "ami-0ff8a91507f77f867",
    "InstanceType" : "t2.micro",
    "KeyName" : "testkey",
    "BlockDeviceMappings" : [
    {
    "DeviceName" : "/dev/sdm",
    "Ebs" : {
    "VolumeType" : "io1",
    "Iops" : 200,
    "DeleteOnTermination" : false,
    "VolumeSize" : 20
    }
    }
    ]
    }
    }
    }
    }
    例 YAML

    AWSTemplateFormatVersion: "2010-09-09"
    Description: A sample template
    Resources:
    MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
    ImageId: "ami-0ff8a91507f77f867"
    InstanceType: t2.micro
    KeyName: testkey
    BlockDeviceMappings:
    -
    DeviceName: /dev/sdm
    Ebs:
    VolumeType: io1
    Iops: 200
    DeleteOnTermination: false
    VolumeSize: 20
    您还可以在单个模板中指定多种资源并将这些资源配置为结合使用。例如,您可以修改上一个模板来包含一个弹性 IP (EIP) 并将其与 Amazon EC2 实例相关联,如以下示例所示:

    例 JSON

    {
    "AWSTemplateFormatVersion" : "2010-09-09",
    "Description" : "A sample template",
    "Resources" : {
    "MyEC2Instance" : {
    "Type" : "AWS::EC2::Instance",
    "Properties" : {
    "ImageId" : "ami-0ff8a91507f77f867",
    "InstanceType" : "t2.micro",
    "KeyName" : "testkey",
    "BlockDeviceMappings" : [
    {
    "DeviceName" : "/dev/sdm",
    "Ebs" : {
    "VolumeType" : "io1",
    "Iops" : 200,
    "DeleteOnTermination" : false,
    "VolumeSize" : 20
    }
    }
    ]
    }
    },
    "MyEIP" : {
    "Type" : "AWS::EC2::EIP",
    "Properties" : {
    "InstanceId" : {"Ref": "MyEC2Instance"}
    }
    }
    }
    }
    例 YAML

    AWSTemplateFormatVersion: "2010-09-09"
    Description: A sample template
    Resources:
    MyEC2Instance:
    Type: "AWS::EC2::Instance"
    Properties:
    ImageId: "ami-0ff8a91507f77f867"
    InstanceType: t2.micro
    KeyName: testkey
    BlockDeviceMappings:
    -
    DeviceName: /dev/sdm
    Ebs:
    VolumeType: io1
    Iops: 200
    DeleteOnTermination: false
    VolumeSize: 20
    MyEIP:
    Type: AWS::EC2::EIP
    Properties:
    InstanceId: !Ref MyEC2Instance
    之前的模板以 Amazon EC2 实例为中心;但 CloudFormation 模板还具有其他功能,可利用这些功能来构建复杂的资源集并在许多环境中重新使用这些模板。例如,您可添加输入参数,其值是在创建 CloudFormation 堆栈时指定的。换句话说,您可在创建堆栈而不是创建模板时指定一个值 (如实例类型),以便在不同的情况下更轻松地重新使用模板。

    有关模板创建和功能的更多信息,请参阅模板剖析。

    有关声明特定资源的更多信息,请参阅 AWS 资源和属性类型参考。

    要开始使用 AWS CloudFormation Designer 设计您自己的模板,请转到 https://console.aws.amazon.com/cloudformation/designer。

    堆栈
    在您使用 CloudFormation 时,可将相关资源作为一个称为“堆栈”的单元进行管理。您可通过创建、更新和删除堆栈来创建、更新和删除一组资源。堆栈中的所有资源均由堆栈的 CloudFormation 模板定义。假设您创建了一个模板,它包括 Auto Scaling 组、Elastic Load Balancing 负载均衡器和 Amazon Relational Database Service (Amazon RDS) 数据库实例。要创建这些资源,您可通过提交已创建的模板来创建堆栈,CloudFormation 将会为您配置所有这些资源。您可以通过使用 CloudFormation 控制台、API 或 AWS CLI 来使用堆栈。

    有关创建、更新或删除堆栈的更多信息,请参阅使用堆栈。

    更改集
    如果您需要更改堆栈中运行的资源,则可更新堆栈。在更改资源之前,您可以生成一个更改集,这是建议进行的更改的摘要。利用更改集,您可以在实施更改之前,了解更改可能会对运行的资源 (特别是关键资源) 造成的影响。

    例如,如果您更改 Amazon RDS 数据库实例的名称,则 CloudFormation 将创建新数据库并删除旧数据库。除非您已经对旧数据库中的数据进行备份,否则您将丢失该数据。如果您生成了更改集,则将了解更改会导致数据库被替换,而您可以先做出相应的计划,然后再更新堆栈。有关更多信息,请参阅使用更改集更新堆栈。

    https://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/cfn-whatis-concepts.html

  • 相关阅读:
    JFreeChart学习笔记
    Java基于JavaMail实现向QQ邮箱发送邮件遇到的问题
    JBPM入门
    eclipse jbmp 4.4 插件的安装及配置
    Redis开启远程登录连接
    springmvc @ResponseBody返回json 报406 not acceptable
    generatorConfiguration配置详解
    WCF、WebAPI、WCFREST、WebService之间的区别
    理解nodejs和react之间的关系
    DB2 sqlCode-668
  • 原文地址:https://www.cnblogs.com/heidsoft/p/15733480.html
Copyright © 2020-2023  润新知