多种资源的异味

时间:2019-08-27 07:37:56

标签: terraform

我需要在管道中污染大量资源,以强制重新利用这些资源。当我将状态保持在远程后端时,每个RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.subdomain\.example\.com$ [NC] RewriteRule ^(.*)$ https://subdomain.example.com/$1 [R=301,L] RewriteCond %{HTTP:X-Forwarded-SSL} !on RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 都需要:

  • 锁定存储空间
  • 下载状态
  • 污染资源
  • 上载状态
  • 释放锁

并重复30次左右。无法并行完成,因此我需要花费更多的时间。 terraform taint不喜欢taint命令上的多个资源。有谁知道一种加快速度的方法?

1 个答案:

答案 0 :(得分:0)

Terraform taint命令不支持多个资源作为参数传递。 我也有类似的要求,我所做的就是创建一个python框架并将资源作为参数传递给该python脚本。然后使用python,遍历资源名称并从python调用taint命令。到目前为止,它一直没有任何问题。

我已经将其创建为python框架,所以我只将代码段作为参考

import sys
import subprocess

resource_names = sys.argv[1:]
for resource in resource_names:
    command = "terraform taint " + resource
    p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
    stdout, stderr = p.communicate()

将此保存在 py_taint.py 所在的terraform文件文件夹中,然后按如下所示调用脚本

python py_taint.py resource1 resource2 resource3