首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform手动更改自动标度组/实例组

Terraform手动更改自动标度组/实例组
EN

Stack Overflow用户
提问于 2021-08-26 20:36:22
回答 1查看 105关注 0票数 1

我有用Terraform创建的基础设施。将有一些自动标度组(AWS)或实例组(GCP),这取决于云提供商。它不直接管理实例。

我希望编写一个AWS或gcloud命令,将自动标度减少到最小0,最大值0,删除健康检查,基本上所有与实例组相关的内容。然后等待组删除所有实例。然后,我手动将所有内容更改回原来的设置。

  • 会不会出现这种腐败的地形状态?
  • 在这样做后,这被认为是漂移吗?
  • 可以处理这个问题,还是会创建僵尸资源?
  • 这是反模式吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-26 22:10:52

你真的可以做到。但是,IaC工具侧重于“所需的状态”。通过更改缩放/耗尽资源,您可以在Terraform之外执行此操作。然后,在标识您的资源已耗尽之后,让Terraform将基础结构返回到所需的状态。

类似的东西(但仍然使用IaC )是将terraform本地states定义为local变量。然后,来回切换状态。

示例:

代码语言:javascript
复制
# define the states
locals {
   instance_state { 
      draining {
         min_instances = 0
         max_instances = 0
         health_check = false
      }

      black_friday {
         min_instances = 20
         max_instances = 100
         health_check = true
      }

      default {
         min_instances = 5
         max_instances = 20
         health_check = true
      }
   }
}

# You set the state here...
locals {
   desired_state = local.instance_state.draining
}

然后,在资源中使用desired_state

代码语言:javascript
复制
# No change needed here since it points to the desired_state
resource "type_some_resource" "resource_name" {
   min_instances = local.desired_state.min_instances
   max_instances = local.desired_state.max_instances
   health_check  = local.desired_state.health_check
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68945038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档