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.pyper 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
