Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Curso de iniciación orientado a desarrolladores y perfiles DevOps que trabajan con ficheros de configuración — docker-compose.yml, pipelines de GitHub Actions, manifiestos de Kubernetes — y necesitan leerlos, escribirlos y depurarlos con criterio. El curso cubre los tipos implícitos de YAML y sus trampas más frecuentes, las diferencias de sintaxis con JSON, la lectura de estructuras anidadas siguiendo la jerarquía de indentación, la escritura de YAML válido, el diagnóstico y corrección de errores de parseo, y el ciclo de serialización con PyYAML. Al finalizar, el participante será capaz de producir YAML sintácticamente correcto, identificar la causa de un error de yaml.safe_load() y extraer con Python cualquier valor de un fichero de configuración real.
Al finalizar el curso, el participante será capaz de:
yes, on o 1.10: y el uso correcto de guiones en listas:, strings con caracteres especiales sin entrecomillar — hasta que el fichero pase yaml.safe_load() sin excepciónyaml.safe_load() y serializar un diccionario Python a YAML con yaml.dump(), entendiendo por qué safe_load se prefiere sobre load sin Loader explícitodocker-compose.yml real, identificando los servicios definidos, sus imágenes, los puertos expuestos y las variables de entorno, accediendo a los datos con Python y manejando con .get() las claves opcionalesTipos implícitos y diferencias con JSON Tipos escalares YAML: string, integer, float, boolean y null; inferencia de tipo en ausencia de comillas; casos trampa en YAML 1.1 — yes/no/on/off como booleanos, 1.10 como float, ~ como null; entrecomillar para forzar el tipo string; diferencias de sintaxis con JSON: indentación frente a llaves y corchetes, comentarios con #, claves sin comillas obligatorias; contextos de uso: YAML para configuración legible por humanos (Docker, GitHub Actions, Kubernetes), JSON para intercambio de datos en APIs
Lectura y escritura de YAML de bloque Jerarquía de indentación como estructura: niveles de anidamiento, mappings y sequences; acceso por clave en dicts Python y por índice en listas tras el parseo; ruta de acceso en estructuras con dos o más niveles de anidamiento; escritura de YAML válido con cuatro tipos distintos: string, integer, boolean, null y lista; espacio obligatorio tras :; guión más espacio para elementos de lista; version: "2.1" entrecomillado para evitar la inferencia como float; indentación consistente con espacios (prohibición explícita de tabulaciones)
Diagnóstico y corrección de errores frecuentes Tabulaciones en lugar de espacios — error found character '\t' that cannot start any token; espacio faltante tras : — interpretación errónea del par clave-valor; strings con caracteres especiales sin entrecomillar — :, #, [, { dentro de un valor provocan mapping values are not allowed here; booleanos Python (True, False) en lugar de los YAML (true, false); lectura del mensaje de error de PyYAML: línea, columna y tipo de error; proceso de corrección hasta que yaml.safe_load() no lanza excepción
PyYAML y ficheros de configuración reales yaml.safe_load() frente a yaml.load() sin Loader — riesgo de deserialización arbitraria con tags !!python/object; yaml.dump() con default_flow_style=False para producir YAML de bloque legible; correspondencia de tipos en ambas direcciones; estructura de un docker-compose.yml real: clave services, sub-claves image, ports y environment; ports como lista de strings "host:contenedor"; environment como mapping o lista de strings CLAVE=valor; extracción con Python de nombre de servicio, imagen y primer puerto; .get() para claves opcionales ausentes en algunos servicios
pip install pyyaml)docker-compose.yml de ejemplo proporcionado como fixture (no es necesario tener Docker instalado ni ejecutándose)Ninguno específico sobre formatos de datos o herramientas DevOps. El curso asume que el participante conoce los tipos básicos de Python — strings, enteros, booleanos, listas y diccionarios — y sabe leer y escribir funciones simples con variables y condicionales. No es necesario conocer Docker ni haber trabajado con Kubernetes o GitHub Actions: el objetivo del bloque 4 es leer el fichero como YAML, no entender la semántica de Docker. Es recomendable, aunque no obligatorio, haber completado el curso JSON01 — Formatos de datos: JSON previamente, ya que el bloque 1 establece la comparativa YAML-JSON dando por conocido el formato JSON.