Ok, si Yaml no es un lenguaje de marcado, ¿qué es??
Como se mencionó, YAML es un lenguaje serializado de datos desarrollado para mejorar la legibilidad humana mediante la sangría y las estructuras de datos nativos. Piense en ello como un superconjunto estricto de JSON o un cruce entre JSON y XML. Este híbrido le permite hacer lo que JSON puede y más características adicionales.
El propósito de este tutorial es presentarle a Yaml, brindarle una guía sobre la sintaxis del idioma, proporcionarle herramientas rápidas para trabajar con YAML y enseñarle cómo usarlo para archivos de configuración y más.
Cómo escribir yaml
Escribir yaml es increíblemente intuitivo (supongo que ese es el punto), ya que utiliza la sintaxis del par de valores clave. Por lo tanto, es como un diccionario en Python. Sin embargo, a diferencia de Python, YAML no permite el espacio de pestaña; usa espacios.
La sintaxis general es:
valor clavePara comenzar un nuevo documento YAML, comenzamos con tres guiones que indican el comienzo de un nuevo archivo.
Esta característica le permite tener múltiples documentos separados por los guiones en un solo archivo.
Crear un archivo con un .Extensión Yaml y agregue los siguientes contenidos.
---Como puede ver en el archivo anterior, cada documento en YAML comienza con tres puntos, seguido de los datos almacenados en pares de valor clave.
Instale un enlace Yaml
Antes de continuar más, confirmemos que lo que tenemos es un archivo YAML válido. Para hacer esto, necesitamos instalar un enlace Yaml.
Un linter es una herramienta que verifica y notifica al desarrollador de errores de programación, como errores de sintaxis y construcciones no válidas. Por ejemplo, le permite verificar la sintaxis válida de un archivo.
En nuestro ejemplo, usaremos Yamllint.
Para instalar, use apt como:
actualización de sudo apt-getUna vez instalado, podemos ejecutar el enlace contra el archivo usando el comando
echo -e 'Esta es una sintaxis válida: Yaml' | muestra de Yamllint.yamlSi el archivo contiene una sintaxis yaml válida, no nos da ninguna salida.
Ahora, intente agregar espacios dentro del archivo YAML o agregue un solo tablero en la parte inferior como:
---Si ejecutamos el enlace con este archivo, se muestran los errores, como se muestra a continuación:
muestra.yamlNOTA: Al igual que los diccionarios en Python y estructuras de datos similares en varios lenguajes de programación, los pares de valor clave en un documento YAML deben ser únicos.
Tipos de datos YAML
Yaml admite varias formas de representar datos. Incluyen:
#: Tipos escalar
Estos son el tipo de datos más común en Yaml. Están en forma de pares de valor clave, como se muestra en el ejemplo anterior.
Los valores en un par pueden ser cualquier tipo como cadena, números que incluyen hexadecimal, enteros y tal.
#: Cuerdas
Yaml también admite cadenas encerradas en cotizaciones simples o dobles. Este no es un requisito ya que el analizador Yaml lo resolverá, pero puede ser útil, especialmente en cuerdas con personajes de escape.
Los siguientes son ejemplos de cadenas válidas en YAML.
---NOTA: Asegúrese de cerrar las citas dobles o individuales donde se usa. Lo siguiente dará como resultado un error.
---Para agregar un párrafo en un archivo YAML, use el signo (mayor que). Recuerda agregar un espacio antes de la línea. Por ejemplo:
---#: Tipos numéricos
El otro tipo de datos compatible en YAML son los tipos numéricos. Los tipos numéricos incluyen enteros, decimales, hexadecimales, octal y otros tipos numéricos.
La siguiente sintaxis Yaml representa tipos numéricos.
---#: Listas
Las listas en YAML se especifican utilizando un solo tablero como:
---#: Secuencias
Las secuencias son tipos de datos utilizados para contener múltiples valores en una sola clave. Por ejemplo:
---#: Asignaciones
El mapeo es bastante similar a una secuencia, pero se compone de pares de valor clave, todos contenidos bajo un subgrupo.
Aquí hay un ejemplo:
---#: Nulo
Establecimos un nulo en YAML usando un Tilde (~) o la cadena nula como se muestra en el siguiente ejemplo:
---#: Matrices
Las matrices en YAML se especifican utilizando los soportes cuadrados en una sola línea. El siguiente ejemplo muestra la definición de matrices en YAML.
---Comentarios de Yaml
Yaml también admite comentarios que le permiten agregar información adicional a los datos de YAML. El analizador ignora los comentarios.
Los comentarios de Yaml comienzan con un Octothorpe (#).Proceso Yaml a JSON
En algunos casos, es posible que necesitemos convertir Yaml a JSON. Dado que los dos están estrechamente relacionados, tiene sentido necesitar uno del otro.
Para tales escenarios, podemos usar una herramienta como YQ, que es un analizador YAML/XML para JQ.
Para instalarlo, use PIP con el comando como se muestra:
PIP3 instalar yqNOTA: Asegúrese de tener JQ instalado, ya que es una dependencia requerida para YQ.
Supongamos que tenemos una muestra de un archivo de creación de Pod Kubernetes (Kubernetes.Yaml) con el contenido como se muestra:
---NOTA: El archivo anterior es para fines de ilustración y puede contener errores si se usa en una instancia real de Kubernetes.
Para convertir el archivo YAML en JSON, use el comando:
sudo yq eval -j kubernetes.yamlAl ejecutar el comando anterior, el contenido del archivo se convierte automáticamente en JSON, como se muestra a continuación:
Eso hace que funcione más fácilmente al cambiar de JSON a YAML y viceversa.
Conclusión
Yaml es una herramienta increíblemente poderosa que le permite crear archivos de configuración altamente legibles y compatibles para servicios de soporte. Utilizando los conceptos en este tutorial, está en condiciones de crear documentos YAML complejos para sus aplicaciones o aplicaciones que admiten YAML.
Gracias y feliz codificación!