Contenido del curso
0:00/17:15
Cloud SDK vs Cloud Shell: cuándo usar cada uno
Suscríbete para ver másHola mundo en App Engine
Suscríbete para ver másManejo de versiones en App Engine
Suscríbete para ver másDominios personalizados en App Engine
Suscríbete para ver másConfiguración de certificados SSL y dominios personalizados
Suscríbete para ver másSubir código a Google Cloud Source Repositories
Suscríbete para ver másStackdriver Debugger
Suscríbete para ver másUso de Stack Driver Debugger en Google Cloud Platform
Suscríbete para ver másError Reporting
Suscríbete para ver másCómo filtrar logs con Stackdriver Logging
Suscríbete para ver másDetecta cuellos de botella con StackDriver Trace
Suscríbete para ver másAcelera la integración de Google Cloud Storage en App Engine estándar con autenticación robusta basada en service accounts. Verás cómo habilitar la Google Cloud Storage JSON API, configurar roles y scopes, listar objetos desde Python 2.7 y exponer enlaces en tu frontend para que tus usuarios descarguen documentos antes de solicitar un crédito.
¿Cómo preparar Google Cloud Storage y la API para tu proyecto?
Para distribuir documentos como beneficios, acuerdo principal y acuerdo secundario, se almacena todo en un bucket de Cloud Storage y se sirve al usuario mediante enlaces descargables. En App Engine estándar no se pueden hacer escrituras en disco ni en el sistema operativo, por eso Cloud Storage es la opción para archivos estáticos y documentos.
¿Por qué usar Cloud Storage en App Engine estándar?
¿Cómo autenticar con una service account y scopes adecuados?
Una service account permite consumir APIs sin flujos de autenticación complejos. Puedes usar la App Engine default service account o crear una nueva más restrictiva. Asigna el rol adecuado, por ejemplo Storage Admin, y descarga la clave en JSON. Datos clave del archivo: client_email y client_id para los flujos de autorización.
# Python 2.7 from oauth2client.service_account import ServiceAccountCredentials from googleapiclient.discovery import build # Scopes usados: lectura, escritura y acceso total (coloca aquí los tres scopes de Storage). SCOPES = [ 'scope-lectura', 'scope-escritura', 'scope-acceso-total', ] SERVICE_ACCOUNT_FILE = 'ruta/a/clave-service-account.json' BUCKET = 'tu-bucket' # Crear credenciales desde el archivo JSON de la service account credentials = ServiceAccountCredentials.from_json_keyfile_name( SERVICE_ACCOUNT_FILE, scopes=SCOPES ) # Construir el cliente de la API de Storage v1 service = build('storage', 'v1', credentials=credentials) def listar_objetos(bucket): request = service.objects().list(bucket=bucket) response = request.execute() return [item['name'] for item in response.get('items', [])] # Ejemplo de uso nombres = listar_objetos(BUCKET) for nombre in nombres: print(nombre)
¿Cómo estructurar el helper y pasar datos al frontend?
¿Cómo desplegar y validar el flujo en App Engine?
Con el proyecto listo, despliega una nueva versión y prueba el formulario de solicitud de crédito. Tras registrar al usuario, muestra el listado de documentos y permite abrir cada archivo desde el bucket.
gcloud app deploy app.yaml --project TU_PROYECTO --version 2 gcloud app browse
¿Quieres que profundicemos en scopes, roles o el diseño del helper para listar y exponer objetos? Comparte tus dudas o casos en los comentarios.