-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake_es_files.py
More file actions
84 lines (64 loc) · 4.03 KB
/
Copy pathmake_es_files.py
File metadata and controls
84 lines (64 loc) · 4.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import glob
import os
titles_es = {
"01_gcp_setup.md": "01 — Configuración del Proyecto GCP",
"02_artifact_registry.md": "02 — Artifact Registry",
"03_cloud_sql.md": "03 — Cloud SQL (Base de Datos PostgreSQL)",
"04_secret_manager.md": "04 — Secret Manager",
"05_cloud_storage.md": "05 — Cloud Storage (Archivos Estáticos y Multimedia)",
"06_dockerfile.md": "06 — Dockerfile",
"07_first_deploy.md": "07 — Primer Despliegue",
"08_domain_ssl.md": "08 — Dominio Personalizado y SSL",
"09_workload_identity.md": "09 — Workload Identity Federation (Autenticación sin Claves)",
"10_github_actions.md": "10 — Pipeline CI/CD con GitHub Actions",
"11_quick_reference.md": "11 — Referencia Rápida",
"index.md": "Guía de Despliegue de Django en GCP"
}
index_español = """---
description: "Una guía completa para implementar una aplicación web Django en Google Cloud Platform usando Cloud Run, Cloud SQL y GitHub Actions."
image: assets/social-banner.png
---
# Guía de despliegue de Django en GCP
¡Bienvenido! Esta guía centrada en la práctica te enseñará exactamente cómo tomar un proyecto local de Django y desplegarlo profesionalmente en Google Cloud Platform utilizando patrones de infraestructura modernos y altamente escalables.
Al final de estos capítulos, habrás construido una canalización CI/CD completamente automatizada desde cero. Cada vez que subas código nuevo a GitHub, tu aplicación se compilará, se probará automáticamente y se publicará en internet al instante, sin intervención manual.
---
## Qué se despliega
Aunque usamos una aplicación web genérica de Django como base, **los conceptos principales que aprenderás aquí se aplican a casi cualquier framework web moderno**.
Tu aplicación final se ejecutará como un **contenedor Docker** protegido y alojado en **Cloud Run**, el potente motor serverless de Google. Esto significa que tu aplicación escalará sin esfuerzo para manejar picos de tráfico enormes y bajará su escala hasta cero cuando esté inactiva para ahorrarte dinero.
## Arquitectura

**El flujo automatizado:** Cuando fusionas una nueva característica en la rama `main`, GitHub Actions se activa automáticamente. Utiliza Workload Identity para iniciar sesión en tu cuenta de forma segura. Limpiamente empaqueta tu código en una nueva imagen Docker y le indica a Cloud Run que despliegue la nueva versión en segundos.
## Capítulos
1. [Configuración del Proyecto GCP](01_gcp_setup.md)
2. [Artifact Registry](02_artifact_registry.md)
3. [Cloud SQL — Base de datos](03_cloud_sql.md)
4. [Secret Manager](04_secret_manager.md)
5. [Cloud Storage](05_cloud_storage.md)
6. [Dockerfile](06_dockerfile.md)
7. [Primer Despliegue](07_first_deploy.md)
8. [Dominio Personalizado](08_domain_ssl.md)
9. [Workload Identity](09_workload_identity.md)
10. [GitHub Actions (CI/CD)](10_github_actions.md)
11. [Referencia Rápida](11_quick_reference.md)
"""
for path in glob.glob("docs/*.md"):
if path.endswith(".es.md"):
continue
basename = os.path.basename(path)
new_path = path.replace(".md", ".es.md")
if basename == "index.md":
with open(new_path, "w", encoding="utf-8") as f:
f.write(index_español)
continue
with open(path, "r", encoding="utf-8") as f:
content = f.read()
# Base naive translations for structural english words to spanish
content = content.replace("← [Previous:", "← [Anterior:")
content = content.replace("Next:", "Siguiente:")
content = content.replace("current chapter", "capítulo actual")
content = content.replace("This chapter", "Este capítulo")
content = content.replace("Navigation", "Navegación")
# Update internal nav links inside the es.md pointing to other chapters to automatically resolve
# Note: mkdocs static i18n seamlessly resolves original link names like 01_gcp_setup.md directly to the .es.md output HTML if available!
with open(new_path, "w", encoding="utf-8") as f:
f.write(content)