云计算-云基础设施的配置 (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”按钮。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为交换机的基本配置

实验拓扑: 实验目的:认识二层交换机和二层交换技术的工作原理;认识三层交换和三层交换技术。 三层功能简而言之就是了具有路由的功能,设备可以充当网关和路由器。 实验要求:公司的两个部门用vlan进行划分&#xff0c…

vs中.\ 与 ..\ 区别

100编程书屋_孔夫子旧书网 在 Visual Studio 中,. 和 .. 是表示相对路径的两个特殊符号。 . 表示当前目录,例如:.\file.txt 表示当前目录下的文件 "file.txt"。 .. 表示上一级目录,例如:..\file.txt 表示上…

喵星人必备!福派斯三文鱼猫粮,营养满分!

猫粮品牌:福派斯三文鱼猫粮测评体验 在快节奏的都市生活中,我们的宠物猫也需要适应当下的生活环境,并保持健康和活力。作为一名合格的铲屎官,我们总是关心如何为猫咪提供既健康又美味的饮食。今天,我有幸为大家带来一…

QT 如何在 QListWidget 的选项中插入自定义组件

有时我们需要 QListWidget 完成更复杂的操作,而不仅限于添加文本或者图标,那么就会使用到 setItemWidget 函数,但是这也会伴生一个问题,插入自定义组件后,QListWidget 对选项点击事件的获取会收到阻塞,因…

Docker安装启动Mysql

1、安装Docker(省略) 网上教程很多 2、下载Mysql5.7版本 docker pull mysql:5.7 3、查看镜像是够下载成功 docker images 4、启动镜像,生成容器 docker run --name mysql5.7 -p 13306:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7 5…

内网-2(代理)

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

PolarCTF 2024夏季个人挑战赛 个人WP

【WEB】审计 直接给源码,php特性 秒了,有个特殊的东西 0e215962017,他md5后的值是本身 【WEB】扫扫看 敏感目录flag.php 【WEB】debudao 查看网页源码(里面的flag是错的) 查看网络 【WEB】ExX? 开题 扫一下&#…

法国工程师数电练习题——有限状态机

1. 有限状态机 1.1 问题背景描述 给定的有限状态机由其状态图表示,具有两个输入E1和E2以及一个输出S。状态机为下图。请为以下输入序列绘制这个Moore机的时序图: 1) 在t50纳秒时,E1E211 2) 在t150纳秒时,E1E200 …

1.盒模型及其应用(溢出、外边距塌陷)

一、盒模型 盒模型详解-CSDN博客 CSS学习笔记3:CSS三大特性、盒子模型-CSDN博客 1.盒模型组成 (1)padding padding和border都会撑大盒子,margin不会. 如果没有指定盒子的width/height,那么padding不会撑大盒子。 &am…

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:公路智能巡检解决方案

项目背景 中国公路网络庞大,总里程超过535万公里,高速公路里程位居世界前列。面对基础设施存量的不断增长,公路养护管理已迈入“建管养并重”的新时代。随着养护支出的逐年攀升,如何提升养护效率、降低管理成本,成为亟…

YOLOv10:实时端到端目标检测的新突破

目标检测作为计算机视觉领域的一个核心问题,其关键在于能够在图像中准确识别并定位对象。随着深度学习技术的发展,基于深度神经网络的目标检测方法不断涌现,其中YOLO(You Only Look Once)系列算法以其优异的实时性和准…

C++类和对象下篇

🐇 🔥博客主页: 云曦 📋系列专栏:[C] 💨路漫漫其修远兮 吾将而求索 💛 感谢大家👍点赞 😋关注📝评论 文章目录 📔1、再谈构造函数📰…

【C++】类和对象——构造和析构函数

目录 前言类的六个默认构造函数构造函数1.构造函数的概念2.构造函数的特性 初始化列表1.构造函数整体赋值2.初始化列表 析构函数1.析构函数的概念2.析构函数的特性 前言 类和对象相关博客:【C】类和对象   我们前面一个内容已经讲了关于类好对象的初步的一些知识&…

Python量化交易学习——Part5:通过相关系数选择对收益率影响比重大的因子(1)

上一节中我们学习了如何通过单因子策略进行股票交易,在实际的股市中,因子(也就是指标)数量往往非常之多,比如市盈率/市净率/净资产收益率等,在使用这些因子的过程中,我们会发现有的因子与收益率为正相关,有的因子为负相关,而有些因子几乎完全无关。 所以我们可以通过计…

JS-10-es6常用知识-对象扩展

目录 1 Object.assign:实现拷贝继承 2 扩展运算符(...) 1)介绍 2)数组中的扩展运算符 3)对象中的扩展运算符 1 Object.assign:实现拷贝继承 1)目的:Object.assign()方法在 JavaScript 中被…

Flutter开发效率提升1000%,Flutter Quick教程之定义构造参数和State成员变量

一个Flutter页面,可以定义页面构造参数和State成员变量。所谓页面构造参数,就是当前页面构造函数里面的参数。 比如下面代码,a就是构造参数,a1就是State成员变量。 class Testpage extends StatefulWidget {String a;const Test…

Python的文件管理

读取文件 首先我们可以先创建一个工程项目,如图所示: 打开我们名为1.读取文件.py的python文件,然后我们可以写下读取Python文件的代码,代码如下: f open("1.txt", "r") print(f.read()) f.clos…

【PB案例学习笔记】-14使用次数和日期限制

写在前面 这是PB案例学习笔记系列文章的第14篇,该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码,小凡都上传到了gite…

【工具】探索 ARPU:平均每用户收入

缘分让我们相遇乱世以外 命运却要我们危难中相爱 也许未来遥远在光年之外 我愿守候未知里为你等待 我没想到为了你我能疯狂到 山崩海啸没有你根本不想逃 我的大脑为了你已经疯狂到 脉搏心跳没有你根本不重要 🎵 邓紫棋《光年之外》 什么是 ARP…

UE5.1_常用快捷键

UE5.1_常用快捷键 shift1,,模式选择 shift2,,模式选择 shift3,,模式选择 shift4,,模式选择 shift5,,模式选择 shift6,,模式选择 …