Мне нужен файл parse terraform, пишите в формате JSON. Я должен извлечь две данные, resource
и id
, это пример файла:
{
"version": 1,
"serial": 1,
"modules": [
{
"path": [
"root"
],
"outputs": {
},
"resources": {
"aws_security_group.vpc-xxxxxxx-test-1": {
"type": "aws_security_group",
"primary": {
"id": "sg-xxxxxxxxxxxxxx",
"attributes": {
"description": "test-1",
"name": "test-1"
}
}
},
"aws_security_group.vpc-xxxxxxx-test-2": {
"type": "aws_security_group",
"primary": {
"id": "sg-yyyyyyyyyyyy",
"attributes": {
"description": "test-2",
"name": "test-2"
}
}
}
}
}
]
}
Мне нужен экспорт для любого resources
, первого ключа и значения id
, в данном случае aws_security_group.vpc-xxxxxxx-test-1
sg-xxxxxxxxxxxxxx
и aws_security_group.vpc-xxxxxxx-test-2
sg-yyyyyyyyyyyy
Я пытался написать это на Python:
#!/usr/bin/python3.6
import json
import objectpath
with open('file.json') as json_file:
data = json.load(json_file)
json_tree = objectpath.Tree(data['modules'])
result = tuple(json_tree.execute('$..resources[0]'))
result
является
('aws_security_group.vpc-xxxxxxx-test-1', 'aws_security_group.vpc-xxxxxxx-test-2')
Это нормально, но я не могу извлечь id
, любая помощь приветствуется, также используйте другие методы
Спасибо