OpenSearch CLI, встроенный в Nest,
прогрессивная платформа Node.js для создания эффективных и масштабируемых серверных приложений.
Официальный opensearch-cli также доступен.
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
Если вы используете локальный образ OpenSearch (docker), подобный тому, который включен в файл
docker-compose
обязательно установите правильно параметрnetwork
и переменную envOS_HOST
(OS_HOST=http://opensearch:9200) в приведенной выше команде (docker run --rm --env-file .env --network os-cli_default andreafspeziale/os-cli
)
Если вы используете докеризованный CLI и вам необходимо использовать полезные данные json в качестве входных данных, вам необходимо смонтировать папку в контекст выполнения CLI (например,
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
)
Чтобы очень быстро попробовать CLI с помощью npx
или после его установки, вы можете запустить OpenSearch локально, используя файл docker-compose
включенный в репозиторий:
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
или os-cli il
Как и файл docker-compose
в репозиторий также включено несколько рецептов:
npx @andreafspeziale/os-cli i cr -i books -f ./recipes/create-index.json
или os-cli i cr -i books -f ./recipes/create-index.json
npx @andreafspeziale/os-cli d cr -i books -f ./recipes/create-documents.json
или os-cli d cr -i books -f ./recipes/create-documents.json
npx @andreafspeziale/os-cli dq -i books -f ./recipes/query.json
или os-cli dq -i books -f ./recipes/query.json
Для режима прокси проверьте aws-sigv4-proxy
Интерфейс командной строки использует переменные среды для однократной установки параметров подключения и ведения журнала.
Имя | Необходимый | По умолчанию | Описание | Ценности |
---|---|---|---|---|
ОС_ХОСТ | когда OS_CONNECTION_METHOD НЕ является локальным или прокси-сервером | http://localhost:(9200 or 8080) | Хост подключения OpenSearch | - |
ОС_CONNECTION_METHOD | Да | - | Как вы хотите подключиться к OpenSearch | [ local , proxy , serviceAccount , credentials ] |
AWS_REGION | только тогда, когда OS_CONNECTION_METHOD НЕ является локальным или прокси-сервером | - | Регион подключения OpenSearch AWS | - |
AWS_ROLE_ARN | только когда OS_CONNECTION_METHOD имеет значение serviceAccount | - | Роль AWS ARN для подключения к предполагаемой роли | - |
AWS_WEB_IDENTITY_TOKEN_FILE | только когда OS_CONNECTION_METHOD имеет значение serviceAccount | - | Файл токена веб-идентификации AWS | - |
AWS_ACCESS_KEY_ID | только когда OS_CONNECTION_METHOD является учетными данными | - | Идентификатор ключа доступа AWS для канонического подключения | - |
AWS_SECRET_ACCESS_KEY | только когда OS_CONNECTION_METHOD является учетными данными | - | Секретный ключ доступа AWS для канонического подключения | - |
LOGGER_LEVEL | Нет | debug | Какие журналы будут отображаться | [ silent , error , warn , info , http , verbose , debug ] |
LOGGER_PRETTY | Нет | true | Логическое значение для включения/выключения форматирования журналов. | true , false |
LOGGER_REDACT | Нет | '' | Удалены указанные слова из журналов | - |
Для локального экземпляра OpenSearch докера все, что вам нужно сделать, это:
export OS_CONNECTION_METHOD=local
Вместо этого для канонического метода подключения AWS квитанция вместе с вашими значениями будет выглядеть так:
export OS_HOST=
export OS_CONNECTION_METHOD=credentials
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
После клонирования репозитория:
cd os-cli
cp ./env/.env.development ./env
docker compose up -d
pnpm install
Лично я предпочитаю выполнять сборку в окне терминала и запускать скомпилированную версию в отдельном окне, например:
pnpm build --watch
pnpm start:prod
или node dist/os-cli.js
os-cli имеет лицензию MIT.