CLI OpenSearch intégrée à Nest,
un framework Node.js progressif pour créer des applications côté serveur efficaces et évolutives.
Le opensearch-cli officiel est également 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 vous utilisez une image OpenSearch locale (docker) comme celle incluse dans le fichier
docker-compose
, assurez-vous de définir correctement l'optionnetwork
et la variable d'environnementOS_HOST
(OS_HOST=http://opensearch:9200) dans la commande ci-dessus (docker run --rm --env-file .env --network os-cli_default andreafspeziale/os-cli
)
Si vous utilisez la CLI dockerisée et que vous devez utiliser vos charges utiles json comme entrées, vous devrez monter le dossier dans le contexte d'exécution de la CLI (par exemple
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
)
Pour goûter la CLI très rapidement à l'aide npx
ou après l'avoir installé, vous pouvez lancer OpenSearch localement en utilisant le fichier docker-compose
inclus dans le référentiel :
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
Comme le fichier docker-compose
certaines recettes sont également incluses dans le référentiel :
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
Pour le mode proxy, vérifiez aws-sigv4-proxy
La CLI exploite les variables d'environnement afin de définir les options de connexion et de journalisation une seule fois.
Nom | Requis | Défaut | Description | Valeurs |
---|---|---|---|---|
OS_HOST | lorsque OS_CONNECTION_METHOD n'est PAS local ou proxy | http://localhost:(9200 or 8080) | Hôte de connexion OpenSearch | - |
OS_CONNECTION_METHOD | Oui | - | Comment vous souhaitez vous connecter à OpenSearch | [ local , proxy , serviceAccount , credentials ] |
AWS_REGION | uniquement lorsque OS_CONNECTION_METHOD n'est PAS local ou proxy | - | Région de connexion AWS OpenSearch | - |
AWS_ROLE_ARN | uniquement lorsque OS_CONNECTION_METHOD est serviceAccount | - | ARN du rôle AWS pour assumer la connexion au rôle | - |
AWS_WEB_IDENTITY_TOKEN_FILE | uniquement lorsque OS_CONNECTION_METHOD est serviceAccount | - | Fichier de jeton d'identité Web AWS | - |
AWS_ACCESS_KEY_ID | uniquement lorsque OS_CONNECTION_METHOD correspond aux informations d'identification | - | ID de clé d'accès AWS pour la connexion canonique | - |
AWS_SECRET_ACCESS_KEY | uniquement lorsque OS_CONNECTION_METHOD correspond aux informations d'identification | - | Clé d'accès secrète AWS pour la connexion canonique | - |
LOGGER_LEVEL | Non | debug | Quels journaux seront affichés | [ silent , error , warn , info , http , verbose , debug ] |
LOGGER_PRETTY | Non | true | Booléen pour activer/désactiver le formatage des journaux | true , false |
LOGGER_REDACT | Non | '' | Mots spécifiés supprimés des journaux | - |
Pour une instance OpenSearch locale Docker, tout ce que vous avez à faire est :
export OS_CONNECTION_METHOD=local
Au lieu de cela, pour une méthode de connexion AWS canonique, un reçu accompagné de vos valeurs serait :
export OS_HOST=
export OS_CONNECTION_METHOD=credentials
export AWS_REGION=
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
Après avoir cloné le dépôt :
cd os-cli
cp ./env/.env.development ./env
docker compose up -d
pnpm install
Personnellement, je préfère construire dans une fenêtre de terminal et exécuter la version compilée dans une fenêtre séparée comme ceci :
pnpm build --watch
pnpm start:prod
ou node dist/os-cli.js
os-cli sous licence MIT.