Estendendo o MongoDB Atlas CLI com plug-ins personalizados
Avalie esse Tutorial
Estamos muito satisfeitos em anunciar um novo e eficiente recurso para a Interface da linha de comando (CLI) do MongoDB Atlas : suporte a plugin! Esta adição permite aos desenvolvedores estender a funcionalidade do Atlas CLI utilizando sua linguagem de programação e ferramentas preferidas. Este post explorará como os plug-ins funcionam e o orientará na criação de seu primeiro plugin-in Atlas CLI .
O sistema de plugin-in Atlas CLI abre novas possibilidades para personalização e contribuições da comunidade. Se você deseja adicionar comandos especializados para o fluxo de trabalho de sua equipe ou contribuir com novos recursos para a comunidade MongoDB mais ampla, os plug-ins tornam isso mais fácil do que nunca.
O que torna esse recurso particularmente interessante é a sua flexibilidade. Enquanto fornecemos suporte oficial e bibliotecas assistente para Go, você pode escrever plug-ins em qualquer linguagem de programação (veja um exemplo do Rust ) que possa ser compilado em um executável binário. Essa livre escolha garante que os desenvolvedores possam contribuir para o ecossistema Atlas CLI usando as ferramentas com as quais se sentirem mais à vontade.
Aqui estão algumas ideias de plugins que você pode escrever para a CLI do MongoDB Atlas :
- Automatização dos fluxos de trabalho de implementação da sua empresa
- Aplicação de políticas de segurança personalizadas
- Gerenciamento de configurações específicas do ambiente
- Implementação de estratégias de backup específicas da equipe
- Criar ferramentas de gerenciamento do ciclo de vida dos dados que se alinham às suas regras de negócios
Mas essas são apenas algumas ideias - a sua imagiação é o limite!
Em seu núcleo, um plugin-in Atlas CLI consiste em dois componentes essenciais: um arquivo de manifesto e um executável binário. Vamos analisar como eles funcionam juntos.
O arquivo de manifesto
manifest.yml
() é o modelo do seu plugin-in. Ele define metadados sobre seu plugin-in e declara quais subcomandos ele fornece. Aqui está um exemplo:1 name: atlas-cli-plugin-example 2 description: this is an example plugin 3 version: 2.0.1 4 github: 5 owner: mongodb 6 name: atlas-cli-plugin-example 7 binary: binary 8 commands: 9 example: 10 description: Root command of the atlas cli plugin example
Cada campo do manifesto serve a um propósito específico:
name
: o identificador do seu plugindescription
: Uma breve explicação da funcionalidade do seu plug-inversion
: A versão semântica do seu plugingithub
: Informações do repositório (necessárias para atualizações)binary
: o nome do arquivo executável do seu plugincommands
: Os subcomandos fornecidos pelo plugin-in
Nesta seção, explicaremos como funciona a execução de comandos no sistema de plugin-in Atlas CLI . Entender esse processo é crucial para os desenvolvedores, pois ele mostra como seu plugin-in interage com o aplicação CLI principal.
Quando um usuário executa um comando de plugin , por exemplo:
1 atlas example-plugin do-something --flag value
O Atlas CLI segue um processo simples:
- Localiza o binário do plugin
- Executa com os argumentos fornecidos:
binary do-something --flag value
- Pipe stdin, stdout e stderr entre o plugin e o usuário
Este modelo de execução garante a integração perfeita entre seu plugin e o Atlas CLI. Do ponto de vista do usuário, os comandos de plugin-in se comportam como comandos integrados, proporcionando uma experiência consistente em toda a CLI.
Vamos mostrar como criar um plugin-in usando Go. Usaremos o Go porque ele fornece acesso à biblioteca assistente oficial
atlas-cli-core
do, simplificando tarefas comuns como a autenticação do usuário e a integração do Atlas SDK.Para facilitar os primeiros passos, criamos um repositório de modelos que inclui tudo o que você precisa para criar um plugin-in. Este repositório contém vários comandos de exemplo que demonstram diferentes recursos de plugin-in . Um desses exemplos é o comando hello, que você pode experimentar instalando o plugin de exemplo e executando
atlas example hello
— ele simplesmente imprime "Hello World! "Neste tutorial, usaremos este modelo como nosso ponto de partida e modificaremos o comando hello para imprimir "Hello World, from my first Atlas CLI plugin! no lugar. Isso ajudará você a entender a estrutura básica de um plugin e como fazer alterações na funcionalidade existente.
- Uma conta do Github
- Go instalado no seu sistema
- Um IDE com suporte Go (recomendado)
- Clique no botão "Usar este modelo" no canto superior direito.
- Preencha os detalhes do seu repositório e crie o novo repositório.
- Verifique se o repositório é público. Isso é necessário para instalar seu plugin
atlas install
usando.
- Clone seu novo repositório:
1 git clone https://github.com/your-github-username/your-repository-name
Atualize o
manifest.template.yml
arquivo com as informações do seu plugin:1 name: blog-example 2 description: this is an example plugin 3 version: $VERSION 4 github: 5 owner: $GITHUB_REPOSITORY_OWNER 6 name: $GITHUB_REPOSITORY_NAME 7 binary: binary 8 commands: 9 blog-example: 10 description: Root command of the atlas cli plugin example
Observação : você não precisa atualizar os
$VERSION
$GITHUB_REPOSITORY_OWNER
$GITHUB_REPOSITORY_NAME
espaços reservados , e nos arquivos de fluxo de trabalho do Github. Esses valores são preenchidos automaticamente com base nas informações do seu repositório.Em seguida, modifique
cmd/plugin/main.go
para atualizar o comando raiz:1 func main() { 2 exampleCmd := &cobra.Command{ 3 Use: "blog-example", 4 Short: "Root command of the atlas cli plugin example", 5 } 6 exampleCmd.AddCommand( 7 hello.Builder(), 8 // other commands… 9 ) 10 // ... rest of the main function 11 }
Isso altera o comando raiz de
example
para blog-example
, o que significa que agora usaremos atlas blog-example hello
para executar nosso comando.Navegue até o
internal/cli/hello/hello.go
arquivo e atualize seu conteúdo para:1 package hello 2 3 import ( 4 "fmt" 5 6 "github.com/spf13/cobra" 7 ) 8 9 func Builder() *cobra.Command { 10 return &cobra.Command{ 11 Use: "hello", 12 Short: "The Hello World command", 13 Run: func(_ *cobra.Command, _ []string) { 14 fmt.Println("Hello World, from my first AtlasCLI plugin!") 15 }, 16 } 17 }
1 git commit -a -m "Blog post changes" 2 git push
1 git tag v1.0.0 2 git push origin v1.0.0
Isso acionará uma ação do Github que cria uma versão com o binário e o manifesto do seu plugin. Você pode monitorar o progresso dessa ação por:
- Indo para o seu repositório no Github.
- Clique na aba "Ações".
Depois que a ação for concluída com sucesso, uma nova versão será criada automaticamente. Você pode encontrar esta versão por:
- Indo para o seu repositório no Github.
- Clique na seção "Lançamentos" no lado direito.
A versão conterá todos os arquivos necessários para a instalação do plugin-in , incluindo o binário para diferentes sistemas operacionais e o arquivo de manifesto.
1 atlas plugin install your-github-username/your-repository-name
1 ❯ atlas blog-example hello 2 3 Hello World, from my first AtlasCLI plugin!
O plugin Atlas CLI permite que os desenvolvedores estendam e personalizem as ferramentas de linha de comando do MongoDB para atender melhor às suas necessidades. Ao fornecer uma estrutura flexível que ofereça suporte a várias linguagens de programação e abordagens de desenvolvimento, estamos facilitando para os desenvolvedores contribuir com suas ideias e soluções para o ecossistema MongoDB .
Estamos ansiosos para ver quais plug-ins você criará! Esteja você criando ferramentas internas para sua equipe ou compartilhando funcionalidades com a comunidade MongoDB mais ampla, o sistema de plugin oferece a flexibilidade e a capacidade de que você precisa.
Comece a criar seu plugin-in hoje mesmo e lembre-se de compartilhá-lo com a comunidade!
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Relacionado
Artigo
Atlas Online Archive: gerencie com eficiência o ciclo de vida dos dados
Jan 13, 2025 | 8 min read
Tutorial
Previsão de pontuação de filmes com BigQuery, Vertex AI e MongoDB Atlas
Jan 13, 2025 | 11 min read