CLI de OpenSearch integrada en Nest,
un marco Node.js progresivo para crear aplicaciones del lado del servidor eficientes y escalables.
El opensearch-cli oficial también está disponible
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
Si utiliza una imagen de OpenSearch local (docker) como la incluida en el archivo
docker-compose
asegúrese de configurar correctamente la opciónnetwork
y la variable de entornoOS_HOST
(OS_HOST=http://opensearch:9200) en el comando anterior (docker run --rm --env-file .env --network os-cli_default andreafspeziale/os-cli
)
Si usa la CLI dockerizada y necesita usar sus cargas útiles json como entradas, deberá montar la carpeta en el contexto de ejecución de la CLI (por ejemplo,
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 probar la CLI muy rápidamente usando npx
o después de instalarlo, puede generar OpenSearch localmente usando el archivo docker-compose
incluido en el repositorio:
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
o os-cli il
Al igual que el archivo docker-compose
también se incluyen algunas recetas en el repositorio:
npx @andreafspeziale/os-cli i cr -i books -f ./recipes/create-index.json
o os-cli i cr -i books -f ./recipes/create-index.json
npx @andreafspeziale/os-cli d cr -i books -f ./recipes/create-documents.json
o os-cli d cr -i books -f ./recipes/create-documents.json
npx @andreafspeziale/os-cli dq -i books -f ./recipes/query.json
o os-cli dq -i books -f ./recipes/query.json
Para el modo proxy, consulte aws-sigv4-proxy
La CLI aprovecha las variables de entorno para configurar las opciones de conexión y registro solo una vez.
Nombre | Requerido | Por defecto | Descripción | Valores |
---|---|---|---|---|
SO_HOST | cuando OS_CONNECTION_METHOD NO es local o proxy | http://localhost:(9200 or 8080) | Host de conexión OpenSearch | - |
OS_CONNECTION_METHOD | Sí | - | ¿Cómo desea conectarse a OpenSearch? | [ local , proxy , serviceAccount , credentials ] |
AWS_REGION | sólo cuando OS_CONNECTION_METHOD NO es local o proxy | - | Región de conexión de OpenSearch AWS | - |
AWS_ROLE_ARN | sólo cuando OS_CONNECTION_METHOD es serviceAccount | - | ARN de rol de AWS para asumir la conexión de rol | - |
AWS_WEB_IDENTITY_TOKEN_FILE | sólo cuando OS_CONNECTION_METHOD es serviceAccount | - | Archivo de token de identidad web de AWS | - |
AWS_ACCESS_KEY_ID | sólo cuando OS_CONNECTION_METHOD son credenciales | - | ID de clave de acceso de AWS para conexión canónica | - |
AWS_SECRET_ACCESS_KEY | sólo cuando OS_CONNECTION_METHOD son credenciales | - | Clave de acceso secreta de AWS para conexión canónica | - |
LOGGER_LEVEL | No | debug | Qué registros se mostrarán | [ silent , error , warn , info , http , verbose , debug ] |
LOGGER_PRETTY | No | true | Booleano para habilitar/deshabilitar el formato de registros | true , false |
LOGGER_REDACT | No | '' | Se eliminaron palabras específicas de los registros. | - |
Para una instancia local de OpenSearch de Docker, todo lo que necesita hacer es:
export OS_CONNECTION_METHOD=local
En lugar de un método de conexión canónico de AWS, un recibo junto con sus valores sería:
export OS_HOST=
export OS_CONNECTION_METHOD=credentials
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
Después de clonar el repositorio:
cd os-cli
cp ./env/.env.development ./env
docker compose up -d
pnpm install
Personalmente prefiero compilar en una ventana de terminal y ejecutar la versión compilada en una ventana separada, así:
pnpm build --watch
pnpm start:prod
o node dist/os-cli.js
os-cli con licencia MIT.