YAML流程

YAML遵循流程的标准程序。YAML中的本机数据结构包括简单表示,例如:节点。 它也称为表示节点图。

它包括映射,序列和标量,正在序列化以创建序列化树。通过序列化,对象将使用字节流进行转换。

序列化事件树有助于创建字符流的表示,反向过程将字节流解析为序列化事件树。 之后节点将转换为节点图。之后在YAML本机数据结构中转换这些值。 如下图解释 -

YAML中的信息以两种方式使用:机器处理和人类消费。 YAML中的处理器用作在上面给出的图中的互补视图之间转换信息的过程的工具。本章介绍YAML处理器在给定应用程序中必须提供的信息结构。

YAML包括用于以串行格式表示数据对象的序列化过程。YAML信息的处理包括三个阶段:表示,序列化,表示和解析。 接下来将详细讨论它们。

表示

YAML表示使用三种节点的数据结构:序列,映射和标量。

序列
序列是指有序的条目数,它映射键值对的无序关联。它对应于Perl或Python数组列表。

下面显示的代码是序列表示的一个例子 -

product:
   - sku         : BL394D
     quantity    : 4
     description : Football
     price       : 450.00
   - sku         : BL4438H
     quantity    : 1
     description : Super Hoop
     price       : 2392.00

YAML

映射
另一方面,映射表示字典数据结构或哈希表。 下面提到了一个例子 -

batchLimit: 1000
threadCountLimit: 2
key: value
keyMapping: <What goes here?>

YAML

标量
标量表示字符串,整数,日期和原子数据类型的标准值。 请注意,YAML还包括指定数据类型结构的节点。

序列化

YAML中需要序列化过程,以简化人性友好的键序和锚名称。 序列化的结果是YAML序列化树。 可以遍历它以产生一系列YAML数据的事件调用。

以下是序列化的一个例子 -

consumer:
   class: ‘AppBundle\Entity\consumer‘
   attributes:
      filters: [‘customer.search‘, ‘customer.order‘, ‘customer.boolean‘]
   collectionOperations:
      get:
         method: ‘GET‘
         normalization_context:
       groups: [‘customer_list‘]
   itemOperations:
      get:
         method: ‘GET‘
         normalization_context:
            groups: [‘customer_get‘]

YAML

表示

YAML序列化的最终输出称为表示。它以人类友好的方式表示字符流。 YAML处理器包括用于创建流,处理缩进和格式化内容的各种演示细节。 这个完整的过程由用户的偏好指导。

YAML表示过程的一个示例是创建JSON值的结果。 请遵守下面给出的代码以便更好地理解 -

{
   "consumer": {
      "class": "AppBundle\\Entity\\consumer",
      "attributes": {
         "filters": [
            "customer.search",
            "customer.order",
            "customer.boolean"
         ]
      },
      "collectionOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_list"
               ]
            }
         }
      },
      "itemOperations": {
         "get": {
            "method": "GET",
            "normalization_context": {
               "groups": [
                  "customer_get"
               ]
            }
         }
      }
   }
}

YAML

解析

解析是呈现的逆过程; 它包含一个字符流并创建一系列事件。 它会丢弃导致序列化事件的演示过程中引入的详细信息。 由于输入不良,解析过程可能会失败。 它基本上是一个检查YAML是否格式良好的程序。

考虑下面提到的YAML示例 -

---
   environment: production
   classes:
      nfs::server:
         exports:
            - /srv/share1
            - /srv/share3
   parameters:
      paramter1

YAML

使用三个连字符,它表示文档的开头,后面定义了各种属性。

YAML lint是YAML的在线解析器,有助于解析YAML结构以检查它是否有效。 YAML lint的官方链接如下:http://www.yamllint.com/

可以看到解析的输出,如下所示 -

原文地址:https://www.cnblogs.com/borter/p/12424055.html

时间: 2024-10-13 04:58:35

YAML流程的相关文章

启动、配置、扩容、伸缩、存储,开普勒云平台之使用指南

本文从启动.配置.扩容.伸缩.存储等方面介绍如何使用开普勒云平台. 一.Kplcloud是什么? kplcloud是一个基于Kubernetes的轻量级PaaS平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本. Kplcloud已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器. 一.登陆 登陆可以分为三种,分别是LDAP登陆.邮箱密码登陆.三方授权登陆,咱们没有注册功能.下面对这三种登陆方式进行讲解. LD

Storm启动流程简介

