Un service simple et configurable qui peut, par exemple, être utilisé pour tester les configurations d'orchestration des conteneurs (y compris le point de terminaison de contrôle de la santé).
Notez que les versions de simpleservice
, telles que 0.4.0
, utilisées dans les éléments suivants se réfèrent aux balises utilisées dans les images Docker respectives créées. Il n'y a pas de balises ou de versions en tant que telles dans ce repo github.
Contenu:
En plus des points de terminaison répertoriés ici, voir également la section Modifier le comportement d'exécution ci-dessous.
/env
[0.5.0+]Réponse de principe:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"env": "$DUMP_OF_ENVIRONMENT_VARS",
"version": "$VERSION"
}
Exemple de réponse:
HTTP/1.1 200 OK [5/99]
Content-Length: 2471
Content-Type: application/json
Date: Mon, 24 Apr 2017 12:38:47 GMT
Etag: "5ccb76cf1545f01fd1e0df4257ff6f8da19678e9"
Server: TornadoServer/4.3
{
"env": "{'USER': 'mhausenblas', ...}"
"version": "0.5.0"
}
/info
[0.5.0+]Réponse de principe:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"from": "$REMOTE_IP",
"host": ""$HOST:$PORT"",
"version": "$VERSION"
}
Exemple de réponse:
HTTP/1.1 200 OK
Content-Length: 67
Content-Type: application/json
Date: Mon, 24 Apr 2017 12:36:37 GMT
Etag: "9d09b0a126f68a0fddfec0f494e56fcab29eac15"
Server: TornadoServer/4.3
{
"from": "127.0.0.1",
"host": "localhost:9876",
"version": "0.5.0"
}
/health
[0.4.0+]Réponse de principe:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"healthy": true
}
Exemple de réponse:
HTTP/1.1 200 OK
Content-Length: 17
Content-Type: application/json
Date: Tue, 11 Oct 2016 17:17:21 GMT
Etag: "b40026a9bea9f5096f4ef55d3d23d6730139ff5e"
Server: TornadoServer/4.3
{
"healthy": true
}
/endpoint0
[0.3.0+]Réponse de principe:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"host": "$HOST:$PORT",
"result": "all is well",
"version": "$VERSION"
}
Exemple de réponse:
HTTP/1.1 200 OK
Content-Length: 71
Content-Type: application/json
Date: Tue, 11 Oct 2016 16:57:33 GMT
Etag: "ce18606c019e1d8c584b796d1fe7402d9767b9b6"
Server: TornadoServer/4.3
{
"host": "localhost:9876",
"result": "all is well",
"version": "0.4.0"
}
Pour l'exécution locale, Python 2.7.9
est requis. Vous pouvez ensuite exécuter simpleservice
comme:
# with defaults:
$ python simpleservice.py
# overwriting certain runtime settings:
$ HEALTH_MAX=200 VERSION=1.0 python simpleservice.py
Si vous le souhaitez, vous pouvez exécuter la version conteneurisée de simpleservice
sur votre machine locale (nécessite Docker installé):
$ docker run -P mhausenblas/simpleservice:0.5.0
Voir aussi les images du conteneur.
En définissant les variables d'environnement suivantes, vous pouvez modifier le comportement d'exécution de simpleservice
:
PORT0
... le port simpleservice
VERSION
... La valeur de version
renvoyée dans la réponse JSON du point de terminaison /endpoint0
HEALTH_MIN
et HEALTH_MAX
... le min. et max. retard en millisecondes que le point de terminaison /health
répond Une fois simpleservice
, vous pouvez l'invoquer comme ainsi (voici une exécution de service locale indiquée):
$ http localhost:9876/endpoint0
HTTP/1.1 200 OK
Content-Length: 71
Content-Type: application/json
Date: Tue, 11 Oct 2016 16:57:33 GMT
Etag: "ce18606c019e1d8c584b796d1fe7402d9767b9b6"
Server: TornadoServer/4.3
{
"host": "localhost:9876",
"result": "all is well",
"version": "0.4.0"
}
Et les journaux de service montreraient quelque chose comme:
~$ python simpleservice.py
This is a simple service in version v0.4.0 listening on port 9876
2016-10-11T05:57:33 INFO /endpoint0 serving from localhost:9876 has been invoked from 127.0.0.1 [at line 58]
2016-10-11T05:57:33 INFO 200 GET /endpoint0 (127.0.0.1) 1.10ms [at line 1946]
Notez que les points de terminaison disponibles dépendent de la version de simpleservice
tel que défini dans la première section de ces documents (AKA API).