【发布时间】:2020-10-15 01:14:02
【问题描述】:
说明: 我正在使用 terraform-compliance,它似乎不想接受文档说要使用的标准 json 文件。我在 github 上创建了一个问题,但我想我会在这里扩展它,以防我遗漏了一些完全可能的东西。
操作系统:macos catalina
正在运行的码头工人
terraform-compliance v1.2.7
我只是在文档上运行脚本,当我传递正确的 json 文件时它似乎不起作用。这还维护吗?
复制
# main.tf
provider "aws" {
region = var.region
}
locals {
common_tags = {
Environment = var.env_name
TerraformWorkspace = var.env_name
}
}
terraform {
backend "remote" {
organization = "*******"
workspaces {
prefix = "******"
}
}
}
# variables.tf
variable "region" {
description = "AWS region"
}
variable "env_name" {
}
使用 terraform-compliance 参数我不确定这是什么意思?
我应该在 docker 中运行这些吗??
$ terraform show -json > state.out.json
$ terraform state pull > state.out
$ terraform-compliance -p state.out.json
# terraform-compliance v1.2.7 initiated
# ERROR: state.out.json is not a valid terraform plan json output.
测试版本:
-
terraform-compliance v1.2.7
-
Terraform v0.12.26
-
Python 2.7.16
【问题讨论】:
-
它不要求状态文件。它想要计划输出。
terraform-compliance旨在以增量方式运行,应该用于在更改发生之前阻止被拒绝的更改,而不是告诉您应该阻止哪些已经存在的更改。 -
@ydaetskcoR 谢谢好心的陌生人!我在文档中注意到您可以根据您的功能将状态文件或计划文件传递给它。因此,如果我尝试使用 plan.out 或 plan.out.json,它们都会失败并显示类似的消息。我会更新问题以反映这一点。
-
可能是因为你如何拉/转换状态文件?通常你应该先拉,然后转换拉的状态文件,例如;
terraform state pull > state.out && terraform show -json state.out > state.out.json
标签: terraform terraform-provider-aws terraform0.12+