Puede personalizar los campos y el formato de salida de Atlas CLI utilizando una plantilla Go o una ruta JSON, lo que facilita la automatización de procesos basados en la salida de Atlas CLI.
Go templates
Puede especificar una plantilla de Go dentro de cualquier comando de la CLI de Atlas o mediante un archivo independiente. Para obtener más información sobre las plantillas de Go, consulte Plantilla de paquetePara conocer los tipos y propiedades disponibles para cada respuesta, consulte Tipos de Atlas.
Sintaxis
Puede especificar una plantilla con el comando usando el --output o la opción -o:
--output|-o go-template="{{<template>}}"
Alternativamente, puede especificar una plantilla a través de un archivo usando 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 de la cantidad de proyectos en la organización especificada:
atlas projects ls --orgId 5ab5cedf5g5h5i5j5kl12mn4 -o go-template="Count: {{.TotalCount}}"
El comando anterior devuelve el siguiente resultado:
Count: 2
Recuperar tu cadena de conexión del clúster de Atlas
La siguiente El comandodescribe de clústeres Atlas usa la plantilla para recuperar la cadena de conexión de un clúster Atlas getStarted llamado. Utiliza el perfil predeterminado para acceder a Atlas.
atlas clusters describe getStarted -o go-template="Parse: {{.SrvAddress}}"
El comando anterior devuelve una cadena similar a la siguiente:
Parse: mongodb+srv://getstarted.example.mongodb.net
Puede usar MongoDB Shell,, para conectarsemongosh al getStarted clúster con 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 User1 usuario.
mongo "mongodb+srv://getstarted.example.mongodb.net" --username User1 --password ChangeThisPasswordToSomethingSecure
Por ejemplo, considere 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 el siguiente resultado:
Projects: 5e2211c17a3e5a48f5497de3 5f455b39749bea5fb575dccc
json-path Tipo de salida
El tipo de salida json-path limita los resultados de un comando a los campos que usted especifique.
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 se refieren a la ElementoJSON que devuelve un comando 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 de API con la lista apiKeys de Atlas Organizations. La json-path expresión limita la salida al desc campo 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 operar con él json-path con.
Usando la siguiente salida JSON completa como referencia,--output json-path con la expresión $[0].desc encuentra y devuelve solo el "owner_key" valor:
[ //``$`` 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 en una lista
En el siguiente ejemplo, un usuario recupera sus claves API con la lista apiKeys de Atlas Organizations. La json-path expresión limita la salida al desc campo del objeto JSON específico id d2c9ccf2d1960e736a95d585 con.
atlas organizations apikeys list --output json-path='$[? @.id=="d2c9ccf2d1960e736a95d585"].desc' member_key
Devolver el estado de un punto final privado
En el siguiente ejemplo, un usuario recupera información de un punto de conexión privado con atlas privateEndpoints aws describe. La json-path expresión limita la salida al status campo del elemento raíz.
atlas privateendpoints aws describe 601a4044da900269480a2533 --output json-path='$.status' WAITING_FOR_USER