2016-10-06 1 views
2

Une exigence principale de mon application est la possibilité de déployer automatiquement ArangoDB avec toutes les collections, graphiques, données et API. L'API HTTP et les divers wrappers ont été suffisants pour cela jusqu'à présent, mais je n'ai pas réussi à trouver une API pour déployer les services Foxx. Est-il possible de créer et déployer un service Foxx via l'API RESTful ou via l'un des wrappers? Jusqu'à présent, la seule façon que je connaisse pour créer un service Foxx est via l'interface web.ArangoDB: Création d'un nouveau service Foxx via l'API

J'ai trouvé this question ce qui me porte à croire que c'est possible, mais je ne sais pas comment spécifier l'emplacement Git du service Foxx. Pourriez-vous fournir des instructions pour créer un service Foxx sans l'interface utilisateur Web et répertorier les paramètres possibles?

+0

Le gestionnaire Foxx est-il une option? 'foxx-manager install option1 = valeur1' – CoDEmanX

+0

Je préférerais quelque chose qui pourrait être implémenté RESTfully ou via Python sans dépendance sur ArangoSH. Mon équipe travaille sur plusieurs plateformes et tout le monde n'a pas installé ArangoSH, donc les CLI ne sont pas idéaux. Tout est scripté, et il est très difficile de faire fonctionner correctement les scripts sur plusieurs plateformes lorsqu'ils ont besoin d'appeler une CLI, car accéder à bash et accéder à cmd est assez différent de Python. –

+0

Vous pouvez jeter un oeil à mon projet https://foxx-framework.com J'utilise un script pour déployer tous mes services en utilisant foxx-manager – solisoft

Répondre

3

Pour installer un service Foxx via l'API REST, vous pouvez utiliser le point de terminaison HTTP PUT /_admin/foxx/install.

Un corps JSON doit être envoyé, avec les attributs mount et appInfo. mount doit contenir le point de montage (doit commencer par une barre oblique). appInfo est l'application à monter. Il peut contenir le nom de fichier précédemment renvoyé par le serveur à partir de l'appel à /_api/upload, par ex.

{ 
    "appInfo" : "uploads/tmp-30573-2010894858", 
    "mount" : "/my-mount-point" 
} 

installation à partir d'URL à distance

Vous pouvez également installer un service Foxx à partir d'un fichier zip disponible via HTTP (S) à partir d'un serveur externe. Vous pouvez inclure le nom d'utilisateur et mot de passe pour HTTP Basic Auth nécessaire:

{ 
    "appInfo" : "https://user:[email protected]/my-service.zip", 
    "mount" : "/my-mount-point" 
} 

installer à partir de GitHub

Vous pouvez également installer un service Foxx à partir d'un dépôt GitHub, si le dépôt est accessible au public, par exemple

{ 
    "appInfo" : "git:arangodb-foxx/demo-hello-foxx:master", 
    "mount" : "/my-mount-point" 
} 

Dans les coulisses, ArangoDB se traduira par la demande dans une URL régulière pour le faisceau zip GitHub fournit.

installer à partir du système de fichiers local

Vous pouvez également installer un service Foxx à partir d'un fichier zip ou un répertoire sur le système de fichiers local:

{ 
    "appInfo" : "/path/to/foxx-service.zip", 
    "mount" : "/my-mount-point" 
} 

Cela fonctionne aussi avec le répertoire, mais ArangoDB créera un fichier zip temporaire pour vous dans ce cas.

+0

Bon départ! Merci! Plus précisément, comment puis-je spécifier que le service doit provenir d'un référentiel git? –

+0

a mis à jour ma réponse – mpv1989

+0

Existe-t-il un moyen de faire ce travail avec Git SSH ou HTTPS? Le référentiel est dans un GitLab auto-hébergé et sécurisé. –