当前位置: 首页 > 知识库问答 >
问题:

如何在从控制台构建的现有服务上执行基础结构代码?

欧阳嘉
2023-03-14

发展迅速,我们已经从该面板创建了一些AWS服务,但现在我们需要回到过去,将它们置于CloudFormation之下。我正在寻找一些关于如何将这些现有项目转化为云信息的方向。举个简单的例子,我们有一个安全组,它是从面板创建的,其他服务使用安全组ID。因此,当我们需要进行更改时,没有CloudFormation可供修改。如何在不创建新的安全组/安全组ID的情况下为该安全组创建一个CloudFormation模板,并将其显示在CloudFormation中,以便我们可以用代码进行管理?现在,我以这个问题中的安全组为例来理解如何从概念上解决这个问题。我也想为其他服务做这件事,比如RDS、Fargate、S3等等。。。遵循从面板创建的模型,然后跟进并将代码放置到位以支持它。我不是在寻找处理安全组示例的答案——目前,我们只是在CF中管理这些规则,并使用sg ID应用它们。我希望我的要求是明确的,并感谢您可能提供的任何方向。

示例中使用的安全组是一个真实的情况,我们无法找到一种方法将云形成放在现有安全组后面。我们只是通过拥有一个带有安全组ID作为参数的云形成模板并管理SCM中安全组的规则来处理这种特定情况。

我正在寻找一种从面板创建的方法,然后跟进并将代码放在适当的位置,以支持它,而不影响现有的服务/ID。

共有2个答案

邰建业
2023-03-14

不可能将现有资源放入CloudFormation堆栈中(https://stackoverflow.com/a/54450440/715780)

您将需要使用通过云形成创建新资源的策略并从现有资源迁移。这对某些事情(如自动缩放组或VPC)来说更容易,对其他事情(如包含重要数据的Dynamo表)来说更困难,可能不值得。

我从未使用过CloudEx,但您可能会发现从现有资源生成模板很有用(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-using-cloudformer.html

您可能会发现使用CDK比编写自己的CloudForm更容易。它的好处是它可以引用现有资源(在迁移期间可能很有用)并导入您已经使用CloudEx(https://stackoverflow.com/a/55297703/715780)编写或生成的任何CF模板。

苏坚成
2023-03-14

正如最初被接受的答案所建议的那样——在工作中有云信息功能或资源采用/导入。我很高兴地报告,这已经在昨天发布了,并且可以使用了——可以将现有的AWS资源导入CFN堆栈。你可以在AWS官方文档中阅读更多关于它的概念和机制

 类似资料:
  • 域内有一个接口“DetectPriorityInterface”。两个实现必须同时处于活动状态;一种“混合”必须实时地选择一种而不是另一种。 问题是:这些实现(两个实现)应该住在哪里:在域层还是基础结构层?? 内部实现充满了业务规则,应该驻留在域层。外部实现是一个简单的调用,应该存在于基础结构中。 null 客户端使用接口,因此,对于应用层,所有这些东西都是trasparent;接下来,我们将删除

  • Gradle 的构建脚本展示了 Groovy 的所有能力. 作为开胃菜, 来看看这个: 例子 6.4. 在 Gradle 任务里使用 Groovy build.gradle task upper << { String someString = 'mY_nAmE' println "Original: " + someString println "Upper case:

  • 我正在PyCharm中开发Django项目,一切正常。我已经在虚拟环境中安装了fabric,并添加了fabfile。加入我的项目。在这个文件中,我放置了一个测试任务定义: 之后,我试图直接从我的PyCharm上执行这个任务。你有什么建议我该怎么做?

  • 问题内容: 如何打印(在控制台),,等这个结构中Golang的? 问题答案: 要在结构中打印字段名称: 从包装中: 打印结构时,加号()添加字段名称 假设您有一个Project的实例(在’ ‘中) 文章JSON和Go将提供有关如何从JSON结构中检索值的更多详细信息。 此“按示例进行搜索”页面提供了另一种技术: 那会打印: 如果没有任何实例,则需要 使用反射 来显示给定结构的字段名称,如本例所示。

  • 如何在Golang中打印(在控制台中)该结构的、、等?

  • Reducer 的基本结构 首先必须明确的是,整个应用只有一个单一的 reducer 函数:这个函数是传给 createStore 的第一个参数。一个单一的 reducer 最终需要做以下几件事: reducer 第一次被调用的时候,state 的值是 undefined。reducer 需要在 action 传入之前提供一个默认的 state 来处理这种情况。 reducer 需要先前的 sta