A Terraform Lens é uma ferramenta da CLI que permite que os desenvolvedores tenham uma visão resumida dos recursos do TFState.
Ele produzirá uma tabela com os recursos em um determinado Terraform Tfstate com as seguintes colunas:
Exemplo:
| provider | type | mode | name | module |
| --------------|---------------------|---------|-------------------------------|-------- |
| provider.aws | aws_caller_identity | data | current_user | test |
| provider.aws | aws_dynamodb_table | managed | dynamodb-terraform-state-lock | - |Atualmente, a ferramenta suporta Leia o arquivo TFSTATE de um arquivo local ou de um estado remoto armazenado no S3 .
Em relação à produção produzida, existem três possibilidades:
.tflens/terraform.tfstate.json.md no diretório atual com a tabela..tflens/terraform.tfstate.json.html no diretório atual com a tabela.A ferramenta foi testada com arquivos TFState para as seguintes versões Terraform:
Como o conteúdo deste repositório é um pacote Pypi, você pode instalá -lo facilmente usando o 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 versionVeja a tabela de recursos para um TFState localizado no sistema de arquivos no diretório:
➜ 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 | - |Veja a tabela de recursos para um TFState localizado no sistema de arquivos na coluna do provedor de remoção de diretório:
➜ 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 | - |Esse recurso também pode ser usado para alterar a ordem das colunas:
➜ tflens --show-columns " module,name,type "
| module | name | type |
| -------- | ------------------------------- | --------------------- |
| test | current_user | aws_caller_identity |
| - | dynamodb-terraform-state-lock | aws_dynamodb_table |Veja a tabela filtrada de recursos para um tfstate localizado no sistema de arquivos no diretório:
➜ 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 | Veja a tabela de recursos para um TFSTATE localizado no sistema de arquivos no caminho 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 | - |Crie o arquivo de remarcar com a tabela de recursos para um TFSTATE localizado no sistema de arquivos no diretório:
➜ tflens --output markdown Veja a tabela de recursos para um TFState localizado em um balde S3 chamado tflens-test-tfstate-bucket :
➜ tflens --file-location tflens-test-tfstate-bucket/common/terraform.tfstate --remote s3