Commit 7b74ad72 authored by DANIEL DIAZ SANCHEZ's avatar DANIEL DIAZ SANCHEZ
Browse files

Update README.md

parent e59944ab
......@@ -2,15 +2,15 @@
### Aplicaciones y librerías a utilizar
* SDK de Google Cloud que puedes descargar como hemos hecho anteriormente en la [Práctica 1](https://gitlab.gast.it.uc3m.es/distributed-computing-assignements/1-app-engine-servlet-jsp/-/blob/master/eclipse-google-installation.md). *Sigue los pasos unicamente de Google Cloud SDK* no es necesario que descargues Eclipse.
* SDK de Google Cloud que puedes descargar como hemos hecho anteriormente en la [Práctica 1](https://gitlab.gast.it.uc3m.es/distributed-computing-assignements/1-app-engine-servlet-jsp/-/blob/master/eclipse-google-installation.md). **Sigue los pasos unicamente de Google Cloud SDK** no es necesario que descargues Eclipse.
* Python 3 que debería estar instalado en las máquinas del laboratorio
* Por problemas de direccionamiento y presencia de un NAT en Eduroam *se recomienda usar las máquinas de laboratorio en lugar del portatil personal*
* Por problemas de direccionamiento y presencia de un NAT en Eduroam **se recomienda usar las máquinas de laboratorio en lugar del portatil personal**
## Configurar el entorno
En primer lugar, debes descargar el SDK en `/tmp` como se indica en los requisitos. Lo usaremos más adelante.
Al trabajar con Python, deberemos crear un *entorno virtual*, para ello:
Al trabajar con Python, deberemos crear un **entorno virtual**, para ello:
1. Crear la estructura de directorios desde tu cuenta. Abre un terminal y teclea (la máquina desde la que ha sido probada se llama vit131, en tu caso será otra máquina):
......@@ -37,7 +37,7 @@ labgcd@vit131:~/cdist$
Donde `labgcd`es tu login (en vuestro caso 00XXXX), `vit131` la máquina y `~/cdist` el directorio en el que estáis
3. Activar el entorno. *Recuerda que es necesario usar bash para que funcione*
3. Activar el entorno. **Recuerda que es necesario usar bash para que funcione**
```
labgcd@vit131:~/cdist$ source myenv/bin/activate
......@@ -95,7 +95,7 @@ if __name__ == '__main__':
```
Analizamos el código (aunque habla por si sólo):
Analizamos el código (aunque habla por sí sólo):
1. Importar paquetes y crear la aplicación.
```python
......@@ -120,7 +120,7 @@ def handle_person():
return "Peticion GET a /persona"
```
4. Responder a la ruta `http://host/estructurada` con un objeto JSON. En este caso, creamos un diccionario en python llamado `libro` con los campos de `titulo` y `autor`. Hacemos uso de `jsonify` para generar el objeto Json a partir de libro. Observa, cómo al devolver algo, puede indicarse el código HTTP de respuesta (en este caso con `,200`) sabiendo que, si no se incluye, se tratará de `200` siempre que no haya un error. Otro aspecto a destacar es que Flask detecta que el resultado a devolver es JSON y cambiará la cabecera `Content-Type` de HTTP a `application/json` automáticamente.
4. Responder a la ruta `http://host/estructurada` con un objeto JSON. En este caso, creamos un diccionario en python llamado `libro` con los campos de `titulo` y `autor`. Hacemos uso de `jsonify` para generar el objeto Json a partir de libro. Observa, cómo al devolver algo, puede indicarse el código HTTP de respuesta (en este caso con `,200`) sabiendo que, si no se incluye, se tratará de `200` siempre que no haya un error. Otro aspecto que destacar es que Flask detecta que el resultado a devolver es JSON y cambiará la cabecera `Content-Type` de HTTP a `application/json` automáticamente.
```python
@app.route("/estructurada", methods=['GET'])
def handle_estructurada():
......@@ -378,10 +378,11 @@ En GAE no podemos usar una base de datos SQL, por lo que tendremos que crear una
<img src="img/creacion_sql_3.png" width="500px"/>
5. Como identificador de la instancia usaremos `cdistrest`, dale una contraseña o *apunta* la que te genera google (la llamaremos PASSWORD_ROOT). Usa la versión MySQL 5.7. Utliza la misma zona que en la que creaste tu aplicaición App Engine (Si no lo recuerdas, abre otra ventana con Google cloud console, ve a App engine > Panel y podrás verlo )
5. Como identificador de la instancia usaremos `cdistrest`, dale una contraseña o **apunta** la que te genera google (la llamaremos PASSWORD_ROOT). Usa la versión MySQL 5.7. Utliza la misma zona que en la que creaste tu aplicaición App Engine (Si no lo recuerdas, abre otra ventana con Google cloud console, ve a `App engine > Panel` y podrás verlo )
**NOTA** Es posible que te indique que para crear la instancia de base de datos debes **Habilitar la API de Compute Engine**, habilitalo y vuelve a intentarlo.
<img src="img/creacion_sql_4.png" width="500px"/>
*NOTA* Es posible que te indique que para crear la instancia de base de datos debes *Habilitar la API de Compute Engine*, habilitalo y vuelve a intentarlo.
6. Pulsa crear instancia y espera unos minutos hasta que se cree la instancia.
......@@ -438,7 +439,7 @@ MySQL [(none)]>
```
Cuando hayamos conectado, en primer lugar creamos una base de datos llamada `cdistrest` y comprobamos que se ha creado:
Cuando hayamos conectado, en primer lugar, creamos una base de datos llamada `cdistrest` y comprobamos que se ha creado:
```
MySQL [(none)]> CREATE DATABASE cdistrest;
Query OK, 1 row affected (0.044 sec)
......@@ -582,11 +583,11 @@ if __name__ == '__main__':
### Creación de fichero de despliegue en GAE y para prueba en local
Para poder desplegar la aplicación en GAE, es necesario crear un fichero llamado `app.yaml` donde estará la información de despliegue de la aplicación REST. Además, en ese fichero meteremos la información relativa a la base de datos. Además crearemos un fichero que nos permita probar el interfaz REST en local, usando la base de datos de Google.
Para poder desplegar la aplicación en GAE, es necesario crear un fichero llamado `app.yaml` donde estará la información de despliegue de la aplicación REST. En ese fichero meteremos la información relativa a la base de datos. Además, crearemos un fichero que nos permita probar el interfaz REST en local, usando la base de datos de Google.
#### Creación del fichero de despliegue app.yaml
En la carpeta `~/cdist/rest` creamos un fichero de despligue llamado `app.yaml` usando Atom o nuestor editor preferido con el siguiente contenido (ojo sustituye PASSWORD_CDIST y IP_BBDD por su valor que deberás tener apuntado, el nombre de la conexión puedes sacarla del menu conexion de tu base de datos, en mi caso es uc3m-it-2109-15397-teachers:europe-central2:cdistrest):
En la carpeta `~/cdist/rest` creamos un fichero de despligue llamado `app.yaml` usando Atom o nuestor editor preferido con el siguiente contenido (ojo sustituye PASSWORD_CDIST y IP_BBDD por su valor que deberás tener apuntado, el nombre de la conexión puedes sacarla del menu conexion de tu base de datos, en mi caso es uc3m-it-2109-15397-teachers:europe-central2:cdistrest):
```yaml
runtime: python39
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment