CLI OpenSearch integrada no Nest,
uma estrutura Node.js progressiva para construir aplicativos do lado do servidor eficientes e escalonáveis.
O opensearch-cli oficial também está disponível
npm install -g @andreafspeziale/os-cli
yarn global add @andreafspeziale/os-cli
pnpm add -g @andreafspeziale/os-cli
docker pull andreafspeziale/os-cli
docker run --rm --env-file .env andreafspeziale/os-cli
Se estiver usando uma imagem OpenSearch local (docker) como aquela incluída no arquivo
docker-compose
certifique-se de definir corretamente a opçãonetwork
e a variável envOS_HOST
(OS_HOST=http://opensearch:9200) no comando acima (docker run --rm --env-file .env --network os-cli_default andreafspeziale/os-cli
)
Se estiver usando a CLI dockerizada e precisar usar suas cargas json como entradas, você precisará montar a pasta no contexto de execução da CLI (por exemplo,
docker run --rm --env-file .env -v ./recipes:/opt/os-cli/recipes --network os-cli_default andreafspeziale/os-cli dq -i books -f recipes/query.json
)
Para experimentar a CLI muito rapidamente usando npx
ou após instalá-la, você pode gerar o OpenSearch localmente usando o arquivo docker-compose
incluído no repositório:
git clone [email protected]:andreafspeziale/os-cli.git
cd os-cli
docker compose up -d
export OS_CONNECTION_METHOD=local
npx @andreafspeziale/os-cli il
ou os-cli il
Assim como o arquivo docker-compose
também existem algumas receitas incluídas no repositório:
npx @andreafspeziale/os-cli i cr -i books -f ./recipes/create-index.json
ou os-cli i cr -i books -f ./recipes/create-index.json
npx @andreafspeziale/os-cli d cr -i books -f ./recipes/create-documents.json
ou os-cli d cr -i books -f ./recipes/create-documents.json
npx @andreafspeziale/os-cli dq -i books -f ./recipes/query.json
ou os-cli dq -i books -f ./recipes/query.json
Para modo proxy, verifique aws-sigv4-proxy
A CLI aproveita variáveis de ambiente para definir opções de conexão e registro apenas uma vez.
Nome | Obrigatório | Padrão | Descrição | Valores |
---|---|---|---|---|
SO_HOST | quando OS_CONNECTION_METHOD NÃO é local ou proxy | http://localhost:(9200 or 8080) | Host de conexão OpenSearch | - |
OS_CONNECTION_METHOD | Sim | - | Como você deseja se conectar ao OpenSearch | [ local , proxy , serviceAccount , credentials ] |
AWS_REGION | somente quando OS_CONNECTION_METHOD NÃO é local ou proxy | - | Região de conexão OpenSearch AWS | - |
AWS_ROLE_ARN | somente quando OS_CONNECTION_METHOD é serviceAccount | - | ARN de função AWS para conexão de função assumida | - |
AWS_WEB_IDENTITY_TOKEN_FILE | somente quando OS_CONNECTION_METHOD é serviceAccount | - | Arquivo de token de identidade da Web da AWS | - |
AWS_ACCESS_KEY_ID | somente quando OS_CONNECTION_METHOD são credenciais | - | ID da chave de acesso AWS para conexão canônica | - |
AWS_SECRET_ACCESS_KEY | somente quando OS_CONNECTION_METHOD são credenciais | - | Chave de acesso secreta da AWS para conexão canônica | - |
LOGGER_LEVEL | Não | debug | Quais registros serão exibidos | [ silent , error , warn , info , http , verbose , debug ] |
LOGGER_PRETTY | Não | true | Booleano para ativar/desativar a formatação de logs | true , false |
LOGGER_REDACT | Não | '' | Palavras especificadas removidas dos registros | - |
Para uma instância local do Docker OpenSearch, tudo o que você precisa fazer é:
export OS_CONNECTION_METHOD=local
Em vez de um método de conexão canônico da AWS, um recibo junto com seus valores seria:
export OS_HOST=
export OS_CONNECTION_METHOD=credentials
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
Depois de clonar o repositório:
cd os-cli
cp ./env/.env.development ./env
docker compose up -d
pnpm install
Pessoalmente, prefiro construir em uma janela de terminal e executar a versão compilada em uma janela separada, como esta:
pnpm build --watch
pnpm start:prod
ou node dist/os-cli.js
os-cli licenciado pelo MIT.