storm启动流程          storm是一个流行的开源的,分布式实时处理框架,关于storm的基本介绍可以参加这篇官方文档.大致的拓扑结构如图所示:        其中Nimbus是一个后台管理进程,运行在master node上.Supervisor也是后台进程,运行在work node上.依据上图,Nimbus和Supervisor不直接通信,通过zookeeper进行通信.在Master Node上,可以通过storm nimbus命令来启动nimbus进程,同时通过storm

jenkins+docker+docker-compose完整发版流程

首先搭建jenkins+maven+nexus这一套自动化打包工具,并配置好相应配置,这里就不再赘述了. 其次,搭建好docker集群和私有仓库,以及安装好docker-compose工具,配置好相应的yaml配置文件 以下是增加新工程流程 1,在jenkins中新建maven或者其他工程. 2,需要jenkins中配置,相关信息,如svn路径,maven打包的参数,以及打包成功后需要执行的命令 以上是打包成功后需要执行的命令,需要注意的有以上4个地址,1,2,是把当前工程名和镜像名称这些变量放

JStorm之NimbusServer启动流程

NimbusServer相当于hadoop里的JobTracker或yarn里的ResourceManager,在集群中属于首脑地位,负责分发任务,监控集群状态,与supervisor的通信主要通过Zookeeper.nimbus在启动过程中会做以下工作,以保证集群稳定运行: 1.清理无效topology 2.建立zk连接并创建相应znode 3.启动监控线程 4.启动httpserver 启动主函数如下: public static void main(String[] args) throw

[Ruby On Rails] Action Controller - 控制HTTP 流程

Controlling complexity is the essence of computer programming. - Brian Kernighan HTTP通讯协定是一种Request-Response (请求-回应)的流程,客户端(通常是浏览器)向伺服器送出一个HTTP request封包,然后伺服器就回应一个response封包.在上一章中,我们介绍了Rails如何使用路由来分派request到Controller的其中一个Action.而每个Action的任务就是根据客户端传

Flink on Yarn模式启动流程源代码分析

此文已由作者岳猛授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Flink on yarn的启动流程可以参见前面的文章 Flink on Yarn启动流程,下面主要是从源码角度看下这个实现,可能有的地方理解有误,请给予指正,多谢. --> 1.命令行启动yarn session bin/yarn-session.sh -n 3 -jm 1024 -nm 1024 -st我们去看下启动脚本   $JAVA_RUN $JVM_ARGS -classpath "$CC_

联盟链初识以及Fabric环境搭建流程

这篇文章首先简单介绍了联盟链是什么,再详细的介绍了Fabric环境搭建的整个流程. 区块链分类: 以参与方式分类,区块链可以分为:公有链.联盟链和私有链. 定义: 我们知道区块链就是一个分布式的,去中心化的公共数据库(或称公共账本).而联盟链是区块链的一个分支,所以它本身也是一个分布式的,去中心化的公共数据库,跟其他链的区别就是它是针对特定群体的成员和有限的第三方,其内部指定多个预选节点为记账人,其共识过程受到预选节点控制的区块链 本质 联盟链本质仍然是一种私有链,只不过它要比单个小组织开发的私

yaml配置和ini配置的数据源配置和数据获取

1.前言 关于yaml和ini的相关理论暂不做记录,不影响代码编写,百度即可. 2.关于配置文件的选择 yaml 和 ini 都使用过, 但是yaml更符合人类使用,已要弃用ini,后期各项目均采用yaml进行管理. 3.关于yaml的全流程介绍 因为钟爱使用yaml,特意先描述yaml. 3.1 先创建yaml文件,并书写相关配置数据. ??? ?? ? 3.2 导入yaml库,使用库内的load方法,返回一个dict.并用csv库的reader方法得到一个对象.并使用for循环遍历取出csv

Kubernetes如何加速UCloud内部代码部署的CI/CD流程

UCloud内部长期使用 Gitlab 来管理代码.虽然Gitlab作为一套开源平台已很优秀,但我们对于其能为CI/CD提供的敏捷性并不十分满意,内部实践中的代码发布周期仍需按天计算.为此,我们打造了一个基于Kubernetes的内部容器服务平台(名为KUN),用于托管内部服务,并将Gitlab对接到KUN平台,从而借助Kubernetes的云原生优势,获得更好的CI/CD效果.这套系统运行一年内,Gitlab的Pipeline一共触发了994次,执行了约20000+次Job,在测试环境和正式环