Puede personalizar los campos y el formato de salida de la CLI de Atlas usando una plantilla de Go o una ruta JSON, lo cual facilita la automatización de procesos basados en la salida de la CLI de Atlas.
Go templates
Puedes especificar una plantilla Go en cualquier comando de la CLI de Atlas o a través de un archivo separado. Para obtener más información sobre plantillas Go, consulta Paquete de plantillas. Para aprender los tipos y propiedades disponibles para cada respuesta, consulte tipos de Atlas.
Sintaxis
Puedes especificar una plantilla con el comando utilizando la opción --output o -o:
--output|-o go-template="{{<template>}}"
De forma alternativa, puedes especificar una plantilla mediante un archivo utilizando la opción --output o -o:
--output|-o go-template-file="<path-to-template-file>"
Ejemplos
Recuperar el número de proyectos
El siguiente comando utiliza una plantilla para recuperar un recuento del número de proyectos en la organización especificada:
atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"
El comando anterior devuelve la siguiente salida:
Count: 2
Recuperar tu cadena de conexión del clúster de Atlas
El siguiente comando atlas clusters describe utiliza la plantilla para recuperar la cadena de conexión de un clúster Atlas llamado getStarted. Utiliza el perfil por defecto para acceder a Atlas.
atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"
El comando anterior devuelve una string similar a la siguiente:
Parse: mongodb+srv://getstarted.example.mongodb.net
Se puede utilizar MongoDB Shell, mongosh, para conectarse al clúster getStarted con la srvAddress y la cadena de conexión. Este ejemplo utiliza la cadena de conexión devuelta por el comando anterior para un usuario con el nombre de usuario User1.
mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure
Por ejemplo, considera el siguiente archivo llamado template.tmpl:
Projects: {{range .Results}}{{.ID}} {{end}}
El siguiente comando utiliza el archivo template.tmpl para recuperar los ID de los proyectos en la organización especificada:
atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template-file="template.tmpl"
El comando anterior devuelve la siguiente salida:
Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc
json-path Tipo de salida
El tipo de salida json-path limita los resultados de un comando a los campos que se especifiquen.
Uso
Cuando se agrega la opción --output a un comando, se puede especificar el tipo json-path. Debes proporcionar a json-path una expresión para evaluar tus resultados, lo que significa que debes conocer los campos json devueltos por tu comando.
Sintaxis
<command> --output|-o json-path='$<expression>'
json-path Las expresiones hacen referencia al elemento JSON que devuelve un comando de la CLI de Atlas. El carácter $ representa el elemento raíz, que suele ser un objeto o una matriz.
Para obtener una lista de caracteres válidos y sus funciones, consulte Expresiones JSONPath.
Ejemplos
Devuelve la descripción de la primera clave API en una lista
En el siguiente ejemplo, un usuario recupera sus claves API con la lista de claves API de la organización Atlas. La expresión json-path limita la salida al campo desc de la primera clave, en lugar de devolver la lista completa de claves.
atlas organizations apikeys list --output json-path='$[0].desc' owner_key
Al ejecutar el mismo comando con --output json, se devuelve el elemento JSON completo de la API. Es importante comprender la estructura JSON que devuelve un comando para poder trabajar con él usando json-path.
Utilizando la siguiente salida JSON completa como referencia, --output json-path con la expresión $[0].desc encuentra y devuelve solo el 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" }, ]
Devuelve la descripción de una clave API específica de una lista
En el siguiente ejemplo, un usuario recupera sus claves API con la lista apiKeys de organizaciones atlas. La expresión json-path limita la salida al campo desc del objeto JSON específico con id d2c9ccf2d1960e736a95d585.
atlas organizations apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc' member_key
Devolver el estado de un nodo privado
En el siguiente ejemplo, un usuario recupera información de nodos privados con Atlas privateEndpoints AWS describe. La expresión json-path limita la salida al campo status del elemento raíz.
atlas privateendpoints aws describe 601a4044da900269480a2533 --output json-path='$.status' WAITING_FOR_USER