仅将此标记用于有关YAML数据序列化格式的问题,而不是有关碰巧以YAML格式进行配置的程序(或示例)的问题。关于CSS框架的问题也称为YAML,应该标记为[yaml-css]。
Springboot:HikariCP 配置:camelCase 与 kebab-case
我知道这个问题可能看起来有点无聊或无趣,但我需要澄清以下问题: 推荐哪一款 哪一个可以工作(都可以) HikariCP 的示例
以下代码片段尝试解析代表应用商店三个用户的 YAML 文档: 尝试 { jsyaml.load(y.textContent); } 捕获 (e) { console.error(e.message); } <p>以下代码片段尝试解析代表应用商店三个用户的 YAML 文档:</p> <p></p><div data-babel-preset-ts="false" data-lang="js" data-hide="false" data-console="true" data-babel="false" data-babel-preset-react="false"> <div> <pre><code>try { jsyaml.load(y.textContent); } catch (e) { console.error(e.message); }</code></pre> <pre><code><script src="https://unpkg.com/<a href="/cdn-cgi/l/email-protection" data-cfemail="39534a1440585455790d17081709">[email protected]</a>/dist/js-yaml.min.js"></script> <script id="y" type="text/yaml"> jeff: &jeff FullName: Jeff Miller ParentalConsentRequired: false joe: FullName: Joe Miller ParentalConsentRequired: true Parents: - *jeff - *mary mary: &mary FullName: Mary Miller ParentalConsentRequired: false </script></code></pre> </div> </div> <p></p> <p>但是这是无效的 YAML,因为别名 <pre><code>*mary</code></pre> 位于锚点 <pre><code>&mary</code></pre> 之前,而它必须位于锚点 <a href="https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases" rel="nofollow noreferrer">之后</a>。</p> <p>可以通过对映射节点进行不同排序并将 <pre><code>mary:</code></pre> 放在 <pre><code>joe:</code></pre> 之前来修复这个简单的示例。但更复杂的示例<sup>1</sup>可能没有如此明显的拓扑排序,并且最终可能看起来像此代码片段的输出:</p> <p></p><div data-babel-preset-ts="false" data-lang="js" data-hide="false" data-console="true" data-babel="false" data-babel-preset-react="false"> <div> <pre><code>const obj = { jeff: { FullName: "Jeff Miller", ParentalConsentRequired: false }, joe: { FullName: "Joe Miller", ParentalConsentRequired: true }, mary: { FullName: "Mary Miller", ParentalConsentRequired: false } }; obj.joe.Parents = [obj.jeff, obj.mary]; y.textContent = jsyaml.dump(obj);</code></pre> <pre><code><script src="https://unpkg.com/<a href="/cdn-cgi/l/email-protection" data-cfemail="2248510f5b434f4e62160c130c12">[email protected]</a>/dist/js-yaml.min.js"></script> <textarea rows="15" cols="80" id="y"></textarea></code></pre> </div> </div> <p></p> <p>这种嵌套的锚点会导致同一类的对象处于不同的缩进级别。我认为 YAML 文档的可读性因此受到影响。</p> <p>YAML 工具可以解决这个易读性问题吗? (我不是在寻求建议,只是从了解该技术的人那里寻求答案。)</p> <p>我可以想象两种主要方法:</p> <ul> <li>YAML 生成器,尽可能重新排序节点,以便同一类对象上的锚点出现在相同的缩进级别上。 (这可能需要额外的配置来确定类别。)</li> <li>能够解析违反“anchor-before-alias”规则的 YAML 文档的解析器。</li> </ul> <p>这些方法存在吗?</p> <hr/> <p><sup>1</sup> 就像<a href="https://github.com/oasis-tcs/odata-specs/issues/288#issuecomment-2014482536" rel="nofollow noreferrer">这个</a>让我思考这个话题。</p> </question> <answer tick="false" vote="0"> <p>当然可以编写一个不严格遵守 YAML 规则的类似 YAML 的解析器,但我不会称其为“YAML”。</p> <p>一个有趣的评论是 <a href="https://yaml.org/spec/1.2.2/#3222-anchors-and-aliases" rel="nofollow noreferrer">YAML 1.2.2 §3.2.2.2,“锚点和别名”</a>,其中指出(强调我的)</p> <blockquote> <p>当从序列化事件组成表示图时,别名事件指的是序列化中具有指定锚点的“最新”事件。因此,序列化中的<strong>锚点不需要是唯一的</strong>。<strong> </strong> </p>对于第二点,如果文档中尚未出现锚点,您可以提出一些规则;选择第一次出现或最后一次出现或其他。 不过,您必须有一个配置选项来允许尽力解析否则无效的文档。</blockquote> <p>不过,尝试对文档重新排序可能会很棘手。 考虑这个(无效)文档:</p> <p><code>one: &a x: &x 1 top: one: *a two: *b # <-- invalid reference x: *x two: &b x: &x 2 </code></p> <pre>如果删除 </pre><code>top: { two: }</code><p>,那么这是一个有效的文件,可以根据最近出现的规则生成 <pre><code>top: { x: 1 }</code></pre>。 但是,如果您将顶级 <pre><code>two:</code></pre> 移到 <pre><code>top:</code></pre> 之上以使 <pre><code>*b</code></pre> 变得有效,那么您现在已经更改了最新的 <pre><code>&x</code></pre>。<pre> </pre> </p>我目前的经验主要面向 Docker 和 Kubernetes,它们总体上确实大量使用了 YAML。 Kubernetes 清单几乎从不使用 YAML 锚点,即使在几个可能有意义的地方(例如,在 Deployment 规范与其嵌入的 Pod 模板之间共享 <hr/><code>labels:</code><p>)。 对于 Docker Compose YAML 文件,我在 Stack Overflow 上看到的使用 YAML 锚点的示例正在尝试缓解设置过多的问题。<pre> </pre>当我编写生成 YAML 的代码时,我从不尝试生成锚点;如果发生这种情况,我可以接受某些内容被重复。 (通常,如果我需要生成 YAML,我的语言的内置 JSON 支持将写出有效的 YAML 文件,而 JSON 的语法不包含锚点。)</p> <p>YAML 对于因果观察者来说肯定有一些复杂性;例如,人们经常对列表、地图和作为列表项的地图感到困惑。 如果可以的话,我会避免通过在其中引入锚点来使其变得更加复杂,并且我不会担心您在问题中讨论的易读性或排序问题。</p> <p> </p></answer>
我正在努力使用 Helm 图表中的 Terrafrom 部署 Sonarqube 实例; 每当我尝试部署 main.tf 文件时,都会收到错误: 错误:sonarqube/templates/ingress.yaml 上的 YAML 解析错误:错误
当 CI 被拉取请求触发时,Azure DevOps 会触发 YAML CD 管道
我找不到适用于 Azure DevOps Yaml 管道的答案。 GitHub 有很多解决方案。 基本上我有 2 个 yaml 管道,一个用于 CI,一个用于 CD,它们工作得很好 C...
希望使用 Ansible 注释掉 lvm.conf 文件中的某些字段
我相信我弄乱了基本的正则表达式,我有一个 lvm.conf 文件,我需要注释掉某些键值对。结构如下: 全球的 { 锁定类型 = 1 锁定目录=&
如何在 Google Cloud Workflows YAML 中正确连接字符串与变量?
我正在尝试创建一个向各种端点发出 HTTP 请求的 Google Cloud 工作流程。我需要通过将环境变量与静态路径和动态 ID 相结合来构造 URL。 这就是...
如何动态地将 YAML 解组为结构体以在 Go 中实现通用接口?
我正在尝试在 Go 中解析 YAML,其中我有动态条件。每个条件对应于实现公共接口的特定结构。这是我的 YAML 配置的简化示例...
我使用TYPO3 V12.4.24,在后端,一个模块允许我构建一个表单。 第二个选项是直接在创建的 YAML 文件中编写脚本。 完成者通过电子邮件发送给接收者(您)有一个选择...
无法使用 cqlsh 连接到 Cassandra pod:AuthenticationFailed 错误
我正在 EKS 命名空间 observability2 上运行 Jaeger 和 Cassandra 设置,但在使用 cqlsh 连接到 Cassandra pod 时遇到问题: raj@log-Pro observability_new % kubectl 获取全部 姓名...
我正在使用 Jinja2 渲染一些 YAML 代码,并且在调用宏时无法确定该换行符来自何处。 这是我的 YAML 代码: 名称: - 鲍勃 - 杰森 - 詹姆斯 这是我的
.NET Aspire 中的 ContainerApp 与 Dockerfile 无法访问
我创建了一个基本的 .NET Aspire 应用程序并将其发布到 Azure 容器注册表。然后我使用该 ACR 映像创建了一个容器应用程序。该应用程序可以在我的本地计算机上访问,但不起作用...
我想创建一条自定义消息,每当用户尝试使用已使用的电子邮件地址进行注册时,都会向他们显示该消息。我希望文本内容为“提供的电子邮件地址...
我想处理包含不同格式的多个文档的文本文件。这些文档由三个破折号分隔,类似于 YAML。 示例:这里有一些 YAML 代码 第一部分:...
我想将 R 代码及其输出移动到四开渲染 PDF 文档的右侧。你能帮我实现这个目标吗?下面是我正在使用的 YAML 标头: --- 标题: | \巨大的extbf{标题} 为了...
如何将 Keyvault 机密传递到 YAML 中调用 Azure Function 任务?
寻找一种在 YAML 模板中调用 Azure 函数活动中访问 keyvault 机密的方法, keyvault 的秘密是我想在 yaml 中调用的 azure 函数的 url
如何使用 Ansible 在文件中的特定注释行之前插入 SSH 密钥?
我需要使用 Ansible 将 SSH 公钥插入到用户的authorized_keys 根文件中的特定注释行(例如,# 服务密钥)之前。 authorized_keys 文件的布局看起来像这样...
我在尝试为 Azure ML 中的数据集创建 MLTable YAML 文件时遇到问题。 我的工作区中有一个默认数据存储,其中包含两个带有图像的文件夹(OK 和 NOK)。我的目标是...
我正在尝试从解决方案构建一个特定项目(7 个中的 2 个)我想恢复也特定于我在下面 yml 任务中使用的那些项目的 nuget - 任务:NuGetCommand@2 显示名称:'范围Li...
Ansible 模块 lineinfile:如何将注册值作为参数传递?
我在 lineinfile 模块运行中添加了额外的字符。 我正在尝试使用以下示例将文件的字符串内容添加到另一个文件位置: - 名称:读取文件va...
在参数中传递注册值时的 lineinfile 命令 - Ansible 模块
我在 lineinfile 模块运行中添加了额外的字符 我正在尝试使用以下示例将文件的字符串内容添加到另一个文件位置: - 名称:读取文件值...