Personalizar a saída do Atlas CLI
Nesta página
Você pode personalizar os campos de saída e o formato do Atlas CLI usando um modelo Go ou um caminho JSON, o que facilita a automatização de processos com base no resultado do Atlas CLI.
Go templates
Você pode especificar um modelo Go em qualquer comando do Atlas CLI ou por meio de um arquivo separado. Para saber mais sobre os modelos Go, consulte Modelo de pacote. Para saber os tipos e propriedades disponíveis para cada resposta, consulte Tipos de Atlas.
Sintaxe
Você pode especificar um modelo com o comando utilizando a opção --output
ou -o
:
--output|-o go-template="{{<template>}}"
Alternativamente, você pode especificar um modelo por meio de um arquivo usando a opção --output
ou -o
:
--output|-o go-template-file="<path-to-template-file>"
Exemplos
Recupere o número de projetos
O comando a seguir usa um modelo para recuperar uma contagem do número de projetos na organização especificada:
atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"
O comando anterior retorna a seguinte saída:
Count: 2
Recupere a connection string do Atlas cluster
O comando atlas clusters describe a seguir usa o modelo para recuperar a connection string de um Atlas cluster chamado getStarted
. Ele usa o perfil padrão para acessar o Atlas.
atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"
O comando anterior retorna uma string semelhante à seguinte:
Parse: mongodb+srv://getstarted.example.mongodb.net
Você pode usar o MongoDB Shell, mongosh
, para se conectar ao cluster getStarted
com srvAddress
e a connection string. Este exemplo utiliza a connection string retornada pelo comando anterior para um usuário com o nome de usuário User1
.
mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure
Por exemplo, considere o seguinte arquivo chamado template.tmpl
:
Projects: {{range .Results}}{{.ID}} {{end}}
O seguinte comando utiliza o arquivo template.tmpl
para recuperar as ID do projeto na organização especificada:
atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template-file="template.tmpl"
O comando anterior retorna a seguinte saída:
Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc
json-path
Tipo de saída
O tipo de saída json-path
limita os resultados de um comando aos campos que você especifica.
Uso
Ao adicionar a opção --output
a um comando, você pode especificar o tipo json-path
. Você deve fornecer a json-path
uma expressão para avaliar em relação aos seus resultados, o que significa que você deve estar ciente dos campos json
retornados pelo seu comando.
Sintaxe
<command> --output|-o json-path='$<expression>'
json-path
expressões referem-se ao elementoJSON que um comando Atlas CLI retorna. O caractere $
representa o elemento raiz, que geralmente é um objeto ou uma array.
Para obter uma lista de caracteres válidos e suas funções, consulte Expressões JSONPath.
Exemplos
Retornar a descrição da primeira chave API em uma lista
No exemplo a seguir, um usuário recupera suas chaves de API com a lista de apiKeys da organização Atlas. A expressão json-path
limita a saída ao campo desc
da primeira chave, em vez de retornar toda a lista de chaves.
atlas organizations apikeys list --output json-path='$[0].desc' owner_key
A execução do mesmo comando com --output json
retorna o elemento JSON completo da API. É importante entender a estrutura JSON retornada por um comando para operá-la com json-path
.
Utilizando a seguinte saída JSON completa como referência, o --output json-path
com a expressão $[0].desc
localiza e retorna somente o valor "owner_key"
:
[ //``$`` represents the outer array. { // ``[0]`` refers to the first element in the array (using a 0-based index). "id": "60e736a95d585d2c9ccf2d19", "desc": "owner_key", //``.desc`` refers to the ``desc`` field of that element. "roles": [ { "orgId": "5d961a949ccf64b4e7f53bac", "roleName": "ORG_OWNER" } ], "privateKey": "********-****-****-c4e26334754f", "publicKey": "xtfmtguk" }, { "id": "d2c9ccf2d1960e736a95d585", "desc": "member_key", "roles": [ { "orgId": "5d961a949ccf64b4e7f53bac", "roleName": "ORG_MEMBER" } ], "privateKey": "********-****-****-c4e26334754f", "publicKey": "vfgcttku" }, ]
Retornar a descrição de uma chave API específica em uma lista
No exemplo a seguir, um usuário recupera suas chaves de API com a lista de apiKeys da organização Atlas. A expressão json-path
limita a saída ao campo desc
do objeto JSON específico com id
d2c9ccf2d1960e736a95d585
.
atlas organizations apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc' member_key
Retorne o status de um endpoint privado
No exemplo a seguir, um usuário recupera informações para um endpoint privado com Atlas privateEndpoints Amazon Web Services describe. A expressão json-path
limita a saída ao campo status
do elemento raiz.
atlas privateendpoints aws describe 601a4044da900269480a2533 --output json-path='$.status' WAITING_FOR_USER