Terraform Lens es una herramienta CLI que permite que los desarrolladores tengan una visión resumida de los recursos del Estado.
Producirá una tabla con los recursos en un tfstate Terraform dado con las siguientes columnas:
Ejemplo:
| provider | type | mode | name | module |
| --------------|---------------------|---------|-------------------------------|-------- |
| provider.aws | aws_caller_identity | data | current_user | test |
| provider.aws | aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Actualmente, la herramienta admite leer el archivo TFState de un archivo local o un estado remoto almacenado en S3 .
Con respecto a la producción producida, hay tres posibilidades:
.tflens/terraform.tfstate.json.md en el directorio actual con la tabla..tflens/terraform.tfstate.json.html en el directorio actual con la tabla.La herramienta ha sido probada con archivos TFState para las siguientes versiones de Terraform:
Como el contenido de este repositorio es un paquete PYPI, puede instalarlo fácilmente usando PIP:
pip install tflens➜ tflens --help
usage: tflens [-h] [-f FILE_LOCATION] [-o OUTPUT] [-r REMOTE] [-m FILTER_MODULE] [-n FILTER_NAME] [-t FILTER_TYPE] [-p FILTER_PROVIDER] [-d FILTER_MODE] [-u HTTP_USER] [-w HTTP_PASSWORD] [-v]
Terraform lens is a CLI tool that enables developers have a summarized view of tfstate resources.
optional arguments:
-h, --help show this help message and exit
-f FILE_LOCATION, --file-location FILE_LOCATION
Defines the location (remote or local) of the tfstate file.
Mandatory if remote tfstate is selected.
If empty then use the current_folder/terraform.tfstate
-o OUTPUT, --output OUTPUT
Defines output type (markdown | html).
If empty outputs in terminal
-r REMOTE, --remote REMOTE
Defines if remote (s3 | http) or local tfstate file.
If empty local is used.
When remote is defined, you also need to specify --file-location with the tfstate location
according to the following pattern: bucket-name/tfstate-key
-s SHOW_COLUMNS, --show-columns SHOW_COLUMNS
Comma separated string list with columns to show in output. Default list is: ' provider,type,mode,name,module '
-m FILTER_MODULE, --filter-module FILTER_MODULE
Applies a regular expression to the module field in order to filter the resources list to output
-n FILTER_NAME, --filter-name FILTER_NAME
Applies a regular expression to the name field in order to filter the resources list to output
-t FILTER_TYPE, --filter-type FILTER_TYPE
Applies a regular expression to the type field in order to filter the resources list to output
-p FILTER_PROVIDER, --filter-provider FILTER_PROVIDER
Applies a regular expression to the provider field in order to filter the resources list to output
-d FILTER_MODE, --filter-mode FILTER_MODE
Applies a regular expression to the mode field in order to filter the resources list to output
-u HTTP_USER, --http-user HTTP_USER
User for http remote backend basic auth
-w HTTP_PASSWORD, --http-password HTTP_PASSWORD
Password for http remote backend basic auth
-v, --version
Show program versionVer tabla de recursos para un tfstate ubicado en el sistema de archivos en el directorio:
➜ tflens
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |
| provider.aws | aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Ver tabla de recursos para un tfstate ubicado en el sistema de archivos en la columna del proveedor de eliminación del directorio:
➜ tflens --show-columns " type,mode,name,module "
| type | mode | name | module |
| --------------------- | --------- | ------------------------------- | -------- |
| aws_caller_identity | data | current_user | test |
| aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Esta característica también se puede usar para cambiar el orden de las columnas:
➜ tflens --show-columns " module,name,type "
| module | name | type |
| -------- | ------------------------------- | --------------------- |
| test | current_user | aws_caller_identity |
| - | dynamodb-terraform-state-lock | aws_dynamodb_table |Ver tabla de recursos filtrados para un tfstate ubicado en el sistema de archivos en el directorio:
➜ tflens --filter-name " current "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |O:
➜ tflens --filter-module " test "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |O:
➜ tflens --filter-name " current " --filter-module " test "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test | Ver tabla de recursos para un tfState ubicado en el sistema de archivos en dev/terraform.tfstate.json ruta:
➜ tflens --file-location dev/terraform.tfstate.json
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |
| provider.aws | aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Crear archivo Markdown con la tabla de recursos para un tfstate ubicado en el sistema de archivos en el directorio:
➜ tflens --output markdown Ver tabla de recursos para un tfstate ubicado en un cubo S3 llamado tflens-test-tfstate-bucket :
➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3