云计算-云基础设施的配置 (Provisioning Cloud Infrastructure)

AWS CloudFormation (AWS CloudFormation)

        它是一项服务,允许我们自动建模和配置所需的AWS资源。可以使用模板来实现这一目的。这个模板基本上是用JSON或YAML格式编写的。AWS CloudFormation会根据模板描述的内容来实施资源的配置和管理。我们可以成组配置和管理一组资源,而无需单独创建这些资源。多个资源的配置由AWS CloudFormation处理。AWS CloudFormation的两个关键组件是:

  1. 模板 (Template)
  2. 栈 (Stack)

        模板可以用扩展名为.json、.yaml、.template或.txt的JSON或YAML格式编写。通过这个模板,我们可以创建和管理称为栈的一组AWS资源。我们可以通过创建、更新和删除栈来创建、更新和删除一组资源。栈中的资源由相应的模板定义。

配置S3桶 (Provisioning an S3 Bucket)

        我们现在将使用最简单版本的模板来创建一个名为‘cloudformationbucket’的S3桶。我们需要在CloudFormation中创建一个新栈时上传此模板。模板可以包含多个参数,包括(但不限于):AWSTemplateFormatVersion、Description、Metadata、Parameters、Mappings、Conditions、Resources、Outputs、Type。下面的JSON示例仅使用了‘Resources’、‘Type’和‘DeletionPolicy’。‘DeletionPolicy’属性允许删除桶。

{
    "Resources": {
        "cloudformationbucket" : {
            "Type": "AWS::S3::Bucket",
            "DeletionPolicy": "Delete"    
        }
    }
}

        我们将这个脚本保存到一个名为first_template.txt的文本文件中。此文本文件将作为模板使用。将此模板文件上传到S3桶并复制URL。现在我们将按照以下步骤操作:

  1. 从AWS管理控制台打开CloudFormation控制台,搜索相应术语。在CloudFormation控制台中,点击右上角的‘Create Stack’按钮。选择‘With new resources (Standard)’选项。
  2. 在下一个屏幕中,为Prepare template选择‘Template is ready’,因为我们已经在文本文件中准备好了JSON规范。然后选择‘Amazon S3 URL’作为模板来源。然后添加复制的URL。点击‘Next’。
  3. 在下一个屏幕中,给桶名作为‘Stack name’,例如“create-s3-bucket-stack”。点击‘Next’。
  4. 在‘Configure stack option’屏幕中,保持所有内容不变。特别是,“Stack failure options”应为“Roll back all stack resources”。
  5. 点击“Next”将进入审核页面。在审核页面中,点击‘Create stack’。一个新栈现在将出现在CloudFormation仪表板中。这可能需要几分钟。该模板将创建两个新的S3桶:一个是模板中指定的;另一个是用于存储模板本身的。我们可以‘更新’和‘删除’这个栈。

        你现在可以在S3控制台中查看新创建的桶。桶的名称将包含我们在模板中指定的“cloudformationbucket”字样。桶名将类似于:“create-s3-bucket-stack-cloudformationbucket-1s27nvodenpa3”。这是因为我们在模板中指定的名称(即“cloudformationbucket”)是“逻辑名”,而不是“物理名”。

        现在按照相同的步骤使用附加的first_template.txt。记住,任何模板必须至少包含一个资源。

手动更新模板 (Updating Template Manually)

        在上一节中,我们看到了如何使用CloudFormation创建一个桶。让我们分析下面的模板。模板中有一个逻辑名为“S3Bucket”的资源(已突出显示)。除此之外,下面的模板包含资源类型(S3桶)、删除策略(当前禁用)和属性。目前提供的一个属性是桶的web资源(索引文件和错误文件)。

{ 
    "Resources": {
        "cloudformationbucket": {
            "Type": "AWS::S3::Bucket",
            "DeletionPolicy": "Delete",
            "Properties": {
                "WebsiteConfiguration": {
                  "IndexDocument": "index.html",  
                  "ErrorDocument": "error.html"
                }
            }
        }
    }
}

        这是额外的信息,我们需要更新现有的模板。栈模板可以通过两种方式更新 -(1)手动,(2)使用变更集。

        在手动更新中,可以打开模板并在设计器中更改,保存到本地(或S3)。变更集允许更改现有模板并‘创建栈’。一旦变更集完成,我们可以‘执行’变更集,变更将生效。请参阅以下链接以获取详细信息。

步骤1 - 手动修改和保存栈模板 (Step 1 - Modifying and saving stack template manually)

        让我们对现有模板进行一个简单的更改,更改桶的名称。请参考此链接以获取详细信息:

Modifying a stack template - AWS CloudFormation

        更改桶的逻辑名相当于删除当前桶并使用新桶名创建一个新桶。

        从列表中点击栈。然后点击‘Template’选项卡。然后点击‘View in Designer’按钮。我们将看到如下页面。

        在设计器视图中,我们可以对模板进行必要的更改,验证它(重要步骤),并使用‘Save’选项将其保存(本地或S3)。在此示例中,我们只是将桶名称更改为‘cf-bucket’。请注意,当前模板尚未修改,这个保存的模板将用于稍后更新当前模板。

        现在我们将添加一些额外的代码来更改删除策略和桶的名称。你需要确保(物理)桶名不存在,否则你将收到更新错误。我们需要添加的额外代码如下所示。你可以使用你自己的SCU用户名进行测试。

            "Properties": {
                "WebsiteConfiguration": {
                  "IndexDocument": "index.html",  
                  "ErrorDocument": "error.html"
                }
            }

        它在模板设计器中的样子如下。

        然后我们通过点击设计器页面顶部栏的“Validate template”按钮验证模板。

        我们进入文件菜单并点击“Save”。将模板保存为“second_template.txt”。然后将此模板上传到我们的S3桶并复制URL。

步骤2 - 使用新模板更新栈 (Step 2 – Update the stack with the new template)

        选择栈并点击‘Update’。然后用保存的模板文件(从步骤1)替换模板。按照下面的屏幕步骤操作。点击‘Next’和‘Update stack’按钮。它需要几分钟,然后刷新你的浏览器。在S3中查看桶名是否已更改。

        点击“Next”进行接下来的几个审核页面,最后点击页面底部的“Update stack”按钮。它将更新栈。

        我们的S3桶名称将被更改。

        你可以使用second_template.txt进行测试,但在尝试之前更改物理桶名(使用唯一名称),否则你将收到更新错误,提示“bucket already exists”。

使用变更集更新模板 (Updating Template using Change Set)

        可以使用变更集更新栈,在这种情况下,我们使用变更集替换模板而不是立即更新它。我们可以安排变更集在以后执行。

Updating stacks using change sets - AWS CloudFormation

        我们将做一个简单的练习,我们将再次更改桶名,使用以下模板,third_template.txt。此模板应上传到S3桶并复制URL。

{ 
    "Resources": {
        "cloudformationbucket": {
            "Type": "AWS::S3::Bucket",
            "DeletionPolicy": "Delete",
            "Properties": {
                "WebsiteConfiguration": {
                  "IndexDocument": "index.html",  
                  "ErrorDocument": "invalid.html"
                }
            }
        }
    }
}
  1. 点击栈并从“Stack actions”列表中选择“Create change set for current stack”。

  2. 在下一页中选择“Replace the template”并提供上传模板的URL。

  3. 点击几次以审查变更集,在最终页面点击“Create change set”按钮。

  4. 弹出一个对话框,可以为变更集提供一个名称,最后点击“Create change set”按钮。一旦创建,变更集将如下所示。

  5. 现在我们可以选择刚刚创建的变更集并点击“Execute”按钮。弹出一个关于回滚的提示,保持默认选项。点击“Execute change set”按钮。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL—函数—日期函数(基础)

一、引言 接下来讨论和学习关于函数的第三个方面——日期函数。 常见的MySQL当中的日期函数。 注意: 1、CURDATE():cur:current 当前的,返回的是当前日期。 2、CURTIME():当前时间。 3、NOW:当前的日期和…

一、实现一个简单的 Google Chrome 扩展程序

目录 🧭 效果展示 # 图示效果 a. 拓展程序列表图示效果: b. 当前选项卡页面右键效果: c. 拓展程序消息提示效果: 📇 项目目录结构 # 说明 # 结构 # 文件一览 ✍ 核心代码 # manifest.json # background.j…

Unity中帧动画素材的切割设置

有几个问题,美术在给我们帧动画的时候,一般都是给一个比较大的图,然后进行切割成多个sprite,导入到animation中 一般来说,进行那个autoSlide,自动切割就可以了 这个自动切割的图片会沿着有像素的最小包围…

内网-2(代理)

一、代理概述 1、代理服务器(proxy server):代理网络用户去取得网络信息,介于浏览器与web服务器之间的一条服务器。 注:为了方便,以下用B来代表浏览器的主机,S来代表服务器的主机。 2、正向代理和反向代理 正向代…

车载诊断内容汇总(培训+视频)

车载诊断内容汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事&#xff0c…

虚拟现实环境下的远程教育和智能评估系统(二)

本周进行开发工具,技术框架选择与学习;基本了解了以下技术框架的部署应用; 一、Springboot:最常用的后端框架之一,通过提供默认配置和自动配置,消除许多手动配置和样板代码,从而加速基于Spring…

CentOS7单用户模式,救援模式操作记录

CentOS7单用户模式,救援模式操作记录 1. 单用户模式 单用户模式进入不需要密码,无网络连接,拥有root权限,禁止远程登陆。一般用于用于系统维护,例如忘记root密码后可以通过进入单用户模式进行重置。 开机启动&#…

JVM运行时数据区 - 程序计数器

运行时数据区 Java虚拟机在执行Java程序的过程中,会把它管理的内存划分成若干个不同的区域,这些区域有各自的用途、创建及销毁时间,有些区域随着虚拟机的启动一直存在,有些区域则随着用户线程的启动和结束而建立和销毁&#xff0…

Unity DOTS技术(二)ECS

文章目录 一.ECS简介二.基本操作实例三.实体查看组件四.位置实体修改五.旋转实体六.了解原有属性七.禁止自动创建八.动态实例化 一.ECS简介 ECS全称 (Entity Component System).即(E:实体 C:组件 S:系统). 实际上即是数据方法分离.数据放在组件里,具体实现放在系统里.组件挂载…

遥感影像信息提取

刘老师(副教授),来自双一流重点高校,长期从事GIS/RS/3S技术及其生态环境领域中的应用等方面的研究和教学工作,并参与GIS的二次开发,发表多篇sci论文,具有资深的技术底蕴和专业背景。 专题一&am…

Java反序列化漏洞与URLDNS利用链分析

前言 前面学习过 Java 反序列化漏洞的部分知识,总结过几篇文章: 文章发布日期内容概括《渗透测试-JBoss 5.x/6.x反序列化漏洞》2020-07-08JBoss 反序列化漏洞 CVE-2017-12149 的简单复现,使用了 ysoserial 和 CC5 链,未分析漏洞…

mipi-csi笔记

数据格式 长包,短包 用DI来判断数据类型 测试帧率,如用1G的示波器 下面的代表这是一张图片,用帧间隙来测试YUV422视频的帧率 fps10hz的外同步

alist配合onlyoffice 实现在线预览

alist配合onlyoffice 实现在线预览 文章目录 alist配合onlyoffice 实现在线预览一、安装onlyoffice二、增加view.html文件三、安装nginx,并增加conf配置文件四、alist预览配置增加 一、安装onlyoffice 我是采用docker安装,采用的版本是7.2, …

eNSP学习——连接RIP与OSPF网络、默认路由

目录 相关主要命令 实验一、连接RIP与OSPF网络 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP和OSPF网络 3、配置双向路由引入 4、手工配置引入时的开销值 实验二、使用OSPF、RIP发布默认路由 原理介绍 实验目的 实验内容 实…

天气数据集-Jena Climate dataset

天气数据集-Jena Climate dataset 1.数据集基本信息 Dataset Name: mpi_saale_2021b.csv Size: 26495 rows; 1 year (2021), 10 min 气象学、农业、环境科学 开源机构: Max Planck Institute for Biogeochemistry 2.数据特征 2.1 特征简介 数据共有31个特征,…

【GeoServer系列】——安装与发布shapefile数据

GeoServer是一个基于java的服务器,它允许用户查看和编辑地理空间数据。使用OGC制定的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。 功能概述: Open and Share Your Spatial Data GeoServer允许您向世界显示您的空间信息。G…

上可生产力,下可打游戏!奥睿科USB4炫影固态硬盘盒是真的稳

上可生产力,下可打游戏!奥睿科USB4炫影固态硬盘盒是真的稳 哈喽小伙伴好,我是Stark-C~ 开篇 对于和我一样经常需要和存储数据打交道的人群来说,大容量的移动硬盘可以说是不可或缺的。移动硬盘作为一种便携式的存储设备&#xf…

笔记:美团的测试

0.先启动appium 1.编写代码 如下: from appium import webdriver from appium.webdriver.extensions.android.nativekey import AndroidKeydesired_caps {platformName: Android,platformVersion: 10,deviceName: :VOG_AL10,appPackage: com.sankuai.meituan,ap…

Git操作笔记

学git已经好多次了。但是还是会忘记很多的东西,一些常用的操作命令和遇到的bug以后在这边记录汇总下 一.github图片展示 图片挂载,我是创建了一个库专门存图片,然后在github的md中用专用命令展示图片,这样你的md就不会全是文字那…

Android O Camera深度研究

目录 Adnroid O之前的Android camera软件框架 Adnroid O camera软件框架 Passthrough Mode Binderized mode Wrapper shim for libhardware HALs Wrapper shim for libhardware HALs Customized Treble Camera HAL/framework Camera HAL transition and removal plan …