Un servicio simple y configurable que se puede utilizar, por ejemplo, para probar las configuraciones de orquestación de contenedores (incluido el punto final de verificación de salud).
Tenga en cuenta que las versiones de simpleservice
, como 0.4.0
, utilizadas en las siguientes se refieren a las etiquetas utilizadas en las imágenes de Docker respectivas creadas. No hay etiquetas o lanzamientos como tales en este repositorio de GitHub.
Contenido:
Además de los puntos finales enumerados aquí, consulte también la sección de comportamiento de cambio de tiempo de ejecución a continuación.
/env
[0.5.0+]Respuesta de principios:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"env": "$DUMP_OF_ENVIRONMENT_VARS",
"version": "$VERSION"
}
Respuesta de ejemplo:
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+]Respuesta de principios:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"from": "$REMOTE_IP",
"host": ""$HOST:$PORT"",
"version": "$VERSION"
}
Respuesta de ejemplo:
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+]Respuesta de principios:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"healthy": true
}
Respuesta de ejemplo:
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+]Respuesta de principios:
HTTP/1.1 200 OK
$HEADER_FIELDS
{
"host": "$HOST:$PORT",
"result": "all is well",
"version": "$VERSION"
}
Respuesta de ejemplo:
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"
}
Para la ejecución local, se requiere Python 2.7.9
. Luego puedes ejecutar simpleservice
así:
# with defaults:
$ python simpleservice.py
# overwriting certain runtime settings:
$ HEALTH_MAX=200 VERSION=1.0 python simpleservice.py
Si le apetece, puede ejecutar la versión contenedor de simpleservice
en su máquina local (requiere Docker instalado):
$ docker run -P mhausenblas/simpleservice:0.5.0
Consulte también las imágenes del contenedor.
Al establecer las siguientes variables de entorno, puede cambiar el comportamiento de tiempo de ejecución de simpleservice
:
PORT0
... El puerto simpleservice
está sirviendoVERSION
... el valor de version
devuelta en la respuesta JSON del punto final /endpoint0
HEALTH_MIN
y HEALTH_MAX
... el min. y max. retraso en milisegundos que responde el punto final /health
Una vez que se inicia simpleservice
, puede invocarlo como (aquí hay una ejecución del servicio local que se muestra):
$ 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"
}
Y los registros de servicio mostrarían algo como:
~$ 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]
Tenga en cuenta que los puntos finales disponibles dependen de la versión de simpleservice
como se define en la primera sección de este documento (también conocido como API).