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

  1. Accedeix a la Consola de Google Cloud.
  2. Crea un nou projecte o selecciona un projecte existent.
  3. Assegura't que la facturació estigui activada per al projecte.

Pas 2: Instal·lar el SDK de Google Cloud

  1. Descarrega i instal·la el Google Cloud SDK.
  2. Autentica't amb el teu compte de Google:
    gcloud auth login
    
  3. 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

my-app/
├── app.yaml
├── main.py
└── requirements.txt

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

Flask==2.0.1
gunicorn==20.1.0

Desplegament de l'aplicació

  1. Navega fins al directori del projecte:
    cd my-app
    
  2. Desplega l'aplicació a App Engine:
    gcloud app deploy
    
  3. Accedeix a l'aplicació desplegada:
    gcloud app browse
    

Exercicis pràctics

Exercici 1: Crear una aplicació de salutacions

  1. Modifica el codi de main.py per afegir una ruta que accepti un nom com a paràmetre i retorni una salutació personalitzada.
  2. 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

  1. Crea una instància de Cloud SQL i una base de dades.
  2. 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.

© Copyright 2024. Tots els drets reservats