Introducció a App Engine
Google App Engine és una plataforma com a servei (PaaS) que permet als desenvolupadors construir i desplegar aplicacions web i mòbils a escala. App Engine gestiona automàticament la infraestructura, permetent als desenvolupadors centrar-se en el codi.
Característiques clau d'App Engine
- Escalabilitat automàtica: App Engine escala automàticament les aplicacions en funció del trànsit.
- Entorns d'execució flexibles: Suporta diversos llenguatges de programació com Python, Java, Node.js, PHP, Ruby, Go, etc.
- Integració amb altres serveis de GCP: Facilita la integració amb altres serveis com Cloud SQL, Cloud Storage, BigQuery, etc.
- Gestió de versions: Permet gestionar diferents versions de l'aplicació i fer desplegaments sense interrupcions.
Configuració inicial
Pas 1: Crear un projecte a GCP
- Accedeix a la Consola de Google Cloud.
- Crea un nou projecte o selecciona un projecte existent.
- Assegura't que la facturació estigui activada per al projecte.
Pas 2: Instal·lar el SDK de Google Cloud
- Descarrega i instal·la el Google Cloud SDK.
- Autentica't amb el teu compte de Google:
gcloud auth login
- Configura el projecte per defecte:
gcloud config set project [PROJECT_ID]
Desenvolupament d'una aplicació amb App Engine
Exemple pràctic: Aplicació web en Python
Estructura del projecte
app.yaml
Aquest fitxer defineix la configuració de l'aplicació per a App Engine.
runtime: python39 entrypoint: gunicorn -b :$PORT main:app instance_class: F2 automatic_scaling: target_cpu_utilization: 0.65 min_instances: 1 max_instances: 5
main.py
Aquest fitxer conté el codi de l'aplicació.
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)
requirements.txt
Aquest fitxer especifica les dependències de l'aplicació.
Desplegament de l'aplicació
- Navega fins al directori del projecte:
cd my-app
- Desplega l'aplicació a App Engine:
gcloud app deploy
- Accedeix a l'aplicació desplegada:
gcloud app browse
Exercicis pràctics
Exercici 1: Crear una aplicació de salutacions
- Modifica el codi de
main.py
per afegir una ruta que accepti un nom com a paràmetre i retorni una salutació personalitzada. - Desplega l'aplicació i comprova que funcioni correctament.
Solució
from flask import Flask, request app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' @app.route('/greet') def greet(): name = request.args.get('name', 'Guest') return f'Hello, {name}!' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)
Exercici 2: Integrar amb Cloud SQL
- Crea una instància de Cloud SQL i una base de dades.
- Modifica l'aplicació per connectar-se a la base de dades i emmagatzemar salutacions.
Solució
import os import sqlalchemy from flask import Flask, request app = Flask(__name__) # Configuració de la connexió a Cloud SQL db_user = os.environ.get('DB_USER') db_pass = os.environ.get('DB_PASS') db_name = os.environ.get('DB_NAME') db_connection_name = os.environ.get('DB_CONNECTION_NAME') pool = sqlalchemy.create_engine( sqlalchemy.engine.url.URL( drivername='mysql+pymysql', username=db_user, password=db_pass, database=db_name, query={ 'unix_socket': f'/cloudsql/{db_connection_name}' } ) ) @app.route('/') def hello(): return 'Hello, World!' @app.route('/greet', methods=['POST']) def greet(): name = request.form['name'] with pool.connect() as conn: conn.execute( 'INSERT INTO greetings (name) VALUES (%s)', (name,) ) return f'Hello, {name}!' if __name__ == '__main__': app.run(host='0.0.0.0', port=8080)
Resum
En aquesta secció, hem après què és Google App Engine i com configurar una aplicació bàsica utilitzant Python. Hem vist com desplegar l'aplicació a App Engine i com integrar-la amb altres serveis de GCP com Cloud SQL. Els exercicis pràctics proporcionats ajuden a reforçar els conceptes apresos i a desenvolupar habilitats pràctiques en l'ús d'App Engine.
Curs de Google Cloud Platform (GCP)
Mòdul 1: Introducció a Google Cloud Platform
- Què és Google Cloud Platform?
- Configurar el teu compte de GCP
- Visió general de la consola de GCP
- Comprendre projectes i facturació
Mòdul 2: Serveis bàsics de GCP
Mòdul 3: Xarxes i seguretat
Mòdul 4: Dades i analítica
Mòdul 5: Aprenentatge automàtic i IA
Mòdul 6: DevOps i monitoratge
- Cloud Build
- Repositoris de codi font al núvol
- Funcions al núvol
- Monitoratge de Stackdriver
- Gestor de desplegament al núvol
Mòdul 7: Temes avançats de GCP
- Híbrid i multi-núvol amb Anthos
- Computació sense servidor amb Cloud Run
- Xarxes avançades
- Millors pràctiques de seguretat
- Gestió i optimització de costos