写点什么

将现有资源导入 CloudFormation 堆栈中

  • 2019-11-22
  • 本文字数:2500 字

    阅读完需:约 8 分钟

将现有资源导入 CloudFormation 堆栈中

凭借 AWS CloudFormation,您可以使用文本文件对您的整个基础设施进行建模。用此方式,您可以将基础设施视为代码并应用软件开发最佳实践,包括将其置于版本控制中,或在部署前与您的团队一起审查架构变化。


有时候,最初使用控制台或 AWS 命令行界面 (CLI) 创建的 AWS 资源需要使用 CloudFormation 进行管理。例如,您(或者另一个团队)可以在迁移的早期阶段创建 IAM 角色Virtual Private CloudRDS 数据库,然后,您必须花时间将它们纳入与最终应用程序相同的堆栈中。在此类情况下,您最终通常需要使用 CloudFormation 从头开始重新创建资源,然后再从原始资源中迁移配置和数据。


要想使这些步骤对客户更加容易,您现在可以将现有资源导 CloudFormation 堆栈中!


已经可以通过将 DeletionPolicy 设置为保留来在不删除资源的情况下将其从堆栈中删除。这一点与新的导入操作一起提供了一系列新的可能性。例如,您现在能够:


  • 创建新堆栈以导入现有资源。

  • 在已经创建的堆栈中导入现有资源。

  • 在堆栈间迁移资源。

  • 修复检测到的偏离

  • 通过从一个父级堆栈中删除子堆栈,然后将其导入另一个父级堆栈来重构嵌套堆栈


要将现有资源导入 CloudFormation 堆栈,您需要提供:


  • 描述整个堆栈的模板,同时包括要导入的资源和(对于现有堆栈)和已经属于堆栈一部分的资源。

  • 要导入的每个资源在模板中都必须有一个 DeletionPolicy 属性。这样一来,便能以完全安全的方式轻松恢复操作。

  • 每个目标资源的唯一标识符,例如,Amazon DynamoDB 表的名称或您要导入的 Amazon Simple Storage Service (S3) 存储桶的名称。


CloudFormation 会在资源导入操作期间检查如下内容:


  • 导入的资源不属于同一个区域中的另一个堆栈(注意 IAM 角色等全局资源)。

  • 目前资源存在,且您拥有足够的权限来执行操作。

  • 属性和配置值对于资源类型架构是有效的,资源类型架构对其所需的可接受的属性和支持的值进行了定义。


资源导入操作没有检查模板配置和实际配置是否相同。由于导入操作支持与偏离检测相同的资源类型,我建议在将资源导入堆栈后运行偏离检测。


**将现有资源导入新堆栈中


**我的 AWS 账户中拥有一个 S3 存储桶和一个 DynamoDB 表,它们里面都包含一些数据,我希望使用 CloudFormation 来管理它们。 在 CloudFormation 控制台中,我拥有两个新选项:


  • 我可以创建新堆栈以导入现有资源。



  • 我可以将资源导入现有堆栈中。



在此情况下,我想要从头开始,因此,我创建了新堆栈。 接下来,提供一个包含要导入资源的模板。



我上传了包含两个要导入资源(DynamoDB 表和 S3 存储桶)的以下模板。


YAML


AWSTemplateFormatVersion: "2010-09-09"Description: Import testResources:
ImportedTable: Type: AWS::DynamoDB::Table DeletionPolicy: Retain Properties: BillingMode: PAY_PER_REQUEST AttributeDefinitions: - AttributeName: id AttributeType: S KeySchema: - AttributeName: id KeyType: HASH
ImportedBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain
复制代码


在此模板中,我将两种资源的 DeletionPolicy 均设置为保留。用此方式,当您从堆栈中移除它们时不会将它们删除。对于包含您不想错误删除的数据的资源或您可能希望在未来移动到另一个堆栈的资源,这是一个很好的选项。 对于已导入的资源,必须设置一个删除策略,以便您可以轻松安全地恢复操作,防止错误地删除其他人导入的资源。


现在,我必须提供一个标识符来将模板中的逻辑 ID 与现有资源映射。在本例中,我使用 DynamoDB 表名称和 S3 存储桶名称。对于其他资源类型,可能存在多种标识方式,您可以在下拉菜单中选择要使用的属性。



在最终的回顾中,我先查看了更改,然后再进行应用。 在此,我检查并确认,我用正确的标识符锁定了要导入的正确资源。 这实际上是将在我导入资源时执行的 CloudFormation 更改集



将资源导入某个现有堆栈时,不允许对该堆栈的现有资源进行更改。导入操作只允许对导入进行更改集操作。 只要更改参数不会对现有资源的属性解析值造成变化,即可允许此更改。您可以更改现有资源的模板,从而将硬编码值替换为待导入资源的 Ref。 例如,您可能拥有一个包含 EC2 实例的堆栈,该堆栈使用通过控制台创建的现有 IAM 角色。您现在可以将 IAM 角色导入堆栈中,并在模板中将 EC2 实例使用的硬编码值替换为该角色的 Ref


接下来,每个资源在 CloudFormation 控制台中都有其相应的导入事件。



当导入完成时,我在资源选项卡中看到 S3 存储桶和 DynamoDB 表已成为堆栈的一部分。



为确保导入的资源与堆栈模板同步,我使用了偏离检测。



所有的堆栈级标签,包括自动创建的标签都会填充到 CloudFormation 支持的资源中。例如,我可以使用 AWS CLI 将标签集与我刚导入堆栈中的 S3 存储桶关联。这些标签为我提供 CloudFormation 堆栈名称和 ID,以及堆栈模板中的资源的逻辑 ID:


$ aws s3api get-bucket-tagging --bucket danilop-toimport


Json


{  "TagSet": [    {      "Key": "aws:cloudformation:stack-name",      "Value": "imported-stack"    },    {      "Key": "aws:cloudformation:stack-id",      "Value": "arn:aws:cloudformation:eu-west-1:123412341234:stack/imported-stack/..."    },    {      "Key": "aws:cloudformation:logical-id",      "Value": "ImportedBucket"    }  ]}
复制代码


**现已推出


**您可以在以下区域通过控制台AWS 命令行界面 (CLI)AWS 软件开发工具包使用新的 CloudFormation 导入操作:美国东部(俄亥俄)、美国东部(弗吉尼亚北部)、美国西部(加利福尼亚北部)、美国西部(俄勒冈)、加拿大(中部)、亚太地区(孟买)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲(法兰克福)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(巴黎)和南美洲(圣保罗)。


现在,您可以更简单的管理您的基础设施即代码,要了解更多信息,您可以参见文档中的将现有资源引入 CloudFormation 管理


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/new-import-existing-resources-into-a-cloudformation-stack/


2019-11-22 08:00658

评论

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

【YashanDB数据库】yasboot查询数据库状态时显示数据库状态为off

YashanDB

yashandb 崖山数据库 崖山DB

第63期 | GPTSecurity周报

云起无垠

一键生成PPT?讯飞智文2.0迎来重磅升级!马斯克宣布人工智能模型Grok 2测试版即将发布|AI日报

可信AI进展

TextIn文档树引擎,助力RAG知识库问答检索召回能力提升

合合技术团队

科技 文档识别 PDF解析

24年湖北正规等保测评机构名称以及地址看这里!

行云管家

湖北 等保 等级测评

工作五年后,做技术还是做管理?

老张

技术管理 职场成长 技术专家

ICE.AI战略扩展亚太市场,创新交易模式及平台全面升级

科技热闻

macOS Sequoia 15 beta 6 (24A5320a) ISO、IPSW、PKG 下载

sysin

macos sequoia

K8s 如何设置容器 /dev/shm 控制共享内存大小

江湖十年

k8s k8s管理 #k8s K8s 多集群管理 Kubernetes Serverless

打造企业专属人工智能助理

霍格沃兹测试开发学社

HGDD 荣耀开发者日丨沙龙北京站现场亮点回顾

荣耀开发者服务平台

行业趋势 开发者沙龙 应用上架 荣耀开发者服务平台 开发者激励计划

小间距LED显示屏:新时代的传播利器

Dylan

媒体 时代 LED LED display LED显示屏

云高性能计算平台 CHPC 让企业的传统 HPC 玩出新花样

百度Geek说

百度智能云

工作中遇到的RSA问题,这里或许能找到答案

三七互娱后端技术团队

非对称加密 rsa

特权账号的“三生三世”:识别、监测、审计

极盾科技

数据安全 特权账号

望繁信科技与金智维达成金融行业独家战略合作,共塑数字化转型新格局

望繁信科技

数字化转型 金融行业 流程挖掘 数字员工 流程智能

专题 | IAM业界热度不减,2024市场持续井喷(三)

芯盾时代

身份安全 数字化 iam 统一身份认证 零信任模型

必读|Postgres 如何在磁盘上存储和索引数据?

小猿姐

数据库 postgresql 容器

项目管理达人推荐:顶级文档管理系统大比拼

爱吃小舅的鱼

文档管理

仿冒网站横行,奥运会票务网站安全性遭质疑,SSL证书成关键

国科云

供应行业怎么定义?行业也需要堡垒机吗?

行云管家

网络安全 堡垒机 供应行业

选择全周期项目管理系统的5大技巧

爱吃小舅的鱼

项目管理 PLM

前端代码编辑神器:sublime text 4(Win&Mac)中文注册版

你的猪会飞吗

mac软件下载 Sublime Text 4 破解版 Sublime Text 4下载 Sublime Text 4注册版

轻量级的灰度&配置平台|得物技术

得物技术

架构 配置 稳定性 灰度 企业号2024年7月PK榜

【YashanDB数据库】Yashandb表闪回业务表实践

YashanDB

yashandb 崖山数据库 崖山DB

科大讯飞t20和c10 区别对比 评测

妙龙

科大讯飞 学习机

mac剪切板管理工具:Paste for Mac 免激活版

你的猪会飞吗

mac软件下载 Paste for Mac paste mac破解版

macOS Sequoia 15.1 beta 2 (24B5024e) ISO、IPSW、PKG 下载

sysin

macos sequoia

【荣耀远航计划】应用市场·耀闪行动首发上线

荣耀开发者服务平台

honor 应用市场 开发者激励计划

绿电、DePIN+AI:塑造未来二十年金融体系的新兴基石

TechubNews

BTC/ETH/IPFS云算力质押挖矿系统开发详细指南

V\TG【ch3nguang】

云算力质押挖矿系统

将现有资源导入 CloudFormation 堆栈中_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章