python_terraform 没有采用 s3 后端

python_terraform is not taking s3 backend

因为我正在使用 python_terraform 模块来应用地形。我正在 python 和 运行 init 中创建一个 terraform 后端文件,但是在应用到 terraform 之后,状态文件是在本地创建的

from python_terraform import *
import shutil
import os
var_file = "test_sqs_name"
print(var_file)
# creating the terraform.tf  file
backend_file = open("/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/terraform.tf", "w+")
backend_file.write("""terraform { 
  backend \"s3\" {
    key            = \"formations/project/sqs/dev/%s\" 
    bucket         = \"terraform-backend-dev\"
    dynamodb_table = \"terraform-backend-dev\"
    region         = \"us-west-2\"
    profile        = \"engdev\"
    }
}""" % (var_file))

try:
    shutil.rmtree("/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/.terraform")
except OSError as e:
    print("Error: %s : %s" % (
        "/Users/ankit/workplace/events-infra/terraform/formations/test/sqs/.terraform", e.strerror))
tf = Terraform(working_dir='/Users/ankit/workplace/events-infra/terraform/formations/test/sqs',
               terraform_bin_path='/usr/local/bin/terraform-0-12-12',
               var_file='/Users/ankit/workplace/events-infra/backend/test.us-west-2-' + var_file + '.tfvars',

               )
tf.init(
        dir_or_plan='/Users/ankit/workplace/events-infra/terraform/formations/test/sqs',
)
plan_value = tf.plan(no_color=IsFlagged, refresh=False, capture_output=True)
print(plan_value[1])
approve = {"auto-approve": True}
print(tf.apply(capture_output=True, auto_approve=True, skip_plan=True, **approve)[1])

文件一直保持打开状态,直到 python 退出,这可能会干扰 Terraform 读取它。