Terraform Lens est un outil CLI qui permet aux développeurs d'avoir une vue résumée des ressources TFState.
Il produira une table avec les ressources dans une terraform donnée TfState avec les colonnes suivantes:
Exemple:
| provider | type | mode | name | module |
| --------------|---------------------|---------|-------------------------------|-------- |
| provider.aws | aws_caller_identity | data | current_user | test |
| provider.aws | aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Actuellement, l'outil prend en charge la lecture du fichier tfState à partir d'un fichier local ou d'un état distant stocké dans S3 .
En ce qui concerne la sortie produite, il y a trois possibilités:
.tflens/terraform.tfstate.json.md dans le répertoire actuel avec la table..tflens/terraform.tfstate.json.html dans le répertoire actuel avec la table.L'outil a été testé avec des fichiers TFState pour les versions Terraform suivantes:
Comme le contenu de ce dépôt est un package PYPI, vous pouvez facilement l'installer à l'aide de 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 versionAfficher la table des ressources pour un tfState situé dans le système de fichiers dans le répertoire:
➜ 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 | - |Afficher la table des ressources pour un tfState situé dans le système de fichiers dans la colonne du fournisseur de suppression du répertoire:
➜ 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 | - |Cette fonction peut également être utilisée pour modifier l'ordre des colonnes:
➜ tflens --show-columns " module,name,type "
| module | name | type |
| -------- | ------------------------------- | --------------------- |
| test | current_user | aws_caller_identity |
| - | dynamodb-terraform-state-lock | aws_dynamodb_table |Afficher le tableau des ressources filtrées pour un tfState situé dans le système de fichiers dans le répertoire:
➜ tflens --filter-name " current "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |Ou:
➜ tflens --filter-module " test "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test |Ou:
➜ tflens --filter-name " current " --filter-module " test "
| provider | type | mode | name | module |
| -------------- | --------------------- | --------- | ------------------------------- | -------- |
| provider.aws | aws_caller_identity | data | current_user | test | Afficher la table des ressources pour un tfState situé dans le système de fichiers dans le chemin de dev/terraform.tfstate.json :
➜ 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 | - |Créez un fichier de marque avec la table des ressources pour un tfState situé dans le système de fichiers dans le répertoire:
➜ tflens --output markdown Voir la table des ressources pour un tfState situé dans un seau S3 appelé tflens-test-tfstate-bucket :
➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